Details

Time bar (total: 12.6s)

analyze319.0ms (2.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
6.2%93.6%0.2%9
9.4%90.4%0.2%10
12.5%85.6%1.9%11
17.2%79.4%3.4%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.6s (12.7%)

Results
1.2s8256×body256valid
421.0ms3949×body256invalid

preprocess58.0ms (0.5%)

Algorithm
egg-herbie
Rules
832×unsub-neg_binary64
435×+-commutative_binary64
342×distribute-rgt-in_binary64
320×associate--r-_binary64
286×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02991
15677
216277
361277
4255677
5421577
6702777
044
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
Call 2
Inputs
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(+.f64 y (*.f64 (-.f64 x z) (-.f64 t y)))
(+.f64 z (*.f64 (-.f64 y x) (-.f64 t z)))
(+.f64 t (*.f64 (-.f64 y z) (-.f64 x t)))
(+.f64 x (*.f64 (-.f64 z y) (-.f64 t x)))
(+.f64 x (*.f64 (-.f64 t z) (-.f64 y x)))
(+.f64 x (*.f64 (-.f64 y t) (-.f64 z x)))
Outputs
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 y (*.f64 (-.f64 x z) (-.f64 t y)))
(fma.f64 (-.f64 x z) (-.f64 t y) y)
(+.f64 z (*.f64 (-.f64 y x) (-.f64 t z)))
(fma.f64 (-.f64 y x) (-.f64 t z) z)
(+.f64 t (*.f64 (-.f64 y z) (-.f64 x t)))
(fma.f64 (-.f64 y z) (-.f64 x t) t)
(+.f64 x (*.f64 (-.f64 z y) (-.f64 t x)))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 z y)))
(fma.f64 (-.f64 t x) (-.f64 z y) x)
(+.f64 x (*.f64 (-.f64 t z) (-.f64 y x)))
(+.f64 x (*.f64 (-.f64 y x) (-.f64 t z)))
(fma.f64 (-.f64 y x) (-.f64 t z) x)
(+.f64 x (*.f64 (-.f64 y t) (-.f64 z x)))
(fma.f64 (-.f64 y t) (-.f64 z x) x)
Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify125.0ms (1%)

Algorithm
egg-herbie
Rules
2262×fma-neg_binary64
697×fma-def_binary64
681×unsub-neg_binary64
313×distribute-rgt-in_binary64
278×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0913
11511
23711
311711
445311
5147611
6292711
7401811
8502311
9527111
10528211
11528211
12532411
13532411
14532411
15760111
16760111
17760111
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
Outputs
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)

eval1.0ms (0%)

Compiler

Compiled 21 to 9 computations (57.1% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 25 to 15 computations (40% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 y z) (-.f64 t x))
0.0b
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
0.0b
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
0.0b
(*.f64 (-.f64 y z) (-.f64 t x))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series13.0ms (0.1%)

Counts
2 → 96
Calls

24 calls:

TimeVariablePointExpression
3.0ms
y
@-inf
(*.f64 (-.f64 y z) (-.f64 t x))
1.0ms
x
@0
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
1.0ms
y
@0
(*.f64 (-.f64 y z) (-.f64 t x))
1.0ms
y
@inf
(*.f64 (-.f64 y z) (-.f64 t x))
1.0ms
z
@inf
(*.f64 (-.f64 y z) (-.f64 t x))

rewrite101.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
543×log-prod_binary64
520×fma-def_binary64
444×pow-prod-down_binary64
303×pow2_binary64
239×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify247.0ms (2%)

Algorithm
egg-herbie
Rules
2719×fma-neg_binary64
396×unsub-neg_binary64
314×fma-def_binary64
313×sub-neg_binary64
286×associate-+l-_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0391500
11021169
2238935
3754929
41834929
53820929
64441929
74631929
84669929
94669929
105005929
115059929
125059929
137079929
147079929
157079929
Stop Event
saturated
Counts
195 → 125
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 y (-.f64 t x)) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
Outputs
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 z (-.f64 t x)))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 z (-.f64 t x)))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 z (-.f64 t x)))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 x (neg.f64 (-.f64 y z)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 x (neg.f64 (-.f64 y z)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 x (neg.f64 (-.f64 y z)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 z (-.f64 t x)) (*.f64 (-.f64 t x) y))
(*.f64 (-.f64 t x) (-.f64 y z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(*.f64 x (+.f64 1 (neg.f64 (-.f64 y z))))
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(*.f64 x (+.f64 1 (neg.f64 (-.f64 y z))))
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) x)
(fma.f64 -1 (*.f64 z (-.f64 t x)) x)
(-.f64 x (*.f64 z (-.f64 t x)))
(fma.f64 z (fma.f64 -1 t x) x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 y (-.f64 t x)) x)
(fma.f64 y (-.f64 t x) x)
(fma.f64 (-.f64 t x) y x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 z (-.f64 t x)))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 z (-.f64 t x)))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(*.f64 x (+.f64 1 (neg.f64 (-.f64 y z))))
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 x (+.f64 1 (neg.f64 (-.f64 y z)))))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 x (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 (-.f64 y z) (-.f64 t x) x)
0.0b
(fma.f64 (-.f64 y z) (-.f64 t x) x)
Compiler

Compiled 22 to 7 computations (68.2% saved)

series6.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
t
@0
(fma.f64 (-.f64 y z) (-.f64 t x) x)
0.0ms
t
@-inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
0.0ms
y
@inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
0.0ms
t
@inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
0.0ms
x
@-inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)

rewrite45.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
782×prod-diff_binary64
449×log-prod_binary64
341×fma-def_binary64
332×pow-prod-down_binary64
261×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify154.0ms (1.2%)

Algorithm
egg-herbie
Rules
2702×fma-neg_binary64
399×unsub-neg_binary64
316×fma-def_binary64
302×sub-neg_binary64
281×associate-+l-_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036753
1100569
2239488
3746485
41809485
53788485
64399485
74589485
84627485
94627485
104963485
115016485
125016485
137050485
147050485
157050485
Stop Event
saturated
Counts
81 → 54
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 y (-.f64 t x)) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
Outputs
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) x)
(fma.f64 -1 (*.f64 (-.f64 t x) z) x)
(-.f64 x (*.f64 (-.f64 t x) z))
(fma.f64 z (fma.f64 -1 t x) x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 y (-.f64 t x))
(*.f64 (-.f64 t x) y)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 y (-.f64 t x)) x)
(fma.f64 y (-.f64 t x) x)
(fma.f64 (-.f64 t x) y x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 (-.f64 t x) z))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(neg.f64 (*.f64 (-.f64 t x) z))
(*.f64 (-.f64 t x) (neg.f64 z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(fma.f64 -1 (*.f64 x (-.f64 y z)) x)
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(fma.f64 -1 (*.f64 x (-.f64 y z)) x)
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(fma.f64 -1 (*.f64 x (-.f64 y z)) x)
(-.f64 x (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 y (-.f64 t x) x))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(fma.f64 (-.f64 t x) (-.f64 y z) x)

eval37.0ms (0.3%)

Compiler

Compiled 2662 to 681 computations (74.4% saved)

prune44.0ms (0.3%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New16811179
Fresh000
Picked101
Done101
Total17011181
Error
0b
Counts
181 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
37.2b
(*.f64 y (-.f64 t x))
27.0b
(+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z)))
28.1b
(+.f64 x (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) (-.f64 y z)) (+.f64 t x)))
0.0b
(+.f64 x (+.f64 (*.f64 (-.f64 y z) t) (*.f64 (-.f64 y z) (neg.f64 x))))
29.9b
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
33.3b
(*.f64 t (-.f64 y z))
0.0b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
38.7b
(*.f64 z (-.f64 x t))
29.9b
(+.f64 x (*.f64 x (-.f64 z y)))
24.6b
(+.f64 (*.f64 y (-.f64 t x)) x)
26.1b
(+.f64 x (*.f64 z (-.f64 x t)))
Compiler

Compiled 300 to 184 computations (38.7% saved)

