Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2

Time bar (total: 1.8s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze203.0ms (11%)

Memory
2.0MiB live, 272.5MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
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
Compiler

Compiled 16 to 14 computations (12.5% saved)

sample1.2s (67.2%)

Memory
2.7MiB live, 1 726.8MiB allocated
Samples
629.0ms8 256×0valid
181.0ms2 027×0invalid
Precisions
Click to see histograms. Total time spent on operations: 487.0ms
ival-mult: 290.0ms (59.6% of total)
ival-sqrt: 74.0ms (15.2% of total)
ival-div: 58.0ms (11.9% of total)
ival-sub: 53.0ms (10.9% of total)
ival-true: 8.0ms (1.6% of total)
ival-assert: 4.0ms (0.8% of total)
Bogosity

explain120.0ms (6.5%)

Memory
5.2MiB live, 243.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
920-2(3.85253089134987e-197 9.408310036484551e-184 3.361568481672157e-156 -4.7593969423640595e-210 4.441011332367931e-108)(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
230-0-(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
170-4(-2.236683624484536e-242 2.560662240785728e-72 -4.08961271973346e+128 -2.6013719831148052e+182 1.194815450690642e-126)(*.f64 (*.f64 x y) z)
40-0-(-.f64 (*.f64 z z) (*.f64 t a))
00-0-a
00-0-t
00-0-z
00-0-(*.f64 x y)
00-0-(*.f64 z z)
00-0-y
00-0-(*.f64 t a)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))oflow-rescue870
(-.f64 (*.f64 z z) (*.f64 t a))overflow87
(*.f64 t a)overflow24
(*.f64 z z)overflow73
/.f64(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))o/n190
(*.f64 x y)overflow37
(*.f64 (*.f64 x y) z)overflow46
*.f64(*.f64 (*.f64 x y) z)n*o90
/.f64(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))u/n40
(*.f64 x y)underflow25
(*.f64 (*.f64 x y) z)underflow35
*.f64(*.f64 (*.f64 x y) z)n*u40
-.f64(-.f64 (*.f64 z z) (*.f64 t a))nan-rescue40
(*.f64 z z)overflow73
(*.f64 t a)overflow24
sqrt.f64(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))uflow-rescue30
(-.f64 (*.f64 z z) (*.f64 t a))underflow3
(*.f64 t a)underflow38
(*.f64 z z)underflow39
Confusion
Predicted +Predicted -
+910
-13152
Precision
0.875
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+9100
-130152
Precision?
0.875
Recall?
1.0
Freqs
test
numberfreq
0152
178
226
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
43.0ms512×0valid
Compiler

Compiled 162 to 52 computations (67.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
ival-mult: 14.0ms (60.1% of total)
ival-sqrt: 4.0ms (17.2% of total)
ival-div: 3.0ms (12.9% of total)
ival-sub: 2.0ms (8.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess4.0ms (0.2%)

Memory
11.0MiB live, 11.0MiB allocated
Algorithm
egg-herbie
Calls
Call 1
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))))
Compiler

Compiled 14 to 12 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 5 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.1%
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Compiler

Compiled 14 to 12 computations (14.3% saved)

simplify0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
cost-diff0
(*.f64 x y)
cost-diff0
(*.f64 (*.f64 x y) z)
cost-diff0
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Calls
Call 1
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

localize31.0ms (1.7%)

Memory
-20.4MiB live, 59.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.8164062500000001
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy3.837402114557394
(*.f64 (*.f64 x y) z)
accuracy5.519189266487737
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
accuracy21.263821198424676
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
Samples
24.0ms256×0valid
Compiler

Compiled 98 to 26 computations (73.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 6.0ms (55.3% of total)
ival-sqrt: 2.0ms (18.4% 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)

series41.0ms (2.2%)

Memory
3.6MiB live, 80.8MiB allocated
Counts
5 → 65
Calls
Call 1
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))))
Calls

15 calls:

TimeVariablePointExpression
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)))
4.0ms
a
@0
((/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (* (* x y) z) (* x y) (sqrt (- (* z z) (* t a))) (- (* z z) (* t a)))
3.0ms
y
@-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)))

simplify2.0ms (0.1%)

Memory
3.6MiB live, 3.6MiB allocated
Algorithm
egg-herbie
Counts
65 → 5
Calls
Call 1
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))

rewrite0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Counts
5 → 5
Calls
Call 1
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))

eval1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Compiler

Compiled 182 to 27 computations (85.2% saved)

prune2.0ms (0.1%)

Memory
3.9MiB live, 3.9MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New8210
Fresh000
Picked011
Done000
Total8311
Accuracy
67.1%
Counts
11 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.1%
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Compiler

Compiled 59 to 45 computations (23.7% saved)

simplify0.0ms (0%)

Memory
1.1MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 t a)
cost-diff0
(*.f64 z z)
cost-diff0
(-.f64 (*.f64 z z) (*.f64 t a))
cost-diff0
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
cost-diff0
(*.f64 z z)
cost-diff0
(-.f64 (*.f64 z z) (*.f64 t a))
cost-diff0
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
cost-diff0
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Calls
Call 1
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

