Details

Time bar (total: 3.3s)

analyze389.0ms (11.6%)

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
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
14.1%14%85.8%0.2%0%0%0%11
21.1%21.1%78.8%0.2%0%0%0%12
Compiler

Compiled 18 to 14 computations (22.2% saved)

sample1.2s (37.3%)

Results
1.1s8255×body256valid
153.0ms1160×body256infinite
0.0msbody1024valid
Bogosity

preprocess192.0ms (5.7%)

Algorithm
egg-herbie
Rules
1709×fma-neg_binary64
492×fma-def_binary64
250×cancel-sign-sub-inv_binary64
248×unsub-neg_binary64
239×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040112
1101112
2218105
347498
4116884
5253884
6453184
7482684
8487484
9487484
10586284
11586284
12586284
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
1
3
Call 2
Inputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) y) (/.f64 (*.f64 x z) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) z) (/.f64 (*.f64 y x) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) t) (/.f64 (*.f64 y z) 2)) x)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 z y) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 t z) 2)) y)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y t) 2)) z)
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(-.f64 (+.f64 t (*.f64 1/8 x)) (/.f64 (*.f64 y z) 2))
(fma.f64 1/8 x (fma.f64 -1 (*.f64 y (/.f64 z 2)) t))
(-.f64 (fma.f64 1/8 x t) (*.f64 y (/.f64 z 2)))
(fma.f64 1/8 x (fma.f64 y (*.f64 -1/2 z) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) y) (/.f64 (*.f64 x z) 2)) t)
(+.f64 t (-.f64 (*.f64 1/8 y) (/.f64 x (/.f64 2 z))))
(+.f64 t (-.f64 (*.f64 1/8 y) (*.f64 (/.f64 x 2) z)))
(fma.f64 1/8 y (fma.f64 -1 (*.f64 z (/.f64 x 2)) t))
(-.f64 (fma.f64 1/8 y t) (*.f64 x (/.f64 z 2)))
(fma.f64 1/8 y (fma.f64 z (*.f64 -1/2 x) t))
(fma.f64 1/8 y (fma.f64 x (*.f64 z -1/2) t))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) z) (/.f64 (*.f64 y x) 2)) t)
(+.f64 t (-.f64 (*.f64 1/8 z) (/.f64 y (/.f64 2 x))))
(+.f64 t (-.f64 (*.f64 1/8 z) (*.f64 (/.f64 y 2) x)))
(fma.f64 1/8 z (fma.f64 -1 (*.f64 x (/.f64 y 2)) t))
(-.f64 (fma.f64 1/8 z t) (*.f64 x (/.f64 y 2)))
(fma.f64 1/8 z (fma.f64 x (*.f64 -1/2 y) t))
(fma.f64 1/8 z (fma.f64 x (*.f64 y -1/2) t))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) t) (/.f64 (*.f64 y z) 2)) x)
(+.f64 x (-.f64 (*.f64 1/8 t) (/.f64 (*.f64 y z) 2)))
(fma.f64 1/8 t (fma.f64 -1 (*.f64 y (/.f64 z 2)) x))
(fma.f64 1/8 t (fma.f64 (/.f64 (neg.f64 y) 2) z x))
(fma.f64 1/8 t (fma.f64 z (*.f64 -1/2 y) x))
(fma.f64 1/8 t (fma.f64 z (*.f64 y -1/2) x))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 z y) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(-.f64 (+.f64 t (*.f64 1/8 x)) (/.f64 (*.f64 y z) 2))
(fma.f64 1/8 x (fma.f64 -1 (*.f64 y (/.f64 z 2)) t))
(-.f64 (fma.f64 1/8 x t) (*.f64 y (/.f64 z 2)))
(fma.f64 1/8 x (fma.f64 y (*.f64 -1/2 z) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 t z) 2)) y)
(+.f64 y (-.f64 (*.f64 1/8 x) (/.f64 t (/.f64 2 z))))
(+.f64 y (-.f64 (*.f64 1/8 x) (*.f64 (/.f64 t 2) z)))
(fma.f64 1/8 x (fma.f64 -1 (*.f64 z (/.f64 t 2)) y))
(-.f64 (fma.f64 1/8 x y) (*.f64 z (/.f64 t 2)))
(fma.f64 1/8 x (fma.f64 (*.f64 -1/2 z) t y))
(fma.f64 1/8 x (fma.f64 t (*.f64 z -1/2) y))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y t) 2)) z)
(+.f64 z (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y t) 2)))
(+.f64 z (-.f64 (*.f64 1/8 x) (/.f64 t (/.f64 2 y))))
(fma.f64 1/8 x (fma.f64 -1 (*.f64 t (/.f64 y 2)) z))
(-.f64 (fma.f64 1/8 x z) (*.f64 y (/.f64 t 2)))
(fma.f64 1/8 x (fma.f64 t (*.f64 -1/2 y) z))
(fma.f64 1/8 x (fma.f64 y (*.f64 t -1/2) z))
Symmetry