localize12.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
0.0b
(fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x)))
0.0b
(*.f64 (-.f64 y z) (neg.f64 x))
0.0b
(*.f64 (-.f64 y z) (neg.f64 x))
0.0b
(fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x)))
0.0b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
Compiler

Compiled 43 to 9 computations (79.1% saved)

series31.0ms (0.2%)

Counts
3 → 132
Calls

33 calls:

TimeVariablePointExpression
18.0ms
y
@-inf
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
1.0ms
z
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
1.0ms
y
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
1.0ms
x
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))
1.0ms
z
@inf
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 (-.f64 y z) (neg.f64 x))))

rewrite143.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
525×log-prod_binary64
426×fma-def_binary64
392×pow-prod-down_binary64
287×pow2_binary64
205×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify197.0ms (1.6%)

Algorithm
egg-herbie
Rules
2382×fma-neg_binary64
844×fma-def_binary64
542×sub-neg_binary64
526×associate-+l-_binary64
499×unsub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0691918
12071603
25241241
314641169
437421169
545771169
648101169
748221169
848221169
954571169
1058401169
1158401169
1279601169
1379601169
1479601169
Stop Event
saturated
Counts
274 → 183
Calls
Call 1
Inputs
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
Outputs
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x)
(-.f64 x (*.f64 (-.f64 y z) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x))
(*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x)
(-.f64 x (*.f64 (-.f64 y z) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y (+.f64 1 z)) x)) (*.f64 t (-.f64 y z)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(+.f64 x (*.f64 z (-.f64 x t)))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (+.f64 (*.f64 z x) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 y t (fma.f64 -1 (*.f64 y x) x))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x)
(*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x)
(-.f64 x (*.f64 (-.f64 y z) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (+.f64 (*.f64 t (-.f64 y z)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 (-.f64 y z))) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 (-.f64 y z) x))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) (*.f64 z x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 (+.f64 t (*.f64 -1 x)) y)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 y z) x)) (*.f64 t (-.f64 y z)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y z) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x (*.f64 y (+.f64 t (neg.f64 x)))))
(fma.f64 z (-.f64 x t) (*.f64 y (-.f64 t x)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 (-.f64 y z) x))
(*.f64 (neg.f64 (-.f64 y z)) x)
(*.f64 (-.f64 y z) (neg.f64 x))
(*.f64 (-.f64 z y) x)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (-.f64 x t))
0.0b
(*.f64 z (-.f64 x t))
Compiler

Compiled 15 to 6 computations (60% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
z
@0
(*.f64 z (-.f64 x t))
0.0ms
x
@-inf
(*.f64 z (-.f64 x t))
0.0ms
z
@inf
(*.f64 z (-.f64 x t))
0.0ms
x
@inf
(*.f64 z (-.f64 x t))
0.0ms
x
@0
(*.f64 z (-.f64 x t))

rewrite42.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
725×pow1_binary64
672×add-log-exp_binary64
672×log1p-expm1-u_binary64
672×expm1-log1p-u_binary64
657×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify22.0ms (0.2%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
132×fma-neg_binary64
43×cancel-sign-sub-inv_binary64
26×sub-neg_binary64
25×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
09228
117192
239156
357156
481156
5133156
6249156
7406156
8574156
9728156
10742156
Stop Event
saturated
Counts
43 → 24
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
Outputs
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (+.f64 (neg.f64 t) x))
(*.f64 z (-.f64 x t))

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 t x))
0.0b
(*.f64 y (-.f64 t x))
Compiler

Compiled 15 to 6 computations (60% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@0
(*.f64 y (-.f64 t x))
0.0ms
y
@inf
(*.f64 y (-.f64 t x))
0.0ms
t
@-inf
(*.f64 y (-.f64 t x))
0.0ms
t
@inf
(*.f64 y (-.f64 t x))
0.0ms
y
@-inf
(*.f64 y (-.f64 t x))

rewrite41.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
725×pow1_binary64
672×add-log-exp_binary64
672×log1p-expm1-u_binary64
672×expm1-log1p-u_binary64
657×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify21.0ms (0.2%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
132×fma-neg_binary64
41×cancel-sign-sub-inv_binary64
25×distribute-rgt-in_binary64
25×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
09210
117210
235156
358156
486156
5138156
6254156
7410156
8576156
9730156
10744156
Stop Event
saturated
Counts
43 → 24
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 y t) (*.f64 y x))
(*.f64 y (-.f64 t x))

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 t x))
0.0b
(+.f64 (*.f64 y (-.f64 t x)) x)
0.0b
(+.f64 (*.f64 y (-.f64 t x)) x)
0.0b
(*.f64 y (-.f64 t x))
Compiler

Compiled 22 to 7 computations (68.2% saved)

series5.0ms (0%)

Counts
1 → 33
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@-inf
(+.f64 (*.f64 y (-.f64 t x)) x)
1.0ms
y
@inf
(+.f64 (*.f64 y (-.f64 t x)) x)
0.0ms
y
@0
(+.f64 (*.f64 y (-.f64 t x)) x)
0.0ms
x
@0
(+.f64 (*.f64 y (-.f64 t x)) x)
0.0ms
t
@0
(+.f64 (*.f64 y (-.f64 t x)) x)

rewrite52.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
951×pow1_binary64
883×add-log-exp_binary64
883×log1p-expm1-u_binary64
883×expm1-log1p-u_binary64
864×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify33.0ms (0.3%)

Algorithm
egg-herbie
Rules
401×fma-def_binary64
296×fma-neg_binary64
64×cancel-sign-sub-inv_binary64
60×distribute-rgt-in_binary64
42×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
024291
158240
2114240
3212240
4372240
5672240
61041240
71280240
81399240
91401240
Stop Event
saturated
Counts
68 → 47
Calls
Call 1
Inputs
x
(*.f64 y (-.f64 t x))
(+.f64 x (*.f64 y (-.f64 t x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(*.f64 y (-.f64 t x))
(+.f64 x (*.f64 y (-.f64 t x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 y t)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 y t)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
Outputs
x
(*.f64 y (-.f64 t x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 y (-.f64 t x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 y t)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 y t)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(fma.f64 -1 (*.f64 x y) x)
(-.f64 x (*.f64 x y))
(fma.f64 y (neg.f64 x) x)
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 x (*.f64 y (-.f64 t x)))
(fma.f64 y (-.f64 t x) x)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
0.0b
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
Compiler

Compiled 33 to 18 computations (45.5% saved)

series5.0ms (0%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
1.0ms
y
@0
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
1.0ms
x
@-inf
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
1.0ms
y
@inf
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
0.0ms
z
@inf
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)

rewrite55.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
996×pow1_binary64
923×add-log-exp_binary64
922×log1p-expm1-u_binary64
922×expm1-log1p-u_binary64
106×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01012
120710
2281710
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (-.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 y z) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 x (*.f64 (-.f64 y z) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (-.f64 y z) 3)) x) (+.f64 1 (+.f64 (pow.f64 (-.f64 y z) 2) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (-.f64 y z) 2)) x) (+.f64 1 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 (-.f64 y z) 3))) (+.f64 1 (+.f64 (pow.f64 (-.f64 y z) 2) (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 (-.f64 y z) 2))) (+.f64 1 (-.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 (-.f64 y z) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (*.f64 (-.f64 y z) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (*.f64 (-.f64 y z) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (*.f64 (-.f64 y z) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (*.f64 (-.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (+.f64 1 (-.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 x (*.f64 (-.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (*.f64 (-.f64 y z) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 1 (-.f64 y z)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (+.f64 1 (-.f64 y z)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (*.f64 (-.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 (-.f64 y z)) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (*.f64 (-.f64 y z) x))))))))

simplify31.0ms (0.2%)

Algorithm
egg-herbie
Rules
512×fma-def_binary64
340×fma-neg_binary64
72×cancel-sign-sub-inv_binary64
59×associate--r+_binary64
59×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
016270
135214
276212
3167176
4304176
5609176
61201176
71577176
81712176
91730176
Stop Event
saturated
Counts
46 → 32
Calls
Call 1
Inputs
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
Outputs
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (+.f64 1 (neg.f64 y)))
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 x y))
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 y) x))
(*.f64 x (+.f64 z (-.f64 1 y)))
(+.f64 (*.f64 (-.f64 z y) x) x)
(fma.f64 x (-.f64 z y) x)

eval72.0ms (0.6%)

Compiler

Compiled 4397 to 1333 computations (69.7% saved)

prune73.0ms (0.6%)

Pruning

21 alts after pruning (18 fresh and 3 done)

PrunedKeptTotal
New32014334
Fresh246
Picked101
Done134
Total32421345
Error
0b
Counts
345 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
29.9b
(+.f64 x (*.f64 x (-.f64 z y)))
48.8b
(*.f64 t (neg.f64 z))
37.2b
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
10.9b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
24.6b
(+.f64 (*.f64 y (-.f64 t x)) x)
34.9b
(+.f64 (*.f64 y t) x)
47.1b
(*.f64 y t)
50.2b
x
37.2b
(*.f64 y (-.f64 t x))
27.0b
(+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z)))
38.7b
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
40.0b
(*.f64 (+.f64 1 z) x)
26.1b
(+.f64 x (*.f64 z (-.f64 x t)))
26.1b
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
52.6b
(*.f64 z x)
40.3b
(*.f64 x (-.f64 1 y))
28.1b
(+.f64 x (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) (-.f64 y z)) (+.f64 t x)))
38.7b
(*.f64 z (-.f64 x t))
33.3b
(*.f64 t (-.f64 y z))
52.6b
(*.f64 x (neg.f64 y))
43.2b
(+.f64 (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) y) (+.f64 t x)) x)
Compiler

