
Time bar (total: 1.8s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 25% | 24.9% | 74.8% | 0.2% | 0% | 0% | 0% | 6 |
| 25% | 24.9% | 74.8% | 0.2% | 0% | 0% | 0% | 7 |
| 25% | 24.9% | 74.8% | 0.2% | 0% | 0% | 0% | 8 |
| 37.5% | 37.4% | 62.3% | 0.2% | 0% | 0% | 0% | 9 |
| 40.6% | 40.5% | 59.2% | 0.2% | 0% | 0% | 0% | 10 |
| 51.7% | 48.3% | 45.2% | 0.2% | 0% | 6.2% | 0% | 11 |
| 51.7% | 48.3% | 45.2% | 0.2% | 0% | 6.2% | 0% | 12 |
Compiled 16 to 14 computations (12.5% saved)
| 643.0ms | 8 256× | 0 | valid |
| 149.0ms | 1 964× | 0 | invalid |
ival-mult: 262.0ms (59.4% of total)ival-sqrt: 73.0ms (16.5% of total)ival-div: 52.0ms (11.8% of total)ival-sub: 43.0ms (9.7% of total)ival-true: 7.0ms (1.6% of total)ival-assert: 4.0ms (0.9% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 96 | 0 | - | 0 | - | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
| 22 | 0 | - | 1 | (-2.399477903789178e-22 -1.8031272672421911e-298 1.7832761078753783e+99 1.0148659486486187e+23 -1.0387200098855865e-283) | (*.f64 (*.f64 x y) z) |
| 21 | 0 | - | 2 | (-6.669780614816707e-86 -63193658702075716000.0 5.95619792559867e-246 1.3794669790752374e-73 -2.524119969202599e-181) | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| 8 | 0 | - | 0 | - | (-.f64 (*.f64 z z) (*.f64 t a)) |
| 0 | 0 | - | 0 | - | a |
| 0 | 0 | - | 0 | - | t |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x y) |
| 0 | 0 | - | 0 | - | (*.f64 z z) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | (*.f64 t a) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
sqrt.f64 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) | oflow-rescue | 93 | 0 |
| ↳ | (-.f64 (*.f64 z z) (*.f64 t a)) | overflow | 93 | |
| ↳ | (*.f64 t a) | overflow | 29 | |
| ↳ | (*.f64 z z) | overflow | 75 | |
/.f64 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) | o/n | 17 | 0 |
| ↳ | (*.f64 x y) | overflow | 35 | |
| ↳ | (*.f64 (*.f64 x y) z) | overflow | 45 | |
*.f64 | (*.f64 (*.f64 x y) z) | n*u | 16 | 0 |
-.f64 | (-.f64 (*.f64 z z) (*.f64 t a)) | nan-rescue | 8 | 0 |
| ↳ | (*.f64 z z) | overflow | 75 | |
| ↳ | (*.f64 t a) | overflow | 29 | |
*.f64 | (*.f64 (*.f64 x y) z) | n*o | 5 | 0 |
sqrt.f64 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) | uflow-rescue | 3 | 0 |
| ↳ | (-.f64 (*.f64 z z) (*.f64 t a)) | underflow | 3 | |
| ↳ | (*.f64 t a) | underflow | 28 | |
| ↳ | (*.f64 z z) | underflow | 33 | |
/.f64 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) | u/n | 2 | 0 |
| ↳ | (*.f64 x y) | underflow | 33 | |
| ↳ | (*.f64 (*.f64 x y) z) | underflow | 28 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 89 | 2 |
| - | 25 | 140 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 89 | 0 | 2 |
| - | 25 | 0 | 140 |
| number | freq |
|---|---|
| 0 | 142 |
| 1 | 87 |
| 2 | 24 |
| 3 | 3 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 62.0ms | 512× | 0 | valid |
Compiled 162 to 52 computations (67.9% saved)
ival-mult: 18.0ms (47.7% of total)ival-sqrt: 10.0ms (26.5% of total)ival-sub: 6.0ms (15.9% of total)ival-div: 3.0ms (8% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| Outputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
Compiled 14 to 12 computations (14.3% saved)
Compiled 0 to 5 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 66.3% | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
Compiled 14 to 12 computations (14.3% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | (*.f64 (*.f64 x y) z) | |
| cost-diff | 0 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| Inputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(*.f64 (*.f64 x y) z) |
(*.f64 x y) |
x |
y |
z |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
(*.f64 t a) |
t |
a |
| Outputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(*.f64 (*.f64 x y) z) |
(*.f64 x y) |
x |
y |
z |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
(*.f64 t a) |
t |
a |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 1.5937500000000002 | (-.f64 (*.f64 z z) (*.f64 t a)) | |
| accuracy | 4.564499412749246 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) | |
| accuracy | 5.015555805587385 | (*.f64 (*.f64 x y) z) | |
| accuracy | 22.468470001402697 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
| 24.0ms | 256× | 0 | valid |
Compiled 98 to 26 computations (73.5% saved)
ival-mult: 9.0ms (64.6% of total)ival-sqrt: 2.0ms (14.3% of total)ival-sub: 1.0ms (7.2% of total)ival-div: 1.0ms (7.2% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(*.f64 (*.f64 x y) z) |
(*.f64 x y) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* x (* y z)) |
(* x y) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(* -1 (* a t)) |
(- (pow z 2) (* a t)) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (* -1 (/ (* a t) (pow z 2))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(+ (* -1 (* a t)) (pow z 2)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* t (- (/ (pow z 2) t) a)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(* -1 (* t (- (* -1 (/ (pow z 2) t)) (* -1 a)))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* a (- (/ (pow z 2) a) t)) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
(* -1 (* a (- (* -1 (/ (pow z 2) a)) (* -1 t)))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | t | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a))) |
| 5.0ms | z | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a))) |
| 5.0ms | z | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a))) |
| 3.0ms | t | @ | inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a))) |
| 3.0ms | x | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a))) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* x (* y z)) |
(* x y) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(* -1 (* a t)) |
(- (pow z 2) (* a t)) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(pow z 2) |
(* (pow z 2) (+ 1 (* -1 (/ (* a t) (pow z 2))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(+ (* -1 (* a t)) (pow z 2)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* t (- (/ (pow z 2) t) a)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(* -1 (* t (- (* -1 (/ (pow z 2) t)) (* -1 a)))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* a (- (/ (pow z 2) a) t)) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
(* -1 (* a (- (* -1 (/ (pow z 2) a)) (* -1 t)))) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(* x (* y z)) |
(*.f64 (*.f64 x y) z) |
(* x y) |
(*.f64 x y) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
| Inputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(*.f64 (*.f64 x y) z) |
(*.f64 x y) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
| Outputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(*.f64 (*.f64 x y) z) |
(*.f64 x y) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
Compiled 182 to 27 computations (85.2% saved)
3 alts after pruning (2 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 8 | 2 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 8 | 3 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.3% | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| ▶ | 5.6% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
| ▶ | 5.7% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
Compiled 59 to 45 computations (23.7% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 t a) | |
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | (-.f64 (*.f64 z z) (*.f64 t a)) | |
| cost-diff | 0 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) | |
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | (-.f64 (*.f64 z z) (*.f64 t a)) | |
| cost-diff | 0 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) | |
| cost-diff | 0 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
z |
(*.f64 t a) |
t |
a |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
z |
(*.f64 t a) |
t |
a |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
z |
(*.f64 t a) |
t |
a |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
z |
(*.f64 t a) |
t |
a |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 0.0 | (*.f64 t a) | |
| accuracy | 1.5937500000000002 | (-.f64 (*.f64 z z) (*.f64 t a)) | |
| accuracy | 60.11277316974986 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) | |
| accuracy | 0.0 | (*.f64 t a) | |
| accuracy | 1.5937500000000002 | (-.f64 (*.f64 z z) (*.f64 t a)) | |
| accuracy | 22.468470001402697 | (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) | |
| accuracy | 62.09739736522338 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| 23.0ms | 256× | 0 | valid |
Compiled 155 to 32 computations (79.4% saved)
ival-mult: 6.0ms (55.5% of total)ival-sqrt: 2.0ms (18.5% of total)ival-sub: 1.0ms (9.2% of total)ival-div: 1.0ms (9.2% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(*.f64 t a) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(* -1 (* a t)) |
(- (pow z 2) (* a t)) |
(pow z 2) |
(* x y) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(* (pow z 2) (+ 1 (* -1 (/ (* a t) (pow z 2))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(+ (* -1 (* a t)) (pow z 2)) |
(* a t) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* t (- (/ (pow z 2) t) a)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(* -1 (* t (- (* -1 (/ (pow z 2) t)) (* -1 a)))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* a (- (/ (pow z 2) a) t)) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
(* -1 (* a (- (* -1 (/ (pow z 2) a)) (* -1 t)))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)) (* z z) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* t a)) |
| 1.0ms | x | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)) (* z z) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* t a)) |
| 1.0ms | y | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)) (* z z) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* t a)) |
| 1.0ms | y | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)) (* z z) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* t a)) |
| 1.0ms | y | @ | inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)) (* z z) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* t a)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(* -1 (* a t)) |
(- (pow z 2) (* a t)) |
(pow z 2) |
(* x y) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(* (pow z 2) (+ 1 (* -1 (/ (* a t) (pow z 2))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(+ (* -1 (* a t)) (pow z 2)) |
(* a t) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* t (- (/ (pow z 2) t) a)) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(* -1 (* t (- (* -1 (/ (pow z 2) t)) (* -1 a)))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* a (- (/ (pow z 2) a) t)) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
(* -1 (* a (- (* -1 (/ (pow z 2) a)) (* -1 t)))) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(*.f64 z z) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(* (sqrt (* a t)) (sqrt -1)) |
(*.f64 t a) |
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(*.f64 t a) |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))) |
(-.f64 (*.f64 z z) (*.f64 t a)) |
(*.f64 z z) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
(*.f64 t a) |
Compiled 323 to 23 computations (92.9% saved)
5 alts after pruning (2 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 11 | 2 | 13 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 1 | 1 |
| Total | 11 | 5 | 16 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.3% | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| ✓ | 5.6% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
| ▶ | 10.1% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
| ✓ | 5.7% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| ▶ | 4.9% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
Compiled 104 to 74 computations (28.8% saved)
| 1× | egg-herbie |
Found 5 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) | |
| cost-diff | 0 | (*.f64 t a) | |
| cost-diff | 0 | #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) | |
| cost-diff | 0 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(*.f64 t a) |
t |
a |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(*.f64 z z) |
z |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(*.f64 t a) |
t |
a |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(*.f64 z z) |
z |
Found 5 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 57.53286434517672 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) | |
| accuracy | 0.0 | (*.f64 t a) | |
| accuracy | 62.09739736522338 | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) | |
| accuracy | 62.282466290597384 | #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
| 23.0ms | 256× | 0 | valid |
Compiled 113 to 31 computations (72.6% saved)
ival-mult: 6.0ms (56.3% of total)ival-sqrt: 2.0ms (18.8% of total)ival-sub: 1.0ms (9.4% of total)ival-div: 1.0ms (9.4% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(*.f64 t a) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(*.f64 z z) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(pow z 2) |
(* x y) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(* a t) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (* t a) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* z z)) |
| 1.0ms | y | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (* t a) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* z z)) |
| 1.0ms | x | @ | -inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (* t a) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* z z)) |
| 1.0ms | y | @ | 0 | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (* t a) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* z z)) |
| 1.0ms | x | @ | inf | ((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt (- (* z z) (* t a))) (* t a) (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* z z)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(* (sqrt (* a t)) (sqrt -1)) |
(+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (* a t)) (sqrt -1))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (pow z 2) (pow (sqrt -1) 3)))) (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1))))))) |
(+ (* (sqrt (* a t)) (sqrt -1)) (* (pow z 2) (+ (* 1/2 (* (sqrt (/ 1 (* a t))) (/ 1 (sqrt -1)))) (* (pow z 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ 1 (pow (sqrt -1) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (pow z 2) (pow (sqrt -1) 5))))))))) |
(pow z 2) |
(* x y) |
(+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y))) |
(+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (+ (* -1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6))) (+ (* 1/2 (/ (* a (* t (* x y))) (pow z 2))) (* x y)))) |
z |
(* z (+ 1 (* -1/2 (/ (* a t) (pow z 2))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4)))))) |
(* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6))))))) |
(* -1 (* x y)) |
(+ (* -1 (* x y)) (* -1/2 (/ (* a (* t (* x y))) (pow z 2)))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))))) |
(+ (* -1 (* x y)) (+ (* -1/2 (/ (* a (* t (* x y))) (pow z 2))) (+ (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))) (pow z 4))) (* 1/2 (/ (* x (* y (+ (* -1 (* (pow a 3) (pow t 3))) (* -1/2 (* a (* t (+ (* -1 (* (pow a 2) (pow t 2))) (* 1/4 (* (pow a 2) (pow t 2)))))))))) (pow z 6)))))) |
(* -1 z) |
(* -1 (* z (+ 1 (* -1/2 (/ (* a t) (pow z 2)))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))))))) |
(* -1 (* z (+ 1 (+ (* -1/2 (/ (* a t) (pow z 2))) (+ (* -1/8 (/ (* (pow a 2) (pow t 2)) (pow z 4))) (* -1/16 (/ (* (pow a 3) (pow t 3)) (pow z 6)))))))) |
(+ (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))))))) (* 1/2 (/ (* a (* x y)) (pow z 2))))) (* x y)) |
(+ (* t (+ (* 1/2 (/ (* a (* x y)) (pow z 2))) (* t (+ (* -1/2 (* t (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 3) (pow z 8))) (* -1/2 (/ (* a (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow a 2) (pow z 6))) (* 1/4 (/ (pow a 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* -1/2 (/ (* a t) z))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* -1/8 (/ (* (pow a 2) t) (pow z 3)))))) |
(+ z (* t (+ (* -1/2 (/ a z)) (* t (+ (* -1/8 (/ (pow a 2) (pow z 3))) (* -1/16 (/ (* (pow a 3) t) (pow z 5)))))))) |
(* a t) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ a (pow t 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* t (pow z 4)) (* (pow a 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow a 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a t)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* t (pow z 4)) (pow a 3))) (/ (pow z 6) (pow a 4))))))))) (* 1/2 (* (sqrt (/ t (pow a 5))) (* x (* y (* (pow z 5) (sqrt -1))))))) (pow t 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* (sqrt (* a t)) (sqrt -1))) |
(* -1 (* t (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1)))))) |
(* -1 (* t (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow t 5)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow t 7)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow t 3)))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ a t)) (sqrt -1))))))) |
(+ (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))))))) (* 1/2 (/ (* t (* x y)) (pow z 2))))) (* x y)) |
(+ (* a (+ (* 1/2 (/ (* t (* x y)) (pow z 2))) (* a (+ (* -1/2 (* a (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 3) (pow z 8))) (* -1/2 (/ (* t (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6))))) (pow z 2))))))))) (* -1/2 (* x (* y (* (pow z 2) (+ (* -1 (/ (pow t 2) (pow z 6))) (* 1/4 (/ (pow t 2) (pow z 6)))))))))))) (* x y)) |
(+ z (* a (+ (* -1/2 (/ t z)) (* -1/8 (/ (* a (pow t 2)) (pow z 3)))))) |
(+ z (* a (+ (* -1/2 (/ t z)) (* a (+ (* -1/8 (/ (pow t 2) (pow z 3))) (* -1/16 (/ (* a (pow t 3)) (pow z 5)))))))) |
(+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 3))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 5) (pow t 5)))) (/ (* x (* y (pow z 5))) (sqrt -1)))) (+ (* -1/2 (* (sqrt (/ t (pow a 7))) (/ (* x (* y (* z (+ (* 1/4 (/ (* a (pow z 4)) (* (pow t 3) (pow (sqrt -1) 2)))) (/ (pow z 6) (pow t 4)))))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1)))))))) |
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (/ (pow z 4) (pow (sqrt -1) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (/ (pow z 6) (pow (sqrt -1) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (/ (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(+ (* -1 (/ (+ (* 1/2 (* (sqrt (/ a (pow t 5))) (* x (* y (* (pow z 5) (sqrt -1)))))) (* 1/2 (* (sqrt (/ t a)) (* x (* y (* z (* (sqrt -1) (+ (* -1/4 (/ (* a (pow z 4)) (pow t 3))) (/ (pow z 6) (pow t 4)))))))))) (pow a 3))) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (* x (* y (* (pow z 3) (sqrt -1)))))) (* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))))) |
(* -1 (* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1)))))) |
(* -1 (* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow t 3)))) (* (pow z 4) (sqrt -1)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow t 5)))) (* (pow z 6) (sqrt -1)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) t))) (* (pow z 2) (sqrt -1)))) (* (sqrt (/ t a)) (sqrt -1))))))) |
| Outputs |
|---|
(* (* x (* y z)) (sqrt (/ 1 (- (pow z 2) (* a t))))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
(* (sqrt (/ 1 (* a t))) (* x (* y (* z (sqrt -1))))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(* z (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x (* y (pow z 2))) (sqrt -1)))) (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))))) |
(*.f64 t a) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3))))))) (sqrt -1)))) (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))))))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(* z (+ (* (sqrt (/ 1 (* a t))) (* x (* y (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (/ 1 (* (pow a 3) (pow t 3)))) (/ (* x y) (sqrt -1)))) (* (pow z 2) (+ (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (* (pow z 2) (+ (* 1/2 (/ (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))) (* a (* t (pow (sqrt -1) 2))))) (/ 1 (* (pow a 4) (pow t 4))))))) (sqrt -1)))) (* -1/2 (* (sqrt (* a t)) (/ (* x (* y (+ (* 1/4 (/ 1 (* (pow a 3) (* (pow t 3) (pow (sqrt -1) 2))))) (/ 1 (* (pow a 3) (pow t 3)))))) (sqrt -1)))))))))) |
(*.f64 z z) |
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(*.f64 t a) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(*.f64 z z) |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)) |
(*.f64 t a) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
(*.f64 z z) |
Compiled 210 to 20 computations (90.5% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 8 | 0 | 8 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 3 | 3 |
| Total | 8 | 5 | 13 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 66.3% | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| ✓ | 5.6% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
| ✓ | 10.1% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
| ✓ | 5.7% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| ✓ | 4.9% | #s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
Compiled 208 to 98 computations (52.9% saved)
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| Outputs |
|---|
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
8 calls:
| 5.0ms | z |
| 2.0ms | y |
| 2.0ms | a |
| 2.0ms | t |
| 2.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 66.3% | 1 | x |
| 66.3% | 1 | y |
| 66.3% | 1 | z |
| 66.3% | 1 | t |
| 66.3% | 1 | a |
| 69.6% | 2 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| 66.3% | 1 | (*.f64 x y) |
| 66.3% | 1 | (*.f64 t a) |
Compiled 25 to 49 computations (-96% saved)
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a))) |
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z)) |
8 calls:
| 8.0ms | t |
| 2.0ms | z |
| 2.0ms | y |
| 2.0ms | x |
| 2.0ms | a |
| Accuracy | Segments | Branch |
|---|---|---|
| 10.1% | 1 | t |
| 10.1% | 1 | z |
| 10.1% | 1 | (*.f64 t a) |
| 10.1% | 1 | y |
| 10.1% | 1 | a |
| 10.1% | 1 | (*.f64 x y) |
| 10.1% | 1 | x |
| 10.1% | 1 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
Compiled 25 to 49 computations (-96% saved)
| Inputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
| Outputs |
|---|
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))) |
8 calls:
| 1.0ms | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| 1.0ms | z |
| 1.0ms | a |
| 1.0ms | y |
| 1.0ms | (*.f64 t a) |
| Accuracy | Segments | Branch |
|---|---|---|
| 4.9% | 1 | (*.f64 t a) |
| 4.9% | 1 | (/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))) |
| 4.9% | 1 | z |
| 4.9% | 1 | (*.f64 x y) |
| 4.9% | 1 | y |
| 4.9% | 1 | x |
| 4.9% | 1 | a |
| 4.9% | 1 | t |
Compiled 25 to 49 computations (-96% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | +inf | NaN |
Compiled 17 to 20 computations (-17.6% saved)
Loading profile data...