
Time bar (total: 1.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 4 |
Compiled 16 to 13 computations (18.8% saved)
| 587.0ms | 8 256× | 0 | valid |
ival-mult: 171.0ms (43.9% of total)ival-add: 84.0ms (21.6% of total)ival-sqrt: 64.0ms (16.4% of total)ival-div: 58.0ms (14.9% of total)ival-true: 6.0ms (1.5% of total)exact: 5.0ms (1.3% of total)ival-assert: 3.0ms (0.8% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 161 | 0 | - | 0 | - | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 0 | 0 | - | 0 | - | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 0 | 0 | - | 0 | - | #s(literal 3 binary64) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x x) |
| 0 | 0 | - | 0 | - | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 0 | 0 | - | 0 | - | (*.f64 z z) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | (*.f64 y y) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
sqrt.f64 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | oflow-rescue | 156 | 0 |
| ↳ | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | overflow | 156 | |
| ↳ | (*.f64 y y) | overflow | 75 | |
| ↳ | (*.f64 x x) | overflow | 65 | |
| ↳ | (*.f64 z z) | overflow | 58 | |
| ↳ | (+.f64 (*.f64 x x) (*.f64 y y)) | overflow | 129 | |
| ↳ | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | overflow | 156 | |
sqrt.f64 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | uflow-rescue | 5 | 0 |
| ↳ | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | underflow | 5 | |
| ↳ | (*.f64 y y) | underflow | 58 | |
| ↳ | (*.f64 x x) | underflow | 66 | |
| ↳ | (*.f64 z z) | underflow | 62 | |
| ↳ | (+.f64 (*.f64 x x) (*.f64 y y)) | underflow | 14 | |
| ↳ | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | underflow | 5 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 161 | 0 |
| - | 0 | 95 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 161 | 0 | 0 |
| - | 0 | 0 | 95 |
| number | freq |
|---|---|
| 0 | 95 |
| 1 | 161 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 42.0ms | 512× | 0 | valid |
Compiled 192 to 48 computations (75% saved)
ival-mult: 10.0ms (39.9% of total)ival-sqrt: 6.0ms (24% of total)ival-div: 4.0ms (16% of total)ival-add: 4.0ms (16% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
Compiled 14 to 11 computations (21.4% saved)
Compiled 0 to 3 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 41.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
Compiled 14 to 11 computations (21.4% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| cost-diff | 0 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| cost-diff | 0 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| cost-diff | 0 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.00390625 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| accuracy | 0.1015625 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 37.313390016898616 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 21.0ms | 256× | 0 | valid |
Compiled 118 to 24 computations (79.7% saved)
ival-mult: 5.0ms (38.1% of total)ival-div: 4.0ms (30.5% of total)ival-add: 2.0ms (15.3% of total)ival-sqrt: 2.0ms (15.3% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(+ (pow x 2) (pow z 2)) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (* x x)) |
| 2.0ms | y | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (* x x)) |
| 2.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (* x x)) |
| 1.0ms | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (* x x)) |
| 1.0ms | z | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (* x x)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(+ (pow x 2) (pow z 2)) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(*.f64 x x) |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
Compiled 193 to 25 computations (87% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 6 | 4 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 6 | 5 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 41.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 6.8% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ▶ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
| ▶ | 6.7% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
Compiled 108 to 75 computations (30.6% saved)
| 1× | egg-herbie |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| cost-diff | 0 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| cost-diff | 0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| cost-diff | 0 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| cost-diff | 0 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| cost-diff | 0 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) | |
| cost-diff | 0 | (*.f64 y y) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(*.f64 x x) |
x |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(*.f64 x x) |
x |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 37.313390016898616 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 43.75057611189674 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.00390625 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| accuracy | 0.1015625 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 59.46505216585927 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.00390625 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| accuracy | 59.466028337369124 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) | |
| accuracy | 0.0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 59.71098625483437 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| 23.0ms | 256× | 0 | valid |
Compiled 368 to 36 computations (90.2% saved)
ival-mult: 5.0ms (46.8% of total)ival-div: 2.0ms (18.7% of total)ival-add: 2.0ms (18.7% of total)ival-sqrt: 2.0ms (18.7% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(+ (pow x 2) (pow z 2)) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | x | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | y | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(+ (pow x 2) (pow z 2)) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(*.f64 x x) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(*.f64 y y) |
(pow y 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+ (pow x 2) (pow y 2)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(pow x 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(+ (pow y 2) (pow z 2)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
Compiled 1 212 to 57 computations (95.3% saved)
9 alts after pruning (5 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 31 | 5 | 36 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 3 | 4 |
| Done | 0 | 1 | 1 |
| Total | 32 | 9 | 41 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 41.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.8% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 6.8% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
| ▶ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
| ▶ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
| ▶ | 5.3% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
| ▶ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
Compiled 430 to 230 computations (46.5% saved)
| 1× | egg-herbie |
Found 16 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| cost-diff | 0 | #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) | |
| cost-diff | 0 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| cost-diff | 0 | #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| cost-diff | 0 | (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) | |
| cost-diff | 0 | (*.f64 y y) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | |
| cost-diff | 0 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) | |
| cost-diff | 0 | (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
y |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
y |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(*.f64 z z) |
z |
Found 16 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.00390625 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | |
| accuracy | 0.00390625 | (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) | |
| accuracy | 14.019264579619673 | #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) | |
| accuracy | 59.466028337369124 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) | |
| accuracy | 37.313390016898616 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 43.75057611189674 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.46505216585927 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) | |
| accuracy | 59.466028337369124 | #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 60.6094259203042 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 60.68891544454069 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) | |
| accuracy | 0.1015625 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 59.46505216585927 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | |
| accuracy | 59.71098625483437 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) | |
| accuracy | 60.68891544454069 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
| 35.0ms | 256× | 0 | valid |
Compiled 746 to 45 computations (94% saved)
ival-add: 12.0ms (59.2% of total)ival-mult: 5.0ms (24.7% of total)ival-div: 2.0ms (9.9% of total)ival-sqrt: 2.0ms (9.9% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(+ (pow x 2) (pow z 2)) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (+ (+ (* x x) (* y y)) (* z z)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (+ (+ (* x x) (* y y)) (* z z)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | y | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (+ (+ (* x x) (* y y)) (* z z)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (+ (+ (* x x) (* y y)) (* z z)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (+ (+ (* x x) (* y y)) (* z z)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(+ (pow y 2) (pow z 2)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* 1/3 (pow x 2)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow z 2))) |
(+ (* 1/3 (+ (pow x 2) (pow z 2))) (* 1/3 (pow y 2))) |
(+ (pow x 2) (pow z 2)) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* 1/3 (pow y 2)) |
(* (pow y 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow z 2)) (pow y 2))))) |
(* (pow y 2) (+ 1 (+ (/ (pow x 2) (pow y 2)) (/ (pow z 2) (pow y 2))))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* 1/3 (+ (pow x 2) (pow y 2))) |
(+ (* 1/3 (+ (pow x 2) (pow y 2))) (* 1/3 (pow z 2))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* 1/3 (pow z 2)) |
(* (pow z 2) (+ 1/3 (* 1/3 (/ (+ (pow x 2) (pow y 2)) (pow z 2))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (+ (/ (pow x 2) (pow z 2)) (/ (pow y 2) (pow z 2))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
(pow y 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(+ (pow x 2) (pow y 2)) |
(*.f64 x x) |
(pow x 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(*.f64 y y) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(+ (pow y 2) (pow z 2)) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(* x (sqrt 1/3)) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(* 1/3 (pow x 2)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
Compiled 1 737 to 59 computations (96.6% saved)
9 alts after pruning (1 fresh and 8 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 39 | 1 | 40 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 4 | 4 |
| Total | 40 | 9 | 49 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 41.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.8% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.8% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
| ▶ | 5.3% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
| ✓ | 5.3% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
| ✓ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
Compiled 248 to 139 computations (44% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| cost-diff | 0 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) | |
| cost-diff | 0 | (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
y |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
y |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 59.71098625483437 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) | |
| accuracy | 60.6094259203042 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| accuracy | 60.68891544454069 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
| 21.0ms | 256× | 0 | valid |
Compiled 155 to 29 computations (81.3% saved)
ival-mult: 5.0ms (35.4% of total)ival-sqrt: 5.0ms (35.4% of total)ival-div: 2.0ms (14.2% of total)ival-add: 2.0ms (14.2% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y)) |
| 1.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y)) |
| 1.0ms | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y)) |
| 1.0ms | y | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y)) |
| 0.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
(pow y 2) |
(+ (pow x 2) (pow y 2)) |
(pow x 2) |
(* x (sqrt 1/3)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(* -1 (* x (sqrt 1/3))) |
(* -1 (* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))))) |
(* -1 (* x (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 2)) (pow x 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow y 2) (pow z 2)) 3)) (pow x 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) |
(+ (* 1/2 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* -1/8 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow z 2)))) (* (pow y 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow z 2)))))) (* (pow y 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow y 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow z 2)) 5)))))))))) |
(* y (sqrt 1/3)) |
(* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* (pow y 2) (+ 1 (/ (pow x 2) (pow y 2)))) |
(* -1 (* y (sqrt 1/3))) |
(* -1 (* y (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2))))))) |
(* -1 (* y (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 2)) (pow y 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow z 2)) 3)) (pow y 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow z 2))) (pow y 2)))))))) |
(* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) |
(+ (* 1/2 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* -1/8 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2))))))))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow x 2) (pow y 2)))) (* (pow z 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow x 2) (pow y 2)))))) (* (pow z 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 3))))) (* 1/16 (* (* (pow z 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow x 2) (pow y 2)) 5)))))))))) |
(* z (sqrt 1/3)) |
(* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (sqrt 1/3))) |
(* -1 (* z (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2))))))) |
(* -1 (* z (+ (sqrt 1/3) (+ (* -1/8 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 2)) (pow z 4))) (+ (* 1/16 (/ (* (sqrt 1/3) (pow (+ (pow x 2) (pow y 2)) 3)) (pow z 6))) (* 1/2 (/ (* (sqrt 1/3) (+ (pow x 2) (pow y 2))) (pow z 2)))))))) |
| Outputs |
|---|
(* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+ (* 1/2 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2))))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* -1/8 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2))))))))) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
(+ (* (sqrt 1/3) (sqrt (+ (pow y 2) (pow z 2)))) (* (pow x 2) (+ (* 1/2 (* (sqrt 1/3) (sqrt (/ 1 (+ (pow y 2) (pow z 2)))))) (* (pow x 2) (+ (* -1/8 (* (sqrt 1/3) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 3))))) (* 1/16 (* (* (pow x 2) (sqrt 1/3)) (sqrt (/ 1 (pow (+ (pow y 2) (pow z 2)) 5)))))))))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(pow y 2) |
(*.f64 y y) |
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
(+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y)) |
#s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(*.f64 y y) |
Compiled 398 to 21 computations (94.7% saved)
9 alts after pruning (0 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 10 | 0 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 8 | 8 |
| Total | 10 | 9 | 19 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 41.7% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.8% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.8% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
| ✓ | 7.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
| ✓ | 5.3% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
| ✓ | 5.3% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
| ✓ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
Compiled 569 to 177 computations (68.9% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
10 calls:
| 4.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 4.0ms | x |
| 4.0ms | z |
| 4.0ms | y |
| 4.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 41.7% | 1 | x |
| 41.7% | 1 | y |
| 41.7% | 1 | z |
| 41.7% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 41.7% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 41.7% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 41.7% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 41.7% | 1 | (*.f64 x x) |
| 41.7% | 1 | (*.f64 y y) |
| 41.7% | 1 | (*.f64 z z) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)))) (*.f64 y y))) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
10 calls:
| 4.0ms | x |
| 4.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 4.0ms | z |
| 4.0ms | y |
| 3.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 7.1% | 1 | z |
| 7.1% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 7.1% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 7.1% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 7.1% | 1 | y |
| 7.1% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 7.1% | 1 | (*.f64 y y) |
| 7.1% | 1 | (*.f64 z z) |
| 7.1% | 1 | x |
| 7.1% | 1 | (*.f64 x x) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) (*.f64 z z))) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
10 calls:
| 5.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 3.0ms | x |
| 3.0ms | z |
| 3.0ms | y |
| 3.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 7.1% | 1 | y |
| 7.1% | 1 | x |
| 7.1% | 1 | (*.f64 x x) |
| 7.1% | 1 | (*.f64 y y) |
| 7.1% | 1 | (*.f64 z z) |
| 7.1% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 7.1% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 7.1% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 7.1% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 7.1% | 1 | z |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
10 calls:
| 4.0ms | z |
| 2.0ms | x |
| 2.0ms | y |
| 2.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 2.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.8% | 1 | y |
| 6.8% | 1 | x |
| 6.8% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 6.8% | 1 | (*.f64 y y) |
| 6.8% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.8% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 6.8% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 6.8% | 1 | (*.f64 z z) |
| 6.8% | 1 | z |
| 6.8% | 1 | (*.f64 x x) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
10 calls:
| 3.0ms | x |
| 2.0ms | z |
| 2.0ms | y |
| 2.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 2.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.7% | 1 | (*.f64 x x) |
| 6.7% | 1 | y |
| 6.7% | 1 | (*.f64 z z) |
| 6.7% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 6.7% | 1 | (*.f64 y y) |
| 6.7% | 1 | z |
| 6.7% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.7% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 6.7% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 6.7% | 1 | x |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y))) (*.f64 y y))) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
10 calls:
| 3.0ms | (*.f64 x x) |
| 2.0ms | y |
| 2.0ms | x |
| 2.0ms | z |
| 2.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.3% | 1 | x |
| 5.3% | 1 | (*.f64 y y) |
| 5.3% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 5.3% | 1 | y |
| 5.3% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 5.3% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 5.3% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 5.3% | 1 | (*.f64 z z) |
| 5.3% | 1 | z |
| 5.3% | 1 | (*.f64 x x) |
Compiled 57 to 56 computations (1.8% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
10 calls:
| 4.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 1.0ms | z |
| 1.0ms | y |
| 1.0ms | x |
| 1.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.2% | 1 | x |
| 5.2% | 1 | y |
| 5.2% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 5.2% | 1 | (*.f64 x x) |
| 5.2% | 1 | (*.f64 y y) |
| 5.2% | 1 | z |
| 5.2% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 5.2% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 5.2% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 5.2% | 1 | (*.f64 z z) |
Compiled 57 to 56 computations (1.8% saved)
| 1× | egg-herbie |
| Inputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 x x)) |
| 1× | done |
Compiled 144 to 26 computations (81.9% saved)
Compiled 380 to 120 computations (68.4% saved)
Loading profile data...