Compiled 440 to 287 computations (34.8% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
0.0b
(fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))
0.0b
(fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))
0.0b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
Compiler

Compiled 37 to 9 computations (75.7% saved)

series9.0ms (0.1%)

Counts
2 → 96
Calls

24 calls:

TimeVariablePointExpression
1.0ms
z
@-inf
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
1.0ms
x
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
1.0ms
x
@inf
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
1.0ms
y
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
0.0ms
z
@0
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))

rewrite64.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
524×log-prod_binary64
414×fma-def_binary64
378×pow-prod-down_binary64
287×pow2_binary64
206×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify91.0ms (0.7%)

Algorithm
egg-herbie
Rules
1076×fma-neg_binary64
658×fma-def_binary64
212×cancel-sign-sub-inv_binary64
162×sub-neg_binary64
127×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0451334
11291133
22871133
36581133
414391133
527731133
634021133
735251133
835581133
935581133
Stop Event
saturated
Counts
192 → 125
Calls
Call 1
Inputs
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(-.f64 x (*.f64 y x))
(fma.f64 (neg.f64 y) x x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 -1 (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 1 (neg.f64 y)) x)
(-.f64 x (*.f64 y x))
(fma.f64 (neg.f64 y) x x)
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 (-.f64 y 1) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 t (*.f64 -1 x)) y) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)) x))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 y t) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 y t (fma.f64 -1 (*.f64 y x) x))
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 (+.f64 1 (neg.f64 y)) x)
(-.f64 x (*.f64 y x))
(fma.f64 (neg.f64 y) x x)
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(+.f64 (*.f64 t (-.f64 y z)) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 t (-.f64 y z) (*.f64 (+.f64 1 (neg.f64 y)) x))
(-.f64 (fma.f64 t (-.f64 y z) x) (*.f64 y x))
(-.f64 x (fma.f64 y (-.f64 x t) (*.f64 t z)))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 t (*.f64 -1 x)) y))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (+.f64 t (neg.f64 x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x))))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 -1 (*.f64 y x)))
(fma.f64 -1 (*.f64 t z) (*.f64 y (+.f64 t (neg.f64 x))))
(-.f64 (*.f64 t (-.f64 y z)) (*.f64 y x))

localize6.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
t
@0
(*.f64 t (-.f64 y z))
0.0ms
y
@-inf
(*.f64 t (-.f64 y z))
0.0ms
t
@inf
(*.f64 t (-.f64 y z))
0.0ms
t
@-inf
(*.f64 t (-.f64 y z))
0.0ms
y
@0
(*.f64 t (-.f64 y z))

rewrite93.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
725×pow1_binary64
672×add-log-exp_binary64
672×log1p-expm1-u_binary64
672×expm1-log1p-u_binary64
657×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify26.0ms (0.2%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
132×fma-neg_binary64
41×cancel-sign-sub-inv_binary64
25×distribute-rgt-in_binary64
25×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
09228
117210
235156
358156
486156
5138156
6254156
7410156
8576156
9730156
10744156
Stop Event
saturated
Counts
43 → 25
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 y t)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 y t)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 y t)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
Outputs
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(fma.f64 -1 (*.f64 t z) (*.f64 t y))
(-.f64 (*.f64 t y) (*.f64 t z))
(*.f64 t (-.f64 y z))

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 z (-.f64 x t))
0.0b
(+.f64 x (*.f64 z (-.f64 x t)))
0.0b
(+.f64 x (*.f64 z (-.f64 x t)))
0.0b
(*.f64 z (-.f64 x t))
Compiler

Compiled 22 to 7 computations (68.2% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
z
@inf
(+.f64 x (*.f64 z (-.f64 x t)))
0.0ms
x
@0
(+.f64 x (*.f64 z (-.f64 x t)))
0.0ms
x
@-inf
(+.f64 x (*.f64 z (-.f64 x t)))
0.0ms
x
@inf
(+.f64 x (*.f64 z (-.f64 x t)))
0.0ms
t
@0
(+.f64 x (*.f64 z (-.f64 x t)))

rewrite66.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
968×pow1_binary64
900×add-log-exp_binary64
900×log1p-expm1-u_binary64
900×expm1-log1p-u_binary64
87×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify61.0ms (0.5%)

Algorithm
egg-herbie
Rules
351×fma-def_binary64
262×fma-neg_binary64
58×cancel-sign-sub-inv_binary64
52×distribute-rgt-in_binary64
51×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022372
160264
2130264
3276264
4542264
51002264
61310264
71365264
81366264
Stop Event
saturated
Counts
72 → 48
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
x
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
Outputs
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
x
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z (-.f64 x t)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)

localize109.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
0.0b
(+.f64 (*.f64 z x) x)
0.0b
(+.f64 (*.f64 z x) x)
0.0b
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
Compiler

Compiled 35 to 13 computations (62.9% saved)

series7.0ms (0.1%)

Counts
2 → 42
Calls

15 calls:

TimeVariablePointExpression
1.0ms
t
@0
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
1.0ms
t
@inf
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
1.0ms
x
@0
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
1.0ms
z
@0
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
0.0ms
z
@inf
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))

rewrite115.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
763×fma-def_binary64
550×log-prod_binary64
416×pow-prod-down_binary64
406×fma-neg_binary64
277×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify45.0ms (0.4%)