(sort y z)

Compiler

Compiled 21 to 17 computations (19% saved)

simplify35.0ms (1.1%)

Algorithm
egg-herbie
Rules
382×fma-def_binary64
318×fma-neg_binary64
114×cancel-sign-sub-inv_binary64
53×unsub-neg_binary64
51×sub-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01516
12716
25115
310314
423612
545612
673112
7106112
8153512
9163312
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (fma.f64 1/8 x (neg.f64 (/.f64 y (/.f64 2 z)))) t)
(+.f64 (fma.f64 1/8 x (/.f64 (neg.f64 y) (/.f64 2 z))) t)
(fma.f64 1/8 x (fma.f64 -1 (*.f64 z (/.f64 y 2)) t))
(-.f64 (fma.f64 1/8 x t) (/.f64 (*.f64 y z) 2))
(fma.f64 z (*.f64 -1/2 y) (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 -1/2 (*.f64 y z) t))
(fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))

eval1.0ms (0%)

Compiler

Compiled 26 to 17 computations (34.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Compiler

Compiled 17 to 13 computations (23.5% saved)

localize19.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
0.0b
(/.f64 (*.f64 y z) 2)
Compiler

Compiled 51 to 32 computations (37.3% saved)

series11.0ms (0.3%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@0
(/.f64 (*.f64 y z) 2)
1.0ms
x
@inf
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
1.0ms
z
@0
(/.f64 (*.f64 y z) 2)
1.0ms
y
@inf
(/.f64 (*.f64 y z) 2)
1.0ms
z
@inf
(/.f64 (*.f64 y z) 2)

rewrite83.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
653×log-prod_binary64
573×fma-def_binary64
321×fma-neg_binary64
261×pow1/3_binary64
258×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01523
130421
2399219
Stop Event
node limit
Counts
2 → 112
Calls
Call 1
Inputs
(/.f64 (*.f64 y z) 2)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (*.f64 y z)))) (cbrt.f64 (sqrt.f64 (exp.f64 (*.f64 y z)))))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (*.f64 y z))))) (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y (*.f64 z 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 1 (/.f64 2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y z) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 z 1/2))) (cbrt.f64 (*.f64 (pow.f64 (*.f64 y z) 2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 y z) 2) 1/4)) (cbrt.f64 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y z)) 2) (*.f64 (cbrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 z 1/2))) (sqrt.f64 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y z)) (*.f64 (sqrt.f64 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (neg.f64 z)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 2) z)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 z 1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 z 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y z) 3) 1/8) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (*.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 2 (*.f64 y z)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 y z) -2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 y z) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (sqrt.f64 (exp.f64 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y (*.f64 z 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y z) 3) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (*.f64 z 1/2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/8 x) (-.f64 (*.f64 y (*.f64 z 1/2)) t))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t))) (/.f64 (*.f64 t t) (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 t (*.f64 1/8 x)) (*.f64 y (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) (pow.f64 (cbrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) 2) (cbrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) (sqrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3)) (/.f64 1 (fma.f64 t (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 t t)) (/.f64 1 (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 t (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)) (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t)) (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 t t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3)) (fma.f64 t (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3)) (fma.f64 t t (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 t t)) (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3))) (neg.f64 (fma.f64 t (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 t t))) (neg.f64 (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 x 3) 1/512) (pow.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t) 3)) (fma.f64 (*.f64 x x) 1/64 (fma.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t) (-.f64 (*.f64 y (*.f64 z 1/2)) t) (*.f64 (*.f64 1/8 x) (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) 1/64) (*.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t) (-.f64 (*.f64 y (*.f64 z 1/2)) t))) (fma.f64 1/8 x (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 t t) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)) (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 t (-.f64 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)) (+.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 3) (pow.f64 t 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 1/8 x) (fma.f64 y (*.f64 z 1/2) t)) (-.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2) (*.f64 t t))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 1/8 x))) (exp.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 1/8) x) (/.f64 (sqrt.f64 (exp.f64 (*.f64 y z))) (exp.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 1/8 x))) (/.f64 (sqrt.f64 (exp.f64 (*.f64 y z))) (exp.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))) (exp.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (+.f64 1 (expm1.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))) (+.f64 1 (expm1.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 t)) (exp.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 t) (+.f64 1 (expm1.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 t)) (+.f64 1 (expm1.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 1/8 x) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 1/8 x) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 t (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/8 x (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/8 x (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1/8 (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1/8 (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 x) 1 (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 x) 1 (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 1 t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t 1 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 t) (pow.f64 (cbrt.f64 t) 2) (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (cbrt.f64 t) (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 1/8) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 1/8) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) 1/2) (pow.f64 (*.f64 (cbrt.f64 x) 1/2) 2) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) 1/2) (pow.f64 (*.f64 (cbrt.f64 x) 1/2) 2) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (cbrt.f64 x) 1/2) 2) (*.f64 (cbrt.f64 x) 1/2) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (cbrt.f64 x) 1/2) 2) (*.f64 (cbrt.f64 x) 1/2) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (cbrt.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)) 2)) (cbrt.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (sqrt.f64 t) (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 1/8) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 1/8) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 1/8 x)) (sqrt.f64 (*.f64 1/8 x)) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 1/8 x)) (sqrt.f64 (*.f64 1/8 x)) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) (sqrt.f64 (fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 x 3) 1/512) (*.f64 (pow.f64 (*.f64 y z) 3) 1/8)) (/.f64 1 (fma.f64 (*.f64 y (*.f64 z 1/2)) (fma.f64 y (*.f64 z 1/2) (*.f64 1/8 x)) (*.f64 (*.f64 x x) 1/64))) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (*.f64 x x) 1/64) (*.f64 (pow.f64 (*.f64 y z) 2) 1/4)) (/.f64 1 (fma.f64 y (*.f64 z 1/2) (*.f64 1/8 x))) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 1/8 x)) (sqrt.f64 (*.f64 y (*.f64 z 1/2)))) (-.f64 (sqrt.f64 (*.f64 1/8 x)) (sqrt.f64 (*.f64 y (*.f64 z 1/2)))) t)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 (*.f64 y z) -1/2 t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (-.f64 (*.f64 y (*.f64 z 1/2)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/8 (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 (*.f64 y z) -1/2 t))))))