localize32.0ms (1.7%)

Memory
16.9MiB live, 55.4MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z z)
accuracy0.0
(*.f64 t a)
accuracy0.8164062500000001
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy61.41213197800175
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
accuracy0.0
(*.f64 t a)
accuracy0.8164062500000001
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy21.263821198424676
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
accuracy62.051401592128016
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Samples
24.0ms256×0valid
Compiler

Compiled 155 to 32 computations (79.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 8.0ms (62.8% of total)
ival-sqrt: 2.0ms (15.7% of total)
ival-sub: 1.0ms (7.8% of total)
ival-div: 1.0ms (7.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series20.0ms (1.1%)

Memory
-13.7MiB live, 30.3MiB allocated
Counts
6 → 65
Calls
Call 1
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))))
Calls

15 calls:

TimeVariablePointExpression
8.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
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
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
@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))

simplify2.0ms (0.1%)

Memory
3.6MiB live, 3.6MiB allocated
Algorithm
egg-herbie
Counts
65 → 6
Calls
Call 1
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)

rewrite0.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Counts
6 → 6
Calls
Call 1
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)

eval1.0ms (0.1%)

Memory
3.4MiB live, 3.4MiB allocated
Compiler

Compiled 323 to 23 computations (92.9% saved)

prune4.0ms (0.2%)

Memory
-32.8MiB live, 6.0MiB allocated
Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New11213
Fresh000
Picked022
Done011
Total11516
Accuracy
67.7%
Counts
16 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.1%
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
10.3%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
5.0%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))
Compiler

Compiled 104 to 74 computations (28.8% saved)

simplify0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 z z)
cost-diff0
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
cost-diff0
(*.f64 t a)
cost-diff0
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))
cost-diff0
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))
Calls
Call 1
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

localize28.0ms (1.5%)

Memory
10.9MiB live, 48.3MiB allocated
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z z)
accuracy57.38762883617415
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
accuracy0.0
(*.f64 t a)
accuracy62.051401592128016
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))
accuracy62.4580509561702
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))
Samples
22.0ms256×0valid
Compiler

Compiled 113 to 31 computations (72.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 6.0ms (55% of total)
ival-sqrt: 2.0ms (18.3% 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)

series12.0ms (0.7%)

Memory
23.6MiB live, 23.6MiB allocated
Counts
5 → 57
Calls
Call 1
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)))))))
Calls

15 calls:

TimeVariablePointExpression
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))

simplify5.0ms (0.3%)

Memory
-34.1MiB live, 3.0MiB allocated
Algorithm
egg-herbie
Counts
57 → 5
Calls
Call 1
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)

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
5 → 5
Calls
Call 1
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)

eval1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated
Compiler

Compiled 210 to 20 computations (90.5% saved)

prune4.0ms (0.2%)

Memory
7.2MiB live, 7.2MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New808
Fresh000
Picked022
Done033
Total8513
Accuracy
67.7%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.1%
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
10.3%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
3.6%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
5.0%
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))
Compiler

Compiled 208 to 98 computations (52.9% saved)

regimes22.0ms (1.2%)

Memory
-2.4MiB live, 39.5MiB allocated
Counts
5 → 1
Calls
Call 1
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))))
Calls

8 calls:

6.0ms
y
2.0ms
x
2.0ms
t
2.0ms
a
2.0ms
(*.f64 t a)
Results
AccuracySegmentsBranch
66.1%1x
66.1%1y
66.1%1z
66.1%1t
66.1%1a
66.1%1(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
66.1%1(*.f64 x y)
66.1%1(*.f64 t a)
Compiler

Compiled 25 to 49 computations (-96% saved)

regimes19.0ms (1%)

Memory
-2.5MiB live, 36.0MiB allocated
Counts
4 → 1
Calls
Call 1
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))
Calls

8 calls:

4.0ms
(*.f64 x y)
2.0ms
x
2.0ms
y
2.0ms
z
2.0ms
a
Results
AccuracySegmentsBranch
10.3%1(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
10.3%1(*.f64 x y)
10.3%1x
10.3%1y
10.3%1z
10.3%1t
10.3%1(*.f64 t a)
10.3%1a
Compiler

Compiled 25 to 49 computations (-96% saved)

regimes10.0ms (0.5%)

Memory
24.2MiB live, 24.2MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
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)))
Calls

8 calls:

1.0ms
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
1.0ms
y
1.0ms
z
1.0ms
x
1.0ms
a
Results
AccuracySegmentsBranch
5.0%1z
5.0%1(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
5.0%1(*.f64 x y)
5.0%1a
5.0%1t
5.0%1x
5.0%1y
5.0%1(*.f64 t a)
Compiler

Compiled 25 to 49 computations (-96% saved)

simplify6.0ms (0.4%)

Memory
-28.2MiB live, 10.4MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.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))
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.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))
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))

soundness1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Stop Event
done
Compiler

Compiled 59 to 22 computations (62.7% saved)

preprocess32.0ms (1.7%)

Memory
22.8MiB live, 60.3MiB allocated
Compiler

Compiled 204 to 108 computations (47.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...