Algorithm
egg-herbie
Rules
340×fma-def_binary64
254×fma-neg_binary64
57×cancel-sign-sub-inv_binary64
54×unsub-neg_binary64
47×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027281
172261
2158261
3337261
4684261
51090261
61255261
71280261
81281261
Stop Event
saturated
Counts
226 → 199
Calls
Call 1
Inputs
(+.f64 (*.f64 z x) x)
(*.f64 -1 (*.f64 t z))
(*.f64 -1 (*.f64 t z))
x
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
x
(*.f64 z x)
(*.f64 z x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
Outputs
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 t (neg.f64 z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 t (neg.f64 z))
x
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 z (fma.f64 -1 t x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 (fma.f64 -1 t x) z x)
(fma.f64 z (-.f64 x t) x)
x
(*.f64 z x)
(*.f64 z x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)

eval148.0ms (1.2%)

Compiler

Compiled 5875 to 1895 computations (67.7% saved)

prune82.0ms (0.6%)

Pruning

22 alts after pruning (15 fresh and 7 done)

PrunedKeptTotal
New4165421
Fresh31013
Picked101
Done077
Total42022442
Error
0b
Counts
442 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
37.2b
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
29.9b
(+.f64 x (*.f64 x (-.f64 z y)))
10.9b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
50.2b
x
24.6b
(+.f64 (*.f64 y (-.f64 t x)) x)
34.9b
(+.f64 (*.f64 y t) x)
48.8b
(*.f64 t (neg.f64 z))
47.1b
(*.f64 y t)
37.2b
(*.f64 y (-.f64 t x))
27.0b
(+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z)))
38.7b
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
40.0b
(*.f64 (+.f64 1 z) x)
26.1b
(+.f64 x (*.f64 z (-.f64 x t)))
40.3b
(*.f64 x (-.f64 1 y))
28.1b
(+.f64 x (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) (-.f64 y z)) (+.f64 t x)))
26.1b
(+.f64 x (+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z)))
52.6b
(*.f64 x (neg.f64 y))
38.7b
(*.f64 z (-.f64 x t))
36.9b
(-.f64 x (*.f64 t z))
33.3b
(*.f64 t (-.f64 y z))
52.6b
(*.f64 z x)
43.2b
(+.f64 (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) y) (+.f64 t x)) x)
Compiler

Compiled 414 to 270 computations (34.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
0.0b
(+.f64 x (+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z)))
0.0b
(+.f64 x (+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z)))
0.0b
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
Compiler

Compiled 34 to 9 computations (73.5% saved)

series6.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
t
@-inf
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
1.0ms
z
@inf
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
1.0ms
z
@0
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
0.0ms
x
@0
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
0.0ms
z
@-inf
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))

rewrite86.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
571×fma-def_binary64
506×log-prod_binary64
403×pow-prod-down_binary64
309×fma-neg_binary64
254×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0921
120815
2325015
Stop Event
node limit
Counts
2 → 279
Calls
Call 1
Inputs
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 z (+.f64 x t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x z) 2) (*.f64 z (+.f64 x t))) (/.f64 (pow.f64 (*.f64 z t) 2) (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 x t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x t) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t)))) (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (+.f64 (pow.f64 (*.f64 z t) 2) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 z (*.f64 x (*.f64 z t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2)) (neg.f64 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3))) (neg.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z t) 2) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 z t) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (+.f64 x t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t)))) (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 z (+.f64 x t))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x z))) (pow.f64 (exp.f64 t) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x) z) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x z))) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x z))) (pow.f64 (exp.f64 t) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) z) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x z))) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z t))) (pow.f64 (exp.f64 x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) z) (+.f64 1 (expm1.f64 (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z t))) (+.f64 1 (expm1.f64 (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (+.f64 x t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (*.f64 x z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x z (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x z (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x z (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x z (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x t) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x t) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x t) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x t) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x z) 1 (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x z) 1 (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x z) 1 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x z) 1 (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t (neg.f64 z) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z t) 1 (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x t)) 1 (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x t)) 1 (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x t)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x t)) 1 (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x z) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x z) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x z) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x t)) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x t)) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x t)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x t)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) z) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) z) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) z) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) z) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) x) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) x) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (cbrt.f64 (*.f64 x z)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (cbrt.f64 (*.f64 x z)) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (cbrt.f64 (*.f64 x z)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (cbrt.f64 (*.f64 x z)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) z) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) z) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) z) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) z) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) x) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) x) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z t)) (sqrt.f64 (*.f64 z t)) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 z t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x t) z (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x t) z (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x t) z (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x t) z (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))) (fma.f64 t z (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))) (fma.f64 (neg.f64 z) t (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 z t))) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t)) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 z)) (sqrt.f64 z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 x)) (sqrt.f64 x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2))) (cbrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 z t))) (sqrt.f64 (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 t)) (sqrt.f64 t) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z -1) t (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 z)) (sqrt.f64 z) (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 z (+.f64 x t))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (+.f64 x t))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 x z x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 z (+.f64 x t) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 z (+.f64 x t)))) (/.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (-.f64 x (*.f64 z (+.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 z (+.f64 x t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 z (+.f64 x t) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 z (+.f64 x t) x)) (pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x t) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x t) x)) 2) (cbrt.f64 (fma.f64 z (+.f64 x t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 z (+.f64 x t) x)) (sqrt.f64 (fma.f64 z (+.f64 x t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3)) (/.f64 1 (fma.f64 (*.f64 z (+.f64 x t)) (-.f64 (*.f64 z (+.f64 x t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (+.f64 x t)) 2)) (/.f64 1 (-.f64 x (*.f64 z (+.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 z (+.f64 x t)) (-.f64 (*.f64 z (+.f64 x t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 z (+.f64 x t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (+.f64 x t)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3)) (fma.f64 (*.f64 z (+.f64 x t)) (-.f64 (*.f64 z (+.f64 x t)) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3)) (+.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (-.f64 (*.f64 x x) (*.f64 x (*.f64 z (+.f64 x t))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (+.f64 x t)) 2)) (-.f64 x (*.f64 z (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3))) (neg.f64 (fma.f64 (*.f64 z (+.f64 x t)) (-.f64 (*.f64 z (+.f64 x t)) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (+.f64 x t)) 2))) (neg.f64 (-.f64 x (*.f64 z (+.f64 x t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 x z x) 3) (pow.f64 (*.f64 z t) 3)) (+.f64 (pow.f64 (fma.f64 x z x) 2) (-.f64 (pow.f64 (*.f64 z t) 2) (*.f64 (fma.f64 x z x) (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 x x)) (-.f64 (*.f64 z (+.f64 x t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 x z x) 2) (pow.f64 (*.f64 z t) 2)) (fma.f64 z (+.f64 x t) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 z (+.f64 x t) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (+.f64 x t) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 z (+.f64 x t) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 z (+.f64 x t) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 z (+.f64 x t) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 z (+.f64 x t)) (-.f64 (*.f64 z (+.f64 x t)) x) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 z (+.f64 x t)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (*.f64 z (+.f64 x t))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 z (+.f64 x t)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 z (+.f64 x t) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 z (+.f64 x t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 z (+.f64 x t) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 x z x)) (pow.f64 (exp.f64 t) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 x z x)) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x) (+.f64 1 z)) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 z) (+.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x t))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 t) z) (exp.f64 (fma.f64 x z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z t))) (exp.f64 (fma.f64 x z x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z t))) (pow.f64 (exp.f64 x) (+.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x t)))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (+.f64 x t)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z (+.f64 x t)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x z x)) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) (+.f64 1 z)) (+.f64 1 (expm1.f64 (*.f64 z t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 z (+.f64 x t) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x z (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 1 z) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (+.f64 x t) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x z) 1 (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t (neg.f64 z) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z t) 1 (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (+.f64 x t)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x z) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z (+.f64 x t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x z x) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (/.f64 1 (*.f64 z (+.f64 x t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z (+.f64 x t))) 2) (cbrt.f64 (*.f64 z (+.f64 x t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 t) 2) (*.f64 (cbrt.f64 t) z) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) z) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) x) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (+.f64 x t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 z t)) (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 z t) 2)) (cbrt.f64 (*.f64 z t)) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x z) 2)) (cbrt.f64 (*.f64 x z)) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z (+.f64 x t))) (sqrt.f64 (*.f64 z (+.f64 x t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 t) (*.f64 (sqrt.f64 t) z) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 z (+.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) z) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) x) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (+.f64 x t)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z t)) (sqrt.f64 (*.f64 z t)) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 x z)) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x z) 3) (pow.f64 (*.f64 z t) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 z (+.f64 x t)) 2) (*.f64 z (*.f64 x (*.f64 z t))))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 z t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x t) z x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x z x) 1 (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x z x)) 2) (cbrt.f64 (fma.f64 x z x)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x z x)) (sqrt.f64 (fma.f64 x z x)) (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 x) (sqrt.f64 z) (sqrt.f64 (*.f64 z t))) (-.f64 (sqrt.f64 (*.f64 x z)) (sqrt.f64 (*.f64 z t))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 z 1) x (*.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 z t x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 t)) (sqrt.f64 t) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z -1) t (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 t (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 x z x))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 z (+.f64 x t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 z (+.f64 x t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 z (+.f64 x t) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z (+.f64 x t) x)))))))