simplify74.0ms (2.2%)

Algorithm
egg-herbie
Rules
635×fma-def_binary64
296×fma-neg_binary64
140×cancel-sign-sub-inv_binary64
53×distribute-rgt-neg-in_binary64
50×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017671
140669
287667
3179667
4281667
5386667
6634667
7871667
81072667
91497667
101721667
111733667
Stop Event
saturated
Counts
184 → 126
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(*.f64 1/2 (*.f64 y z))
(-.f64 t (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(*.f64 1/8 x)
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(*.f64 1/8 x)
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(+.f64 (*.f64 1/8 x) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 1/8 x) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
t
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
t
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
Outputs
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(*.f64 1/2 (*.f64 y z))
(*.f64 (*.f64 1/2 y) z)
(-.f64 t (*.f64 1/2 (*.f64 y z)))
(-.f64 t (*.f64 (*.f64 1/2 y) z))
(+.f64 t (*.f64 z (*.f64 y -1/2)))
(fma.f64 z (*.f64 y -1/2) t)
(fma.f64 y (*.f64 z -1/2) t)
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 1/8 x)
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 1/8 x)
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 1/8 x) t)
(fma.f64 1/8 x t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 -1/2 (*.f64 y z))
(*.f64 (*.f64 y z) -1/2)
(*.f64 z (*.f64 y -1/2))
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 -1/2 (*.f64 y z))
(*.f64 (*.f64 y z) -1/2)
(*.f64 z (*.f64 y -1/2))
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 1/8 x) t)
(fma.f64 1/8 x t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 -1/2 (*.f64 y z))
(*.f64 (*.f64 y z) -1/2)
(*.f64 z (*.f64 y -1/2))
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(*.f64 -1/2 (*.f64 y z))
(*.f64 (*.f64 y z) -1/2)
(*.f64 z (*.f64 y -1/2))
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (+.f64 (*.f64 1/8 x) t))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
(+.f64 (*.f64 1/8 x) (*.f64 (*.f64 y z) -1/2))
(fma.f64 (*.f64 y z) -1/2 (*.f64 1/8 x))
(fma.f64 y (*.f64 z -1/2) (*.f64 1/8 x))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
t
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
t
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))
(-.f64 (+.f64 (*.f64 1/8 x) t) (*.f64 1/2 (*.f64 y z)))
(fma.f64 -1/2 (*.f64 y z) (fma.f64 1/8 x t))
(fma.f64 (*.f64 y z) -1/2 (fma.f64 1/8 x t))
(fma.f64 1/8 x (fma.f64 z (*.f64 y -1/2) t))
(fma.f64 1/8 x (fma.f64 y (*.f64 z -1/2) t))
(fma.f64 y (*.f64 z -1/2) (fma.f64 1/8 x t))

