
Time bar (total: 1.8s)
| 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)
| 737.0ms | 8 256× | 0 | valid |
ival-mult: 172.0ms (42.9% of total)ival-add: 81.0ms (20.2% of total)ival-div: 66.0ms (16.5% of total)ival-sqrt: 66.0ms (16.5% of total)ival-true: 7.0ms (1.7% of total)exact: 5.0ms (1.2% of total)ival-assert: 4.0ms (1% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 142 | 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 | 139 | 0 |
| ↳ | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | overflow | 139 | |
| ↳ | (*.f64 y y) | overflow | 74 | |
| ↳ | (*.f64 x x) | overflow | 53 | |
| ↳ | (*.f64 z z) | overflow | 59 | |
| ↳ | (+.f64 (*.f64 x x) (*.f64 y y)) | overflow | 109 | |
| ↳ | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | overflow | 139 | |
sqrt.f64 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) | uflow-rescue | 3 | 0 |
| ↳ | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) | underflow | 3 | |
| ↳ | (*.f64 y y) | underflow | 52 | |
| ↳ | (*.f64 x x) | underflow | 75 | |
| ↳ | (*.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 | 3 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 142 | 0 |
| - | 0 | 114 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 142 | 0 | 0 |
| - | 0 | 0 | 114 |
| number | freq |
|---|---|
| 0 | 114 |
| 1 | 142 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 40.0ms | 512× | 0 | valid |
Compiled 192 to 48 computations (75% saved)
ival-mult: 10.0ms (44.6% of total)ival-add: 4.0ms (17.8% of total)ival-sqrt: 4.0ms (17.8% of total)ival-div: 3.0ms (13.4% 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 |
|---|---|---|
| ▶ | 48.5% | (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 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.109375 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 32.946842009408535 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 26.0ms | 256× | 0 | valid |
Compiled 118 to 24 computations (79.7% saved)
ival-sqrt: 8.0ms (46.6% of total)ival-mult: 5.0ms (29.1% of total)ival-div: 2.0ms (11.7% of total)ival-add: 2.0ms (11.7% 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) |
(*.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)))))))))) |
(* 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) (* y y)) |
| 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) (* y y)) |
| 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) (* y y)) |
| 2.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) (* y y)) |
| 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) (* 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)))))))))) |
(* 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) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(*.f64 y y) |
| 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) |
(*.f64 y y) |
| 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) |
(*.f64 y y) |
Compiled 225 to 27 computations (88% saved)
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 7 | 5 | 12 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 7 | 6 | 13 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 48.5% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 7.3% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
| ▶ | 6.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ▶ | 7.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))) |
| ▶ | 7.0% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
| ▶ | 6.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
Compiled 238 to 165 computations (30.7% saved)
| 1× | egg-herbie |
Found 18 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 | #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 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 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))) | |
| cost-diff | 0 | (*.f64 y y) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y)) | |
| cost-diff | 0 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
#s(approx (/ (+ (+ (* 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 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(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(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) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
#s(approx (/ (+ (+ (* 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 (*.f64 x x) (*.f64 y y))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.f64 x x) |
x |
(*.f64 y y) |
y |
(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(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) |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.109375 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 59.53083028277867 | #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 z z) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 59.52759213543693 | #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 x x) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 0.0 | (+.f64 (*.f64 x x) (*.f64 y y)) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 59.925517295552886 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) | |
| accuracy | 41.84458158309184 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y)) |
| 25.0ms | 256× | 0 | valid |
Compiled 438 to 38 computations (91.3% saved)
ival-mult: 5.0ms (45.1% of total)ival-div: 2.0ms (18.1% of total)ival-add: 2.0ms (18.1% of total)ival-sqrt: 2.0ms (18.1% 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
#s(approx (/ (+ (+ (* 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))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.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)) |
#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)) |
(*.f64 z z) |
| 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 x 2) (pow y 2)) |
(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))))))) |
(* 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 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))))))) |
(* 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 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))) |
(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) (+ 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 | |
|---|---|---|---|---|
| 5.0ms | y | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* z z)) |
| 1.0ms | x | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* z z)) |
| 1.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* z z)) |
| 1.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* z z)) |
| 1.0ms | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (* x x) (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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* z z)) |
| 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 x 2) (pow y 2)) |
(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))))))) |
(* 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 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))))))) |
(* 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 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))) |
(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) (+ 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.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))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.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 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 (*.f64 x x) (*.f64 y y))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(*.f64 x x) |
(pow y 2) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(+ (pow x 2) (pow y 2)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(pow x 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(+ (pow y 2) (pow z 2)) |
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
(+ (pow x 2) (+ (pow y 2) (pow z 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))) |
(* x (sqrt 1/3)) |
(/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(*.f64 z z) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
#s(approx (/ (+ (+ (* 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))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.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)) |
#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)) |
(*.f64 z z) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
#s(approx (/ (+ (+ (* 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))) |
(+.f64 (*.f64 x x) (*.f64 y y)) |
(*.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)) |
#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)) |
(*.f64 z z) |
Compiled 1 363 to 61 computations (95.5% saved)
12 alts after pruning (8 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 35 | 8 | 43 |
| Fresh | 0 | 0 | 0 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 1 | 1 |
| Total | 37 | 12 | 49 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 48.5% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 7.3% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
| ✓ | 6.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ▶ | 12.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) |
| ▶ | 8.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) | |
| 7.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 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) | |
| ▶ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
| 5.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| ▶ | 5.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
Compiled 686 to 326 computations (52.5% saved)
| 1× | egg-herbie |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) | |
| cost-diff | 0 | (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) | |
| cost-diff | 0 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) | |
| cost-diff | 0 | (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) | |
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| cost-diff | 0 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 x x) (*.f64 y y)) (*.f64 z z))) | |
| cost-diff | 0 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))))) | |
| cost-diff | 0 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (* 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 (+.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)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
#s(approx (+ (* x x) (* y y)) #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(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #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 |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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 |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (* 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 (+.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)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
#s(approx (+ (* x x) (* y y)) #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(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #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 |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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 |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.53083028277867 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) | |
| accuracy | 59.925517295552886 | #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| accuracy | 0.109375 | (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 32.04064432487852 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.53083028277867 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) | |
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 60.675826132025 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 32.04064432487852 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.925517295552886 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))))) | |
| accuracy | 59.52759213543693 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) | |
| accuracy | 60.755329071012916 | #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))) |
| 34.0ms | 256× | 0 | valid |
Compiled 899 to 46 computations (94.9% saved)
ival-mult: 5.0ms (44.6% of total)ival-div: 2.0ms (17.8% of total)ival-add: 2.0ms (17.8% of total)ival-sqrt: 2.0ms (17.8% 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (* 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 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
#s(approx (+ (* x x) (* y y)) #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) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(*.f64 z z) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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))) |
| 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 x 2) |
(pow y 2) |
(+ (pow x 2) (pow y 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))))))) |
(* 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 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))))))) |
(* 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 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))) |
(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) (+ 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 | y | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* z z) (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)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3))) |
| 1.0ms | x | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* z z) (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)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3))) |
| 1.0ms | x | @ | inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* z z) (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)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3))) |
| 1.0ms | x | @ | 0 | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* z z) (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)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3))) |
| 1.0ms | z | @ | -inf | ((sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (* x x) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* z z) (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)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (sqrt (/ (+ (+ (* 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)))))))))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(pow x 2) |
(pow y 2) |
(+ (pow x 2) (pow y 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))))))) |
(* 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 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))))))) |
(* 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 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))) |
(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) (+ 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) |
(+ (* 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))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.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/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 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)))))))))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
#s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(pow x 2) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(pow y 2) |
(*.f64 x x) |
(+ (pow x 2) (pow y 2)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(+ (pow y 2) (pow z 2)) |
(*.f64 z z) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(* x (sqrt 1/3)) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.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)))))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(* 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))))))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(* 1/3 (pow x 2)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
#s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(* (pow x 2) (+ 1 (/ (pow y 2) (pow x 2)))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (* 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 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
#s(approx (+ (* x x) (* y y)) #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) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(*.f64 z z) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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))) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (* 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 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
#s(approx (+ (* x x) (* y y)) #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) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
(*.f64 z z) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64)) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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))) |
Compiled 1 986 to 67 computations (96.6% saved)
16 alts after pruning (7 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 41 | 4 | 45 |
| Fresh | 0 | 3 | 3 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 4 | 4 |
| Total | 41 | 16 | 57 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 48.5% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 8.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
| ✓ | 7.3% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
| ✓ | 6.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ▶ | 5.2% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
| ✓ | 12.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) |
| ✓ | 8.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
| ▶ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)))) #s(literal 3 binary64))) | |
| ✓ | 6.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| ▶ | 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
| 7.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 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) | |
| ✓ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
| ▶ | 5.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
| ✓ | 5.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
Compiled 876 to 383 computations (56.3% saved)
| 1× | egg-herbie |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| 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)) (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)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #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) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) | |
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) | |
| cost-diff | 0 | (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #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)) (*.f64 z z)) #s(literal 3 binary64))) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| cost-diff | 0 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) | |
| cost-diff | 0 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) | |
| 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 | #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) | |
| cost-diff | 0 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) | |
| cost-diff | 0 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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 |
(*.f64 z z) |
z |
#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)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #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 |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))))) |
#s(approx (+ (* x x) (* y y)) (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 |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) (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 |
(*.f64 z z) |
z |
#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)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #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 |
(*.f64 z z) |
z |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) |
(*.f64 z z) |
z |
#s(literal 3 binary64) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))))) |
#s(approx (+ (* x x) (* y y)) (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 |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.925517295552886 | #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) | |
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 0.109375 | (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) | |
| accuracy | 36.8340883919925 | #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) | |
| accuracy | 59.53083028277867 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 32.04064432487852 | #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.52759213543693 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) | |
| accuracy | 0.0 | (*.f64 y y) | |
| accuracy | 60.57540288653823 | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) | |
| accuracy | 32.946842009408535 | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) | |
| accuracy | 47.0435484935754 | #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) | |
| accuracy | 59.925517295552886 | #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
| 25.0ms | 256× | 0 | valid |
Compiled 809 to 43 computations (94.7% saved)
ival-mult: 5.0ms (45.2% of total)ival-div: 2.0ms (18.1% of total)ival-add: 2.0ms (18.1% of total)ival-sqrt: 2.0ms (18.1% 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* 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 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#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)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) |
(*.f64 z z) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (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))) |
(*.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))) |
(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) (+ 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 | @ | -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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (* 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)) |
| 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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (* 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)) |
| 1.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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (* 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)) |
| 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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (* 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)) |
| 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)) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (* y y) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+ (+ (* x x) (* y y)) (* z z)) (+ (* x x) (* y y)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+ (+ (* x x) (* y y)) (* z z)) (* 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)) |
| 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))) |
(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) (+ 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 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
(+ (* 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))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+ (* (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 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.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)))))))))) |
#s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
(* 1/3 (+ (pow y 2) (pow z 2))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
(+ (* 1/3 (+ (pow y 2) (pow z 2))) (* 1/3 (pow x 2))) |
(*.f64 y y) |
(+ (pow y 2) (pow z 2)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+ (pow x 2) (+ (pow y 2) (pow z 2))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
(pow y 2) |
#s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(+ (pow x 2) (pow y 2)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)) |
(pow x 2) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(* x (sqrt 1/3)) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
(* x (+ (sqrt 1/3) (* 1/2 (/ (* (sqrt 1/3) (+ (pow y 2) (pow z 2))) (pow x 2))))) |
#s(approx (+ (+ (* x x) (* y y)) (* 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 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))))))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
(* 1/3 (pow x 2)) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))))) |
(* (pow x 2) (+ 1/3 (* 1/3 (/ (+ (pow y 2) (pow z 2)) (pow x 2))))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
(* (pow x 2) (+ 1 (+ (/ (pow y 2) (pow x 2)) (/ (pow z 2) (pow x 2))))) |
(*.f64 x x) |
| Inputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* 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 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#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)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) |
(*.f64 z z) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (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))) |
(*.f64 x x) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) |
#s(approx (+ (* x x) (* 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 y y)) |
(*.f64 y y) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
(+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) |
#s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
#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)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
(/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)) |
#s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) |
(*.f64 z z) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))))) |
#s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* y y)) (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))) |
(*.f64 x x) |
Compiled 2 008 to 76 computations (96.2% saved)
17 alts after pruning (5 fresh and 12 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 43 | 3 | 46 |
| Fresh | 0 | 2 | 2 |
| Picked | 1 | 4 | 5 |
| Done | 1 | 8 | 9 |
| Total | 45 | 17 | 62 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 48.5% | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 8.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
| 7.0% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))))))) (*.f64 z z)))) | |
| 10.4% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) | |
| ✓ | 7.3% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 y y))) |
| ✓ | 6.7% | (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) |
| ✓ | 8.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
| ✓ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)))) #s(literal 3 binary64))) | |
| ✓ | 6.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (*.f64 x x) (*.f64 y y))) |
| ✓ | 6.5% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
| 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)))))) (*.f64 z z))) | |
| 7.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 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) | |
| ✓ | 5.2% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 z z)) |
| ✓ | 5.4% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
| ✓ | 5.1% | #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
Compiled 1 510 to 351 computations (76.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* 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) (* y y)) (* z z)) (*.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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)))))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* 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 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (+.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 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)))) #s(literal 3 binary64))) |
(sqrt.f64 (/.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 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64))))))) (*.f64 z z)))) |
| Outputs |
|---|
(sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
10 calls:
| 8.0ms | z |
| 8.0ms | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 6.0ms | x |
| 6.0ms | y |
| 6.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 48.5% | 1 | x |
| 48.5% | 1 | y |
| 48.5% | 1 | z |
| 48.5% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 48.5% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 48.5% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 48.5% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 48.5% | 1 | (*.f64 x x) |
| 48.5% | 1 | (*.f64 y y) |
| 48.5% | 1 | (*.f64 z z) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* 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) (* y y)) (* z z)) (*.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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)))))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* 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 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* 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 (+.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 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) (sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) (*.f64 z z)) #s(literal 3 binary64))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64)))) #s(literal 3 binary64))) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))))) |
10 calls:
| 7.0ms | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 7.0ms | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 7.0ms | x |
| 6.0ms | z |
| 6.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 12.7% | 1 | x |
| 12.7% | 1 | y |
| 12.7% | 1 | (*.f64 x x) |
| 12.7% | 1 | z |
| 12.7% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 12.7% | 1 | (*.f64 z z) |
| 12.7% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 12.7% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 12.7% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 12.7% | 1 | (*.f64 y y) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* 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) (* y y)) (* z z)) (*.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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 #s(approx (+ (+ (* x x) (* y y)) (* z z)) (*.f64 z z)) #s(literal 3 binary64)))))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (/.f64 (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)) #s(literal 3 binary64))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (+ (* x x) (* 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 #s(approx (* x x) #s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)))) (*.f64 y y))) |
| Outputs |
|---|
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
10 calls:
| 10.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 8.0ms | (*.f64 y y) |
| 4.0ms | z |
| 4.0ms | x |
| 4.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 10.4% | 1 | y |
| 10.4% | 1 | (*.f64 y y) |
| 10.4% | 1 | (*.f64 z z) |
| 10.4% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 10.4% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 10.4% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 10.4% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 10.4% | 1 | x |
| 10.4% | 1 | z |
| 10.4% | 1 | (*.f64 x x) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* 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) (* y y)) (* z z)) (*.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))) |
| Outputs |
|---|
(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 y y))) |
10 calls:
| 7.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.0ms | (*.f64 z z) |
| 3.0ms | z |
| 3.0ms | x |
| 3.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 7.3% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 7.3% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 7.3% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 9.1% | 2 | (*.f64 y y) |
| 7.3% | 1 | y |
| 7.3% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 7.3% | 1 | (*.f64 z z) |
| 7.3% | 1 | x |
| 9.0% | 2 | (*.f64 x x) |
| 7.3% | 1 | z |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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:
| 3.0ms | z |
| 2.0ms | x |
| 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 | y |
| 6.7% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 6.7% | 1 | x |
| 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 | z |
| 6.7% | 1 | (*.f64 z z) |
| 6.7% | 1 | (*.f64 x x) |
| 6.7% | 1 | (*.f64 y y) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (+.f64 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
10 calls:
| 5.0ms | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 2.0ms | z |
| 2.0ms | x |
| 2.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.5% | 1 | x |
| 6.5% | 1 | (*.f64 y y) |
| 6.5% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 6.5% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 6.5% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 6.5% | 1 | (*.f64 x x) |
| 6.5% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 6.5% | 1 | y |
| 6.5% | 1 | z |
| 6.5% | 1 | (*.f64 z z) |
Compiled 57 to 56 computations (1.8% saved)
| Inputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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 z z)) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
10 calls:
| 2.0ms | (*.f64 z z) |
| 2.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 2.0ms | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 2.0ms | x |
| 2.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.4% | 1 | y |
| 5.4% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 5.4% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 5.4% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 5.4% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 5.4% | 1 | (*.f64 y y) |
| 5.4% | 1 | x |
| 5.4% | 1 | z |
| 5.4% | 1 | (*.f64 z z) |
| 5.4% | 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)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
| Outputs |
|---|
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
10 calls:
| 2.0ms | (*.f64 z z) |
| 1.0ms | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 1.0ms | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 1.0ms | z |
| 1.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.1% | 1 | (*.f64 y y) |
| 5.1% | 1 | z |
| 5.1% | 1 | (sqrt.f64 (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64))) |
| 5.1% | 1 | (/.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) #s(literal 3 binary64)) |
| 5.1% | 1 | (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 z z)) |
| 5.1% | 1 | (+.f64 (*.f64 x x) (*.f64 y y)) |
| 5.1% | 1 | y |
| 5.1% | 1 | x |
| 5.1% | 1 | (*.f64 x x) |
| 5.1% | 1 | (*.f64 z z) |
Compiled 57 to 56 computations (1.8% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 3.039275786204081e-39 | 5.233978070826705e-36 |
| 9.0ms | 128× | 0 | valid |
Compiled 289 to 233 computations (19.4% saved)
ival-add: 3.0ms (47.4% of total)ival-mult: 2.0ms (31.6% of total)ival-div: 1.0ms (15.8% of total)ival-sqrt: 1.0ms (15.8% 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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
(if (<=.f64 (*.f64 y y) #s(literal 395096506629487/2993155353253689176481146537402947624255349848014848 binary64)) (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 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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* 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))) |
(sqrt.f64 #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) #s(approx (* x x) #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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z)))) |
(if (<=.f64 (*.f64 y y) #s(literal 395096506629487/2993155353253689176481146537402947624255349848014848 binary64)) (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 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 #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x))) (*.f64 z z))) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) (*.f64 y y)) |
#s(approx (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3)) #s(approx (+ (* x x) (* y y)) #s(approx (/ (+ (+ (* x x) (* y y)) (* z z)) 3) (*.f64 x x)))) |
| 1× | fuel |
Compiled 265 to 37 computations (86% saved)
Compiled 622 to 142 computations (77.2% saved)
Loading profile data...