simplify56.0ms (0.4%)

Algorithm
egg-herbie
Rules
343×fma-def_binary64
256×fma-neg_binary64
57×cancel-sign-sub-inv_binary64
54×unsub-neg_binary64
45×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
029740
179504
2169504
3351504
4697504
51101504
61266504
71291504
81292504
Stop Event
saturated
Counts
351 → 297
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
x
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
Outputs
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 (+.f64 1 z) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x)))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
x
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 (+.f64 (*.f64 -1 t) x) z)
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 (+.f64 (*.f64 -1 t) x) z) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z))
(fma.f64 -1 (*.f64 t z) (*.f64 z x))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 t (*.f64 -1 x)) z)) x)
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(*.f64 -1 (*.f64 t z))
(*.f64 (neg.f64 t) z)
(*.f64 t (neg.f64 z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 z x) x))
(fma.f64 -1 (*.f64 t z) (fma.f64 z x x))
(fma.f64 z (-.f64 x t) x)

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (*.f64 t z))
0.0b
(-.f64 x (*.f64 t z))
Compiler

Compiled 15 to 6 computations (60% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 x (*.f64 t z))
0.0ms
t
@-inf
(-.f64 x (*.f64 t z))
0.0ms
x
@inf
(-.f64 x (*.f64 t z))
0.0ms
z
@-inf
(-.f64 x (*.f64 t z))
0.0ms
z
@inf
(-.f64 x (*.f64 t z))

rewrite87.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
738×pow1_binary64
684×add-log-exp_binary64
684×log1p-expm1-u_binary64
684×expm1-log1p-u_binary64
669×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify40.0ms (0.3%)

Algorithm
egg-herbie
Rules
101×fma-def_binary64
56×fma-neg_binary64
27×cancel-sign-sub-inv_binary64
17×sub-neg_binary64
13×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
08250
115223
231223
344223
456223
587223
6147223
7195223
8252223
9339223
10389223
11395223
Stop Event
saturated
Counts
73 → 42
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) x)
Outputs
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
x
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 t z))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) x)
(fma.f64 -1 (*.f64 t z) x)
(fma.f64 (neg.f64 t) z x)
(fma.f64 z (neg.f64 t) x)
(-.f64 x (*.f64 t z))

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y t) x)
0.0b
(+.f64 (*.f64 y t) x)
Compiler

Compiled 15 to 6 computations (60% saved)

series3.0ms (0%)

Counts
1 → 9
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 (*.f64 y t) x)
0.0ms
t
@inf
(+.f64 (*.f64 y t) x)
0.0ms
t
@-inf
(+.f64 (*.f64 y t) x)
0.0ms
y
@-inf
(+.f64 (*.f64 y t) x)
0.0ms
t
@0
(+.f64 (*.f64 y t) x)

rewrite65.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
707×pow1_binary64
655×add-log-exp_binary64
655×log1p-expm1-u_binary64
655×expm1-log1p-u_binary64
640×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0524
1624
Stop Event
saturated
Counts
44 → 37
Calls
Call 1
Inputs
x
(*.f64 y t)
(*.f64 y t)
x
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
x
x
Outputs
x
(*.f64 y t)
(*.f64 y t)
x
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
x
x

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
0.0b
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
Compiler

Compiled 24 to 8 computations (66.7% saved)

series22.0ms (0.2%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
19.0ms
x
@inf
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
1.0ms
y
@0
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
0.0ms
y
@inf
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
0.0ms
y
@-inf
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))
0.0ms
t
@0
(+.f64 (*.f64 t y) (*.f64 (neg.f64 x) y))

rewrite47.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
835×pow1_binary64
773×add-log-exp_binary64
772×log1p-expm1-u_binary64
772×expm1-log1p-u_binary64
756×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify57.0ms (0.5%)

Algorithm
egg-herbie
Rules
165×fma-def_binary64
110×fma-neg_binary64
38×unsub-neg_binary64
34×cancel-sign-sub-inv_binary64
30×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
016330
137240
277240
3151240
4308240
5469240
6636240
7709240
8711240
Stop Event
saturated
Counts
80 → 51
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 x (neg.f64 y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (neg.f64 (*.f64 y x)))
(*.f64 y (-.f64 t x))

eval164.0ms (1.3%)

Compiler

Compiled 6196 to 1775 computations (71.4% saved)

prune123.0ms (1%)

Pruning

22 alts after pruning (12 fresh and 10 done)

PrunedKeptTotal
New4234427
Fresh2810
Picked101
Done11011
Total42722449
Error
0b
Counts
449 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
29.9b
(+.f64 x (*.f64 x (-.f64 z y)))
10.9b
(+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y))))
24.6b
(+.f64 (*.f64 y (-.f64 t x)) x)
34.9b
(+.f64 (*.f64 y t) x)
47.1b
(*.f64 y t)
48.8b
(*.f64 z (neg.f64 t))
37.2b
(*.f64 y (-.f64 t x))
27.0b
(+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z)))
38.7b
(+.f64 (*.f64 x z) (*.f64 (neg.f64 t) z))
40.0b
(*.f64 (+.f64 1 z) x)
26.1b
(+.f64 x (*.f64 z (-.f64 x t)))
52.6b
(*.f64 z x)
26.1b
(+.f64 x (-.f64 (*.f64 x z) (*.f64 z t)))
28.1b
(+.f64 x (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) (-.f64 y z)) (+.f64 t x)))
50.2b
x
40.3b
(*.f64 x (-.f64 1 y))
37.2b
(-.f64 (*.f64 t y) (*.f64 y x))
52.6b
(*.f64 x (neg.f64 y))
38.7b
(*.f64 z (-.f64 x t))
36.9b
(-.f64 x (*.f64 t z))
33.3b
(*.f64 t (-.f64 y z))
43.2b
(+.f64 (/.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) y) (+.f64 t x)) x)
Compiler

Compiled 243 to 158 computations (35% saved)

regimes642.0ms (5.1%)

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

6 calls:

188.0ms
z
168.0ms
x
102.0ms
t
78.0ms
y
54.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
8.0b3x
4.5b5y
4.0b5z
4.5b6t
8.9b3(-.f64 y z)
8.9b3(-.f64 y z)
Compiler

Compiled 193 to 84 computations (56.5% saved)

bsearch522.0ms (4.1%)

Algorithm
binary-search
Steps
TimeLeftRight
151.0ms
8.065992027628968e+104
3.6350737258258235e+105
313.0ms
4.738274373191941e+37
2.1892532231885353e+47
21.0ms
6.629604111975669e-9
0.0808062190972398
37.0ms
-3.3582207765333096e+188
-2.4151790407590068e+179
Compiler

Compiled 790 to 499 computations (36.8% saved)

regimes583.0ms (4.6%)

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

6 calls:

132.0ms
(-.f64 y z)
105.0ms
y
95.0ms
(-.f64 y z)
83.0ms
z
81.0ms
t
Results
ErrorSegmentsBranch
10.9b5x
8.5b5y
9.6b5z
10.8b5t
10.6b8(-.f64 y z)
10.6b8(-.f64 y z)
Compiler

Compiled 182 to 82 computations (54.9% saved)

bsearch122.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
3.666678629518092e-5
69525.49518984568
21.0ms
-3.038648527284341e-53
-7.155879189630263e-55
40.0ms
-2.1901394609802764e+125
-1.8814976690846e+124
40.0ms
-5.556656650037756e+156
-1.2283570210954563e+156
Compiler

Compiled 356 to 230 computations (35.4% saved)

regimes496.0ms (3.9%)

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

6 calls:

137.0ms
(-.f64 y z)
99.0ms
y
78.0ms
x
65.0ms
(-.f64 y z)
55.0ms
z
Results
ErrorSegmentsBranch
10.9b5x
8.9b5y
9.7b5z
10.8b5t
15.8b7(-.f64 y z)
15.8b7(-.f64 y z)
Compiler