eval43.0ms (1.3%)

Compiler

Compiled 2111 to 1282 computations (39.3% saved)

prune24.0ms (0.7%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1197126
Fresh000
Picked101
Done000
Total1207127
Error
0b
Counts
127 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
40.7b
t
22.3b
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
46.0b
(*.f64 y (*.f64 z -1/2))
16.7b
(+.f64 (*.f64 1/8 x) t)
38.8b
(*.f64 1/8 x)
24.2b
(fma.f64 y (*.f64 z -1/2) t)
24.3b
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Compiler

Compiled 123 to 94 computations (23.6% saved)

localize7.0ms (0.2%)

Compiler

Compiled 15 to 10 computations (33.3% saved)

localize4.0ms (0.1%)

Compiler

Compiled 9 to 7 computations (22.2% saved)

localize6.0ms (0.2%)

Compiler

Compiled 15 to 10 computations (33.3% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 t (*.f64 1/2 (*.f64 y z)))
0.0b
(*.f64 1/2 (*.f64 y z))
Compiler

Compiled 23 to 11 computations (52.2% saved)

series4.0ms (0.1%)

Counts
2 → 36
Calls

15 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(-.f64 t (*.f64 1/2 (*.f64 y z)))
0.0ms
y
@0
(*.f64 1/2 (*.f64 y z))
0.0ms
t
@0
(-.f64 t (*.f64 1/2 (*.f64 y z)))
0.0ms
z
@-inf
(-.f64 t (*.f64 1/2 (*.f64 y z)))
0.0ms
y
@inf
(*.f64 1/2 (*.f64 y z))

rewrite66.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
927×pow1_binary64
861×add-log-exp_binary64
861×log1p-expm1-u_binary64
861×expm1-log1p-u_binary64
844×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117617
2234917
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 y z))
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 1/2 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 y z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 1/2 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y z) 3) 1/8) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 1/2 (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 y) z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y z) 3) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 1/2 (*.f64 y z))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 t (*.f64 (*.f64 y z) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 t (*.f64 (*.f64 (*.f64 y z) -1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 (neg.f64 (*.f64 y z)) 1/2 (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 -1/2 (*.f64 y z) (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 (*.f64 (*.f64 y z) -1/2) 1 (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 1/2 (*.f64 y z)))) (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 y z))) 2) (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 1/2 (*.f64 y z)))) (sqrt.f64 (*.f64 1/2 (*.f64 y z))) (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) (fma.f64 (neg.f64 z) (*.f64 1/2 y) (*.f64 1/2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y z) -1/2) t)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 t (*.f64 (*.f64 y z) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) (pow.f64 (cbrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) 2) (cbrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) (sqrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 t 3) (*.f64 (pow.f64 (*.f64 y z) 3) 1/8)) (/.f64 1 (fma.f64 t t (*.f64 (*.f64 1/2 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 y z)) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 1/2 (*.f64 y z)) 2)) (/.f64 1 (+.f64 (*.f64 1/2 (*.f64 y z)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 t) (sqrt.f64 (*.f64 1/2 (*.f64 y z)))) (-.f64 (sqrt.f64 t) (sqrt.f64 (*.f64 1/2 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 t t (*.f64 (*.f64 1/2 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 y z)) t))) (-.f64 (pow.f64 t 3) (*.f64 (pow.f64 (*.f64 y z) 3) 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 1/2 (*.f64 y z)) t) (-.f64 (*.f64 t t) (pow.f64 (*.f64 1/2 (*.f64 y z)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 t 3) (*.f64 (pow.f64 (*.f64 y z) 3) 1/8)) (fma.f64 t t (*.f64 (*.f64 1/2 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 y z)) t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 1/2 (*.f64 y z)) 2)) (+.f64 (*.f64 1/2 (*.f64 y z)) t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 t 3) (*.f64 (pow.f64 (*.f64 y z) 3) 1/8))) (neg.f64 (fma.f64 t t (*.f64 (*.f64 1/2 (*.f64 y z)) (+.f64 (*.f64 1/2 (*.f64 y z)) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 t t) (pow.f64 (*.f64 1/2 (*.f64 y z)) 2))) (neg.f64 (+.f64 (*.f64 1/2 (*.f64 y z)) t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 t 3) (pow.f64 (*.f64 (*.f64 y z) -1/2) 3)) (+.f64 (*.f64 t t) (-.f64 (*.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 (*.f64 y z) -1/2)) (*.f64 t (*.f64 (*.f64 y z) -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 t t) (*.f64 (*.f64 (*.f64 y z) -1/2) (*.f64 (*.f64 y z) -1/2))) (-.f64 t (*.f64 (*.f64 y z) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 t (*.f64 (*.f64 y z) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 t (*.f64 (*.f64 y z) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (cbrt.f64 t) (*.f64 (*.f64 y z) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (sqrt.f64 t) (*.f64 (*.f64 y z) -1/2))))))

simplify14.0ms (0.4%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
associate-*r*_binary64
associate-*l*_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08255
114255
223255
329255
Stop Event
saturated
Counts
85 → 53
Calls
Call 1
Inputs
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Outputs
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
t
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(fma.f64 -1/2 (*.f64 y z) t)
(fma.f64 (*.f64 -1/2 y) z t)
(fma.f64 z (*.f64 -1/2 y) t)

localize11.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (*.f64 y z))
Compiler

Compiled 29 to 16 computations (44.8% saved)

eval17.0ms (0.5%)

Compiler

Compiled 890 to 496 computations (44.3% saved)

prune14.0ms (0.4%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New62264
Fresh202
Picked011
Done044
Total64771
Error
0b
Counts
71 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
22.3b
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
46.0b
(*.f64 y (*.f64 z -1/2))
40.7b
t
24.2b
(fma.f64 z (*.f64 -1/2 y) t)
16.7b
(+.f64 (*.f64 1/8 x) t)
38.8b
(*.f64 1/8 x)
24.3b
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Compiler

Compiled 64 to 49 computations (23.4% saved)

localize8.0ms (0.2%)

Compiler

Compiled 17 to 10 computations (41.2% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune3.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done055
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
22.3b
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
46.0b
(*.f64 y (*.f64 z -1/2))
40.7b
t
24.2b
(fma.f64 z (*.f64 -1/2 y) t)
16.7b
(+.f64 (*.f64 1/8 x) t)
38.8b
(*.f64 1/8 x)
24.3b
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Compiler

Compiled 64 to 49 computations (23.4% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune3.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
22.3b
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
46.0b
(*.f64 y (*.f64 z -1/2))
40.7b
t
24.2b
(fma.f64 z (*.f64 -1/2 y) t)
16.7b
(+.f64 (*.f64 1/8 x) t)
38.8b
(*.f64 1/8 x)
24.3b
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Compiler

Compiled 64 to 49 computations (23.4% saved)

regimes64.0ms (1.9%)

Counts
10 → 1
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
(-.f64 t (*.f64 1/2 (*.f64 y z)))
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(fma.f64 z (*.f64 -1/2 y) t)
(fma.f64 y (*.f64 z -1/2) t)
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Calls

9 calls:

7.0ms
y
7.0ms
x
7.0ms
(-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2))
7.0ms
t
7.0ms
(/.f64 (*.f64 y z) 2)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
0.0b1(-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2))
0.0b1(*.f64 (/.f64 1 8) x)
0.0b1(/.f64 (*.f64 y z) 2)
0.0b1(*.f64 y z)
Compiler

Compiled 137 to 96 computations (29.9% saved)

regimes114.0ms (3.4%)

Counts
7 → 3
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
(-.f64 t (*.f64 1/2 (*.f64 y z)))
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
Outputs
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
(+.f64 (*.f64 1/8 x) t)
(-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))
Calls

5 calls:

29.0ms
t
28.0ms
y
25.0ms
z
15.0ms
x
14.0ms
(*.f64 y z)
Results
ErrorSegmentsBranch
8.0b3x
8.7b5y
8.1b5z
7.9b5t
6.1b3(*.f64 y z)
Compiler

Compiled 62 to 42 computations (32.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.177441805523351e+24
7.28749216037377e+24
0.0ms
-3.506660348031005e+70
-2.20921999847064e+68
Compiler

Compiled 24 to 19 computations (20.8% saved)

regimes102.0ms (3%)

Counts
6 → 3
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Outputs
(-.f64 t (*.f64 1/2 (*.f64 y z)))
(+.f64 (*.f64 1/8 x) t)
(-.f64 t (*.f64 1/2 (*.f64 y z)))
Calls

5 calls:

24.0ms
t
24.0ms
y
23.0ms
z
14.0ms
x
13.0ms
(*.f64 y z)
Results
ErrorSegmentsBranch
8.0b3x
9.9b5y
8.9b5z
14.7b5t
7.7b3(*.f64 y z)
Compiler

Compiled 53 to 37 computations (30.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2398937.5251462213
536838370.98893255
0.0ms
-3.506660348031005e+70
-2.20921999847064e+68
Compiler

Compiled 24 to 19 computations (20.8% saved)

regimes63.0ms (1.9%)

Counts
5 → 5
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
Outputs
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
(*.f64 y (*.f64 z -1/2))
(+.f64 (*.f64 1/8 x) t)
(*.f64 y (*.f64 z -1/2))
Calls

4 calls:

25.0ms
z
16.0ms
x
16.0ms
y
5.0ms
t
Results
ErrorSegmentsBranch
14.3b3x
13.8b4y
11.6b5z
16.7b1t
Compiler

Compiled 39 to 28 computations (28.2% saved)

bsearch277.0ms (8.3%)

Algorithm
binary-search
Steps
TimeLeftRight
74.0ms
1.147494798271195e+197
3.4161085062359203e+202
87.0ms
4.1575657264631565e+150
3.6467441149002523e+158
94.0ms
2.4938747624471908e+137
8.6099437545395e+140
22.0ms
-5.025960595020686e-34
-1.2076454422819538e-38
Compiler

Compiled 544 to 435 computations (20% saved)

regimes111.0ms (3.3%)

Counts
4 → 5
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
(*.f64 y (*.f64 z -1/2))
Outputs
(*.f64 1/8 x)
t
(*.f64 y (*.f64 z -1/2))
t
(*.f64 1/8 x)
Calls

4 calls:

37.0ms
y
34.0ms
z
22.0ms
x
15.0ms
t
Results
ErrorSegmentsBranch
22.7b5x
28.6b10y
25.9b9z
26.3b3t
Compiler

Compiled 34 to 25 computations (26.5% saved)

bsearch89.0ms (2.7%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
3.482249038250502e+48
5.692046266268184e+56
23.0ms
-5.92849089249355e-233
-4.427461990753116e-234
22.0ms
-1.770742044916842e-109
-4.945236291775378e-127
22.0ms
-1.7042907241313035e+94
-2.0539842938622102e+83
Compiler

Compiled 24 to 19 computations (20.8% saved)

regimes85.0ms (2.5%)

Counts
3 → 3
Calls
Call 1
Inputs
t
t
(*.f64 1/8 x)
Outputs
(*.f64 1/8 x)
t
(*.f64 1/8 x)
Calls

4 calls:

33.0ms
y
23.0ms
z
14.0ms
x
13.0ms
t
Results
ErrorSegmentsBranch
25.4b3x
32.3b10y
32.3b7z
26.3b3t
Compiler

Compiled 29 to 22 computations (24.1% saved)

bsearch44.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.482249038250502e+48
5.692046266268184e+56
22.0ms
-1.7042907241313035e+94
-2.0539842938622102e+83
Compiler

Compiled 24 to 19 computations (20.8% saved)

regimes14.0ms (0.4%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
2 → 1
Calls
Call 1
Inputs
t
t
Outputs
t
Calls

4 calls:

3.0ms
z
3.0ms
t
3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
40.7b1x
40.7b1y
40.7b1z
40.7b1t
Compiler

Compiled 26 to 20 computations (23.1% saved)

simplify16.0ms (0.5%)

Algorithm
egg-herbie
Rules
10×+-commutative_binary64
10×*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059234
177234
292234
3104234
4112234
5117234
6119234
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 5999999999999999899336704) (+.f64 (*.f64 1/8 x) t) (-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (-.f64 t (*.f64 1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 4000000) (+.f64 (*.f64 1/8 x) t) (-.f64 t (*.f64 1/2 (*.f64 y z)))))
(if (<=.f64 z -5876359711026665/11692013098647223345629478661730264157247460343808) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 z 849999999999999955199171548896841282428276797800855560060951286249000834552602316027764082289320260010543930697992737006817894286510354595840) (+.f64 (*.f64 1/8 x) t) (if (<=.f64 z 4199999999999999955851440139017317807873294453327565648664960237013123485329960007532417133858025004552901188806117500888507616104384193259310250196992) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 z 34000000000000001010496047641737955390151824526950332246039767394920513553953876371176424923272737753513362919911576987316951376871778583708255570542457357808704739426404025280113896532006784892498083840) (+.f64 (*.f64 1/8 x) t) (*.f64 y (*.f64 z -1/2))))))
(if (<=.f64 x -17042907241313034911012091397283044882425945300559094307831343962335651382040670765405637181440) (*.f64 1/8 x) (if (<=.f64 x -7491581427072825/42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472384) t (if (<=.f64 x -6632245353581119/111870718431542817204760874740917337854381793641291611443130662899652593770909781872442516663377454591520935582886717656540612737332317877736113382974861639142628415265543797274479692427652260844707187532155254872952853725026318685997495262134665216) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 x 3482249038250502076995438243109218107498359160832) t (*.f64 1/8 x)))))
(if (<=.f64 x -17042907241313034911012091397283044882425945300559094307831343962335651382040670765405637181440) (*.f64 1/8 x) (if (<=.f64 x 3482249038250502076995438243109218107498359160832) t (*.f64 1/8 x)))
t
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 5999999999999999899336704) (+.f64 (*.f64 1/8 x) t) (-.f64 (*.f64 1/8 x) (*.f64 1/2 (*.f64 y z)))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 5999999999999999899336704) (+.f64 (*.f64 1/8 x) t) (+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (+.f64 (*.f64 1/8 x) (*.f64 (*.f64 y z) -1/2)) (if (<=.f64 (*.f64 y z) 5999999999999999899336704) (+.f64 (*.f64 1/8 x) t) (+.f64 (*.f64 1/8 x) (*.f64 (*.f64 y z) -1/2))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (-.f64 t (*.f64 1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 4000000) (+.f64 (*.f64 1/8 x) t) (-.f64 t (*.f64 1/2 (*.f64 y z)))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (+.f64 t (*.f64 -1/2 (*.f64 y z))) (if (<=.f64 (*.f64 y z) 4000000) (+.f64 (*.f64 1/8 x) t) (+.f64 t (*.f64 -1/2 (*.f64 y z)))))
(if (<=.f64 (*.f64 y z) -20000000000000001450628727630584702523167488192930439110364203109580800) (+.f64 t (*.f64 (*.f64 y z) -1/2)) (if (<=.f64 (*.f64 y z) 4000000) (+.f64 (*.f64 1/8 x) t) (+.f64 t (*.f64 (*.f64 y z) -1/2))))
(if (<=.f64 z -5876359711026665/11692013098647223345629478661730264157247460343808) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 z 849999999999999955199171548896841282428276797800855560060951286249000834552602316027764082289320260010543930697992737006817894286510354595840) (+.f64 (*.f64 1/8 x) t) (if (<=.f64 z 4199999999999999955851440139017317807873294453327565648664960237013123485329960007532417133858025004552901188806117500888507616104384193259310250196992) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 z 34000000000000001010496047641737955390151824526950332246039767394920513553953876371176424923272737753513362919911576987316951376871778583708255570542457357808704739426404025280113896532006784892498083840) (+.f64 (*.f64 1/8 x) t) (*.f64 y (*.f64 z -1/2))))))
(if (<=.f64 x -17042907241313034911012091397283044882425945300559094307831343962335651382040670765405637181440) (*.f64 1/8 x) (if (<=.f64 x -7491581427072825/42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472384) t (if (<=.f64 x -6632245353581119/111870718431542817204760874740917337854381793641291611443130662899652593770909781872442516663377454591520935582886717656540612737332317877736113382974861639142628415265543797274479692427652260844707187532155254872952853725026318685997495262134665216) (*.f64 y (*.f64 z -1/2)) (if (<=.f64 x 3482249038250502076995438243109218107498359160832) t (*.f64 1/8 x)))))
(if (<=.f64 x -17042907241313034911012091397283044882425945300559094307831343962335651382040670765405637181440) (*.f64 1/8 x) (if (<=.f64 x 3482249038250502076995438243109218107498359160832) t (*.f64 1/8 x)))
t
Compiler

Compiled 191 to 127 computations (33.5% saved)

soundness0.0ms (0%)

end82.0ms (2.4%)

Remove

(sort y z)

Compiler

Compiled 197 to 123 computations (37.6% saved)

Profiling

Loading profile data...