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

analyze225.0ms (12.5%)

Memory
-23.1MiB live, 329.2MiB 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 (65.5%)

Memory
25.9MiB live, 1 744.4MiB allocated
Samples
643.0ms8 256×0valid
149.0ms1 964×0invalid
Precisions
Click to see histograms. Total time spent on operations: 441.0ms
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)
Bogosity

explain140.0ms (7.7%)

Memory
-10.4MiB live, 231.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
960-0-(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
220-1(-2.399477903789178e-22 -1.8031272672421911e-298 1.7832761078753783e+99 1.0148659486486187e+23 -1.0387200098855865e-283)(*.f64 (*.f64 x y) z)
210-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))))
80-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-rescue930
(-.f64 (*.f64 z z) (*.f64 t a))overflow93
(*.f64 t a)overflow29
(*.f64 z z)overflow75
/.f64(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))o/n170
(*.f64 x y)overflow35
(*.f64 (*.f64 x y) z)overflow45
*.f64(*.f64 (*.f64 x y) z)n*u160
-.f64(-.f64 (*.f64 z z) (*.f64 t a))nan-rescue80
(*.f64 z z)overflow75
(*.f64 t a)overflow29
*.f64(*.f64 (*.f64 x y) z)n*o50
sqrt.f64(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))uflow-rescue30
(-.f64 (*.f64 z z) (*.f64 t a))underflow3
(*.f64 t a)underflow28
(*.f64 z z)underflow33
/.f64(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))u/n20
(*.f64 x y)underflow33
(*.f64 (*.f64 x y) z)underflow28
Confusion
Predicted +Predicted -
+892
-25140
Precision
0.7807017543859649
Recall
0.978021978021978
Confusion?
Predicted +Predicted MaybePredicted -
+8902
-250140
Precision?
0.7807017543859649
Recall?
0.978021978021978
Freqs
test
numberfreq
0142
187
224
33
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
62.0ms512×0valid
Compiler

Compiled 162 to 52 computations (67.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 38.0ms
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)

preprocess4.0ms (0.2%)

Memory
10.1MiB live, 10.1MiB 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.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 5 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.3%
(/.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

localize33.0ms (1.8%)

Memory
-23.5MiB live, 53.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy1.5937500000000002
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy4.564499412749246
(/.f64 (*.f64 (*.f64 x y) z) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
accuracy5.015555805587385
(*.f64 (*.f64 x y) z)
accuracy22.468470001402697
(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: 14.0ms
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)

series42.0ms (2.3%)

Memory
32.7MiB live, 70.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)))
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)))

simplify2.0ms (0.1%)

Memory
4.1MiB live, 4.1MiB 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.8MiB live, 0.8MiB 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.2MiB live, 2.2MiB allocated
Compiler

Compiled 182 to 27 computations (85.2% saved)

prune8.0ms (0.5%)

Memory
-46.5MiB live, 4.4MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New8210
Fresh000
Picked011
Done000
Total8311
Accuracy
69.6%
Counts
11 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
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))))
Compiler

Compiled 59 to 45 computations (23.7% saved)

simplify1.0ms (0%)

Memory
1.3MiB live, 1.3MiB 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

localize31.0ms (1.7%)

Memory
34.2MiB live, 72.5MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z z)
accuracy0.0
(*.f64 t a)
accuracy1.5937500000000002
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy60.11277316974986
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (-.f64 (*.f64 z z) (*.f64 t a)))
accuracy0.0
(*.f64 t a)
accuracy1.5937500000000002
(-.f64 (*.f64 z z) (*.f64 t a))
accuracy22.468470001402697
(sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a)))
accuracy62.09739736522338
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (sqrt.f64 (-.f64 (*.f64 z z) (*.f64 t a))))
Samples
23.0ms256×0valid
Compiler

Compiled 155 to 32 computations (79.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
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)

series15.0ms (0.8%)

Memory
-4.9MiB live, 34.2MiB 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
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))

simplify2.0ms (0.1%)

Memory
3.9MiB live, 3.9MiB 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
0.9MiB live, 0.9MiB 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
2.8MiB live, 2.8MiB allocated
Compiler

Compiled 323 to 23 computations (92.9% saved)

prune4.0ms (0.2%)

Memory
-30.2MiB live, 8.1MiB allocated
Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New11213
Fresh000
Picked022
Done011
Total11516
Accuracy
71.0%
Counts
16 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))
Compiler

Compiled 104 to 74 computations (28.8% saved)

simplify0.0ms (0%)

Memory
1.4MiB live, 1.4MiB 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

localize30.0ms (1.7%)

Memory
-7.0MiB live, 74.6MiB allocated
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 z z)
accuracy57.53286434517672
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
accuracy0.0
(*.f64 t a)
accuracy62.09739736522338
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) #s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a)))
accuracy62.282466290597384
#s(approx (sqrt (- (* z z) (* t a))) (*.f64 t a))
Samples
23.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 (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)

series12.0ms (0.7%)

Memory
28.2MiB live, 28.1MiB 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))

simplify2.0ms (0.1%)

Memory
3.8MiB live, 3.8MiB 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
1.0MiB live, 1.0MiB 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
2.3MiB live, 2.3MiB allocated
Compiler

Compiled 210 to 20 computations (90.5% saved)

prune6.0ms (0.3%)

Memory
-29.3MiB live, 9.1MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New808
Fresh000
Picked022
Done033
Total8513
Accuracy
71.0%
Counts
13 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))
Compiler

Compiled 208 to 98 computations (52.9% saved)

regimes22.0ms (1.2%)

Memory
4.1MiB live, 42.3MiB allocated
Counts
5 → 2
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))))
#s(approx (/ (* (* x y) z) (sqrt (- (* z z) (* t a)))) (*.f64 z z))
Calls

8 calls:

5.0ms
z
2.0ms
y
2.0ms
a
2.0ms
t
2.0ms
x
Results
AccuracySegmentsBranch
66.3%1x
66.3%1y
66.3%1z
66.3%1t
66.3%1a
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)
Compiler

Compiled 25 to 49 computations (-96% saved)

regimes23.0ms (1.3%)

Memory
-6.7MiB live, 34.1MiB 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:

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

Compiled 25 to 49 computations (-96% saved)

regimes10.0ms (0.5%)

Memory
26.1MiB live, 26.1MiB allocated
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
z
1.0ms
a
1.0ms
y
1.0ms
(*.f64 t a)
Results
AccuracySegmentsBranch
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%1z
4.9%1(*.f64 x y)
4.9%1y
4.9%1x
4.9%1a
4.9%1t
Compiler

Compiled 25 to 49 computations (-96% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
Compiler

Compiled 17 to 20 computations (-17.6% saved)

simplify7.0ms (0.4%)

Memory
-27.1MiB live, 11.4MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...