Compiled 165 to 75 computations (54.5% saved)

bsearch151.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.666678629518092e-5
69525.49518984568
24.0ms
-0.0004815489743713445
-0.00023991022561431705
70.0ms
-4.461253462300334e+141
-9.350430115185003e+132
36.0ms
-5.556656650037756e+156
-1.2283570210954563e+156
Compiler

Compiled 338 to 233 computations (31.1% saved)

regimes329.0ms (2.6%)

Counts
14 → 5
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
(*.f64 (+.f64 1 z) x)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) x)
(-.f64 (*.f64 t y) (*.f64 y x))
(+.f64 x (*.f64 z (-.f64 x t)))
Outputs
(*.f64 y (-.f64 t x))
(*.f64 z (-.f64 x t))
(*.f64 y (-.f64 t x))
(+.f64 x (*.f64 z (-.f64 x t)))
(*.f64 y (-.f64 t x))
Calls

6 calls:

76.0ms
(-.f64 y z)
74.0ms
(-.f64 y z)
60.0ms
t
47.0ms
y
40.0ms
x
Results
ErrorSegmentsBranch
15.5b5x
9.2b5y
18.0b3z
18.2b7t
17.2b9(-.f64 y z)
17.2b9(-.f64 y z)
Compiler

Compiled 102 to 55 computations (46.1% saved)

bsearch138.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
3.666678629518092e-5
69525.49518984568
23.0ms
-173.48997110354924
-0.39580052495389456
60.0ms
-4.461253462300334e+141
-9.350430115185003e+132
35.0ms
-5.556656650037756e+156
-1.2283570210954563e+156
Compiler

Compiled 320 to 224 computations (30% saved)

regimes470.0ms (3.7%)

Counts
13 → 6
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
(*.f64 (+.f64 1 z) x)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) x)
(-.f64 (*.f64 t y) (*.f64 y x))
Outputs
(*.f64 y (-.f64 t x))
(*.f64 z (-.f64 x t))
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 1 z) x)
(-.f64 x (*.f64 t z))
(*.f64 y (-.f64 t x))
Calls

6 calls:

169.0ms
x
73.0ms
t
71.0ms
(-.f64 y z)
70.0ms
(-.f64 y z)
62.0ms
y
Results
ErrorSegmentsBranch
18.1b6x
16.0b6y
18.9b3z
20.6b8t
20.0b7(-.f64 y z)
20.0b7(-.f64 y z)
Compiler

Compiled 95 to 54 computations (43.2% saved)

bsearch166.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.5004198948724825e-8
3.666678629518092e-5
20.0ms
-3.036380228087371e-208
-5.546681153492846e-209
19.0ms
-173.48997110354924
-0.39580052495389456
75.0ms
-4.461253462300334e+141
-9.350430115185003e+132
32.0ms
-5.556656650037756e+156
-1.2283570210954563e+156
Compiler

Compiled 320 to 224 computations (30% saved)

regimes226.0ms (1.8%)

Counts
10 → 6
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
(*.f64 (+.f64 1 z) x)
Outputs
(*.f64 x (-.f64 1 y))
(*.f64 (+.f64 1 z) x)
(*.f64 t (-.f64 y z))
(*.f64 x (-.f64 1 y))
(*.f64 t (-.f64 y z))
(*.f64 (+.f64 1 z) x)
Calls

6 calls:

54.0ms
z
42.0ms
x
39.0ms
(-.f64 y z)
35.0ms
y
34.0ms
t
Results
ErrorSegmentsBranch
18.1b6x
21.6b6y
22.1b5z
22.0b5t
24.2b3(-.f64 y z)
24.2b3(-.f64 y z)
Compiler

Compiled 78 to 48 computations (38.5% saved)

bsearch264.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
171.0ms
5.079838694140834e+46
2.2309044850457124e+56
20.0ms
6.622073420575327e-34
9.065958505510227e-33
31.0ms
3.259495245347178e-78
9.101324031839076e-77
19.0ms
-1.9917849620909268e-104
-1.6375484992219473e-104
23.0ms
-1.876670178345975e+23
-8.92783658039703e+18
Compiler

Compiled 220 to 164 computations (25.5% saved)

regimes161.0ms (1.3%)

Counts
9 → 8
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
Outputs
(*.f64 x (-.f64 1 y))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
(*.f64 t (-.f64 y z))
(*.f64 x (-.f64 1 y))
(*.f64 t (-.f64 y z))
(*.f64 z (-.f64 x t))
(*.f64 x (-.f64 1 y))
Calls

6 calls:

43.0ms
x
28.0ms
y
27.0ms
z
24.0ms
(-.f64 y z)
18.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
18.0b8x
23.1b5y
22.1b5z
23.3b3t
24.2b3(-.f64 y z)
24.2b3(-.f64 y z)
Compiler

Compiled 73 to 45 computations (38.4% saved)

bsearch209.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
89.0ms
5.2382330630155997e+73
4.138229270638968e+77
21.0ms
1.421584441816944e-7
0.1582179505199199
20.0ms
6.622073420575327e-34
9.065958505510227e-33
19.0ms
3.259495245347178e-78
9.101324031839076e-77
20.0ms
-3.661930464314392e-74
-5.682577136430181e-81
20.0ms
-3.622213887504777e-48
-2.4223814186662546e-56
19.0ms
-520106054622.14984
-33817425311.84313
Compiler

Compiled 180 to 134 computations (25.6% saved)

regimes164.0ms (1.3%)

Counts
8 → 6
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 z (-.f64 x t))
Outputs
(-.f64 x (*.f64 t z))
(*.f64 x (neg.f64 y))
(*.f64 z (-.f64 x t))
(*.f64 t (-.f64 y z))
(*.f64 z (-.f64 x t))
x
Calls

6 calls:

35.0ms
t
34.0ms
z
30.0ms
x
26.0ms
y
20.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
21.8b6x
23.1b5y
24.5b6z
26.0b6t
24.2b3(-.f64 y z)
24.2b3(-.f64 y z)
Compiler

Compiled 68 to 42 computations (38.2% saved)

bsearch212.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
34.0ms
2.2599823642871702e+173
5.984193731456341e+190
20.0ms
5.1581462240120724e-70
1.1311999472732073e-67
20.0ms
-6.770067375872919e-108
-1.2403543992643915e-108
20.0ms
-4.810786831234145e+33
-1.350487336996887e+27
118.0ms
-3.776184418854998e+70
-5.067971325369179e+65
Compiler

Compiled 351 to 260 computations (25.9% saved)

regimes137.0ms (1.1%)

Counts
7 → 5
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
Outputs
(*.f64 t (-.f64 y z))
(*.f64 z x)
(*.f64 t (-.f64 y z))
(-.f64 x (*.f64 t z))
(*.f64 t (-.f64 y z))
Calls

6 calls:

32.0ms
z
28.0ms
x
24.0ms
y
20.0ms
t
15.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
23.3b6x
23.1b5y
28.1b6z
28.2b4t
24.4b3(-.f64 y z)
24.4b3(-.f64 y z)
Compiler

Compiled 63 to 40 computations (36.5% saved)

bsearch127.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.5004198948724825e-8
3.666678629518092e-5
20.0ms
-173.48997110354924
-0.39580052495389456
53.0ms
-8.627600548604757e+146
-4.461253462300334e+141
34.0ms
-5.556656650037756e+156
-1.2283570210954563e+156
Compiler

Compiled 290 to 209 computations (27.9% saved)

regimes162.0ms (1.3%)

Counts
6 → 6
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
(*.f64 t (-.f64 y z))
Outputs
x
(*.f64 x (neg.f64 y))
(*.f64 z x)
(*.f64 t (-.f64 y z))
(*.f64 z x)
x
Calls

5 calls:

48.0ms
t
30.0ms
z
30.0ms
y
27.0ms
x
23.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
23.6b6x
27.8b7y
28.7b6z
25.7b10t
26.8b5(-.f64 y z)
Compiler

Compiled 51 to 33 computations (35.3% saved)

bsearch302.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
61.0ms
2.2599823642871702e+173
5.984193731456341e+190
167.0ms
5.079838694140834e+46
2.2309044850457124e+56
20.0ms
-3.661930464314392e-74
-5.682577136430181e-81
19.0ms
-1.876670178345975e+23
-8.92783658039703e+18
35.0ms
-8.210385602607272e+148
-1.8219421569147015e+133
Compiler

Compiled 490 to 374 computations (23.7% saved)

regimes241.0ms (1.9%)

Counts
5 → 7
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
(*.f64 z (neg.f64 t))
Outputs
x
(*.f64 x (neg.f64 y))
(*.f64 z x)
(*.f64 z (neg.f64 t))
(*.f64 y t)
(*.f64 z x)
x
Calls

4 calls:

94.0ms
z
52.0ms
t
52.0ms
x
40.0ms
y
Results
ErrorSegmentsBranch
32.8b7x
33.8b8y
34.3b11z
38.5b6t
Compiler

Compiled 39 to 26 computations (33.3% saved)

bsearch243.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
100.0ms
2.2599823642871702e+173
5.984193731456341e+190
20.0ms
5.431166219343512e-55
2.1475346633083455e-52
49.0ms
-6.333936901445633e-274
-8.895556647095114e-278
19.0ms
-1.9917849620909268e-104
-1.6375484992219473e-104
20.0ms
-1.876670178345975e+23
-8.92783658039703e+18
35.0ms
-8.210385602607272e+148
-1.8219421569147015e+133
Compiler

Compiled 310 to 244 computations (21.3% saved)

regimes124.0ms (1%)

Counts
4 → 6
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 x (neg.f64 y))
Outputs
x
(*.f64 x (neg.f64 y))
(*.f64 z x)
(*.f64 y t)
(*.f64 z x)
x
Calls

4 calls:

37.0ms
z
33.0ms
t
27.0ms
y
26.0ms
x
Results
ErrorSegmentsBranch
35.0b6x
35.8b7y
37.3b9z
39.5b6t
Compiler

Compiled 35 to 24 computations (31.4% saved)

bsearch199.0ms (1.6%)

Algorithm
binary-search
Steps
TimeLeftRight
92.0ms
2.2599823642871702e+173
5.984193731456341e+190
23.0ms
5.431166219343512e-55
2.1475346633083455e-52
23.0ms
-6.770067375872919e-108
-1.2403543992643915e-108
23.0ms
-1.876670178345975e+23
-8.92783658039703e+18
37.0ms
-8.210385602607272e+148
-1.8219421569147015e+133
Compiler

Compiled 310 to 244 computations (21.3% saved)

regimes95.0ms (0.8%)

Counts
3 → 5
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 y t)
Outputs
x
(*.f64 z x)
(*.f64 y t)
(*.f64 z x)
x
Calls

4 calls:

42.0ms
z
18.0ms
y
17.0ms
t
16.0ms
x
Results
ErrorSegmentsBranch
36.7b5x
36.8b5y
38.4b6z
41.1b4t
Compiler

Compiled 31 to 22 computations (29% saved)

bsearch192.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
104.0ms
2.2599823642871702e+173
5.984193731456341e+190
19.0ms
5.431166219343512e-55
2.1475346633083455e-52
22.0ms
-6.770067375872919e-108
-1.2403543992643915e-108
47.0ms
-520106054622.14984
-33817425311.84313
Compiler

Compiled 160 to 124 computations (22.5% saved)

regimes68.0ms (0.5%)

Accuracy

Total -21.4b remaining (-52.5%)

Threshold costs -21.4b (-52.5%)

Counts
2 → 3
Calls
Call 1
Inputs
x
(*.f64 z x)
Outputs
(*.f64 z x)
x
(*.f64 z x)
Calls

4 calls:

31.0ms
t
15.0ms
x
12.0ms
y
9.0ms
z
Results
ErrorSegmentsBranch
46.5b5x
46.9b3y
40.8b3z
47.6b3t
Compiler

Compiled 28 to 21 computations (25% saved)

bsearch72.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
50.0ms
0.0808062190972398
53.09458245059486
21.0ms
-1.9965982525107557e-13
-1.257481320006467e-13
Compiler

Compiled 20 to 14 computations (30% saved)

simplify28.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0160893
1201893
2228893
3241893
4246893
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 z -319999999999999970290228995897638786582170079005465262868078299827773513587968046502460009017964168007990204153785995303261026933782578619495574363316499364295926792778948220111853512032256) (*.f64 z (-.f64 x t)) (if (<=.f64 z 8014699584790701/1208925819614629174706176) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (if (<=.f64 z 47999999999999999675007352518039568384) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z))) (if (<=.f64 z 3599999999999999879581681787739427058599582932568556174433318048436749902375581436811618887180905028255744) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (*.f64 z (-.f64 x t))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -18999999999999999136137690626584733501824089756302817337509105210277358769289900673190272408999561852566830722203943841038336) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 y -3276872089432067/107839786668602559178668060348078522694548577690162289924414440996864) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z))) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -8883010689185512/18446744073709551616) (+.f64 (*.f64 y (-.f64 t x)) x) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 y (-.f64 t x)) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 y (-.f64 t x)) (if (<=.f64 y -3512229948647169/11567161174868858867503549817670155728287145622944061541103214308813593929159469055614459580396462067592797657080971249983993023962637889321478361450442531251940540790713205229865500968930113649556510144425306236378050199552) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 t z)) (*.f64 y (-.f64 t x)))))))
(if (<=.f64 x -187667017834597514739712) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 (+.f64 1 z) x) (if (<=.f64 x 6962239587707418624/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 220000000000000015863009421327419791453680836247872864256) (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 z) x))))))
(if (<=.f64 x -8521417598929303/16384) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -5960369459481273/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 z (-.f64 x t)) (if (<=.f64 x -4662177561652291/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 6962239587707418624/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 671324272060529/4722366482869645213696) (*.f64 t (-.f64 y z)) (if (<=.f64 x 52999999999999999571568560286951324583322332016203659713420465592506253312) (*.f64 z (-.f64 x t)) (*.f64 x (-.f64 1 y)))))))))
(if (<=.f64 x -520000000000000005240611335592674700781914762194209693698923429888) (-.f64 x (*.f64 t z)) (if (<=.f64 x -4810786831234144850404486319964160) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z (-.f64 x t)) (if (<=.f64 x 256526597400060416/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 t (-.f64 y z)) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z (-.f64 x t)) x)))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 t (-.f64 y z)) (if (<=.f64 y -4500000000000000161008150577227139334479862709273673426373504077449985916737521885436121745051000273581556980323756657055742448354418879365120) (*.f64 z x) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 t z)) (*.f64 t (-.f64 y z))))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -4662177561652291/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 z x) (if (<=.f64 x 220000000000000015863009421327419791453680836247872864256) (*.f64 t (-.f64 y z)) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x)))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 z x) (if (<=.f64 x -6172620403298162/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 z (neg.f64 t)) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x)))))
(if (<=.f64 x -8521417598929303/16384) x (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))
(if (<=.f64 z -15818681082561834/79228162514264337593543950336) (*.f64 z x) (if (<=.f64 z 1490611643250883840/18446744073709551616) x (*.f64 z x)))
x
Outputs
(if (<=.f64 z -319999999999999970290228995897638786582170079005465262868078299827773513587968046502460009017964168007990204153785995303261026933782578619495574363316499364295926792778948220111853512032256) (*.f64 z (-.f64 x t)) (if (<=.f64 z 8014699584790701/1208925819614629174706176) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (if (<=.f64 z 47999999999999999675007352518039568384) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z))) (if (<=.f64 z 3599999999999999879581681787739427058599582932568556174433318048436749902375581436811618887180905028255744) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (*.f64 z (-.f64 x t))))))
(if (<=.f64 z -319999999999999970290228995897638786582170079005465262868078299827773513587968046502460009017964168007990204153785995303261026933782578619495574363316499364295926792778948220111853512032256) (*.f64 z (-.f64 x t)) (if (<=.f64 z 8014699584790701/1208925819614629174706176) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (if (<=.f64 z 47999999999999999675007352518039568384) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 z y))) (if (<=.f64 z 3599999999999999879581681787739427058599582932568556174433318048436749902375581436811618887180905028255744) (+.f64 x (fma.f64 (-.f64 y z) t (*.f64 x (neg.f64 y)))) (*.f64 z (-.f64 x t))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -18999999999999999136137690626584733501824089756302817337509105210277358769289900673190272408999561852566830722203943841038336) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 y -3276872089432067/107839786668602559178668060348078522694548577690162289924414440996864) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 y z))) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -18999999999999999136137690626584733501824089756302817337509105210277358769289900673190272408999561852566830722203943841038336) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 y -3276872089432067/107839786668602559178668060348078522694548577690162289924414440996864) (+.f64 x (/.f64 (*.f64 (-.f64 t x) (-.f64 (*.f64 y y) (*.f64 z z))) (+.f64 z y))) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -8883010689185512/18446744073709551616) (+.f64 (*.f64 y (-.f64 t x)) x) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1110376336148189/2305843009213693952) (+.f64 x (*.f64 y (-.f64 t x))) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 y (-.f64 t x)) (if (<=.f64 y 2705531291170413/73786976294838206464) (+.f64 x (*.f64 z (-.f64 x t))) (*.f64 y (-.f64 t x))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 y (-.f64 t x)) (if (<=.f64 y -3512229948647169/11567161174868858867503549817670155728287145622944061541103214308813593929159469055614459580396462067592797657080971249983993023962637889321478361450442531251940540790713205229865500968930113649556510144425306236378050199552) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 t z)) (*.f64 y (-.f64 t x)))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 y (-.f64 t x)) (if (<=.f64 y -9500000000000000464508977071954836326929345476844199934965225938434110292099304203350012673833093478310948973559203807180191755665408) (*.f64 z (-.f64 x t)) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 y (-.f64 t x)) (if (<=.f64 y -3512229948647169/11567161174868858867503549817670155728287145622944061541103214308813593929159469055614459580396462067592797657080971249983993023962637889321478361450442531251940540790713205229865500968930113649556510144425306236378050199552) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 z t)) (*.f64 y (-.f64 t x)))))))
(if (<=.f64 x -187667017834597514739712) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 (+.f64 1 z) x) (if (<=.f64 x 6962239587707418624/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 220000000000000015863009421327419791453680836247872864256) (*.f64 t (-.f64 y z)) (*.f64 (+.f64 1 z) x))))))
(if (<=.f64 x -187667017834597514739712) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 x (+.f64 z 1)) (if (<=.f64 x 3399531048685263/1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456512) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 220000000000000015863009421327419791453680836247872864256) (*.f64 t (-.f64 y z)) (*.f64 x (+.f64 z 1)))))))
(if (<=.f64 x -8521417598929303/16384) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -5960369459481273/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 z (-.f64 x t)) (if (<=.f64 x -4662177561652291/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 6962239587707418624/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 671324272060529/4722366482869645213696) (*.f64 t (-.f64 y z)) (if (<=.f64 x 52999999999999999571568560286951324583322332016203659713420465592506253312) (*.f64 z (-.f64 x t)) (*.f64 x (-.f64 1 y)))))))))
(if (<=.f64 x -8521417598929303/16384) (*.f64 x (-.f64 1 y)) (if (<=.f64 x -5960369459481273/1645504557321206042154969182557350504982735865633579863348609024) (*.f64 z (-.f64 x t)) (if (<=.f64 x -4662177561652291/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 3399531048685263/1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456512) (*.f64 t (-.f64 y z)) (if (<=.f64 x 7742536917357035/11692013098647223345629478661730264157247460343808) (*.f64 x (-.f64 1 y)) (if (<=.f64 x 671324272060529/4722366482869645213696) (*.f64 t (-.f64 y z)) (if (<=.f64 x 52999999999999999571568560286951324583322332016203659713420465592506253312) (*.f64 z (-.f64 x t)) (*.f64 x (-.f64 1 y)))))))))
(if (<=.f64 x -520000000000000005240611335592674700781914762194209693698923429888) (-.f64 x (*.f64 t z)) (if (<=.f64 x -4810786831234144850404486319964160) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z (-.f64 x t)) (if (<=.f64 x 256526597400060416/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 t (-.f64 y z)) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z (-.f64 x t)) x)))))
(if (<=.f64 x -520000000000000005240611335592674700781914762194209693698923429888) (-.f64 x (*.f64 z t)) (if (<=.f64 x -4810786831234144850404486319964160) (*.f64 x (neg.f64 y)) (if (<=.f64 x -8950786895865857/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 z (-.f64 x t)) (if (<=.f64 x 501028510546993/971334446112864535459730953411759453321203419526069760625906204869452142602604249088) (*.f64 t (-.f64 y z)) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z (-.f64 x t)) x)))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 t (-.f64 y z)) (if (<=.f64 y -4500000000000000161008150577227139334479862709273673426373504077449985916737521885436121745051000273581556980323756657055742448354418879365120) (*.f64 z x) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 t z)) (*.f64 t (-.f64 y z))))))
(if (<=.f64 y -5500000000000000289548312311049614862405928102582209257220463591565187485117502597942139409599833504473859232511669338592500718320987051951049525699914235904) (*.f64 t (-.f64 y z)) (if (<=.f64 y -4500000000000000161008150577227139334479862709273673426373504077449985916737521885436121745051000273581556980323756657055742448354418879365120) (*.f64 z x) (if (<=.f64 y -1526033924246997/8796093022208) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3778527713486801/151115727451828646838272) (-.f64 x (*.f64 z t)) (*.f64 t (-.f64 y z))))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -4662177561652291/127314748520905380391777855525586135065716774604121015664758778084648831235208544136462336) (*.f64 z x) (if (<=.f64 x 220000000000000015863009421327419791453680836247872864256) (*.f64 t (-.f64 y z)) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x)))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 z x) (if (<=.f64 x -6172620403298162/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 z (neg.f64 t)) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1607277023604573/80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359168) (*.f64 z x) (if (<=.f64 x -3086310201649081/4872657005699999540176691193937594155438113428797503763433953228606474345383213051232807532941005129612652458115704334091729584932601547023288993648156326709765638849978236514935394827745026824176399796739609189436842798962697437472873181807734482806413869401552138773540914294995957055488) (neg.f64 (*.f64 z t)) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 t y) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x)))))
(if (<=.f64 x -65000000000000003449663518020382064191722516907234388298325713584439328349936048889483694950413029958389892190295567486883029392007810934693167104) x (if (<=.f64 x -187667017834597514739712) (*.f64 x (neg.f64 y)) (if (<=.f64 x -8950786895865857/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 t y) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x)))))
(if (<=.f64 x -8521417598929303/16384) x (if (<=.f64 x -1145700722670829696/169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889536) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 y t) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))
(if (<=.f64 x -8521417598929303/16384) x (if (<=.f64 x -8950786895865857/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 z x) (if (<=.f64 x 117139161291145/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 t y) (if (<=.f64 x 229999999999999994991255646677200542121381573413625152292486738601582509188539097626171686383013817195536688462944168411488301667008191642160980276134197311259715443733037056) (*.f64 z x) x))))
(if (<=.f64 z -15818681082561834/79228162514264337593543950336) (*.f64 z x) (if (<=.f64 z 1490611643250883840/18446744073709551616) x (*.f64 z x)))
(if (<=.f64 z -7909340541280917/39614081257132168796771975168) (*.f64 z x) (if (<=.f64 z 5822701731448765/72057594037927936) x (*.f64 z x)))
x

end369.0ms (2.9%)

Stop Event
fuel
Compiler

Compiled 1304 to 607 computations (53.5% saved)

Profiling

Loading profile data...