Details

Time bar (total: 16.8s)

analyze560.0ms (3.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
12.7%12.5%85.6%0.2%1.8%0%0%11
17.8%17.2%79.4%0.2%3.2%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.7s (9.8%)

Results
1.1s8256×body256valid
464.0ms3914×body256infinite
Bogosity

preprocess78.0ms (0.5%)

Algorithm
egg-herbie
Rules
832×unsub-neg_binary64
438×+-commutative_binary64
318×associate--r-_binary64
308×distribute-rgt-in_binary64
286×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02991
15677
216277
360877
4257777
5431677
6712177
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)

simplify279.0ms (1.7%)

Algorithm
egg-herbie
Rules
2262×fma-neg_binary64
697×fma-def_binary64
683×unsub-neg_binary64
303×distribute-rgt-in_binary64
280×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0913
11511
23711
312311
447111
5155711
6303411
7414811
8518011
9543811
10544911
11544911
12549111
13549111
14549111
15776511
16776511
17776511
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
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
0.0b
(fma.f64 (-.f64 y z) (-.f64 t x) x)
Compiler

Compiled 25 to 15 computations (40% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 8 computations (73.3% saved)

series20.0ms (0.1%)

Counts
2 → 96
Calls

24 calls:

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

rewrite113.0ms (0.7%)

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
2323121
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 expm1.f64 (log1p.f64 (*.f64 (-.f64 y z) (-.f64 t x))))))) (#(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 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 -.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)) (-.f64 (*.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)) (-.f64 (*.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)) (-.f64 (*.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)) (-.f64 (*.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)) (-.f64 (*.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)) (-.f64 (*.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 (+.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 expm1.f64 (log1p.f64 (fma.f64 (-.f64 y z) (-.f64 t x) 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 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)))))

simplify394.0ms (2.3%)

Algorithm
egg-herbie
Rules
2719×fma-neg_binary64
401×unsub-neg_binary64
314×fma-def_binary64
292×associate-+l-_binary64
276×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0391500
11051169
2241935
3740929
41834929
53843929
64481929
74671929
84709929
94709929
105045929
115088929
125088929
137108929
147108929
157108929
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 z (neg.f64 (-.f64 t x)))
(*.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 z (neg.f64 (-.f64 t x)))
(*.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 z (neg.f64 (-.f64 t x)))
(*.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)
(fma.f64 (neg.f64 z) (-.f64 t x) 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 z (neg.f64 (-.f64 t x)))
(*.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 z (neg.f64 (-.f64 t x)))
(*.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)

localize16.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series8.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
1.0ms
y
@-inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
1.0ms
x
@-inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
1.0ms
t
@-inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)
1.0ms
t
@inf
(fma.f64 (-.f64 y z) (-.f64 t x) x)

rewrite74.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
2263611
Stop Event
node limit
Counts
1 → 30
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)) (-.f64 (*.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 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 expm1.f64 (log1p.f64 (fma.f64 (-.f64 y z) (-.f64 t x) 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))))))

simplify319.0ms (1.9%)

Algorithm
egg-herbie
Rules
2702×fma-neg_binary64
409×unsub-neg_binary64
318×fma-def_binary64
288×associate-+l-_binary64
286×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036753
1100569
2239488
3735485
41817485
53817485
64447485
74637485
84675485
94675485
105011485
115067485
125067485
137101485
147101485
157101485
Stop Event
saturated
Counts
78 → 51
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)

eval34.0ms (0.2%)

Compiler

Compiled 2622 to 668 computations (74.5% saved)

prune75.0ms (0.4%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New16511176
Fresh000
Picked101
Done101
Total16711178
Error
0b
Counts
178 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
41.1b
(*.f64 z (-.f64 x t))
0.0b
(+.f64 x (+.f64 (*.f64 (-.f64 y z) t) (*.f64 (-.f64 y z) (neg.f64 x))))
32.0b
(fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
24.7b
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
41.2b
(*.f64 (-.f64 t x) y)
39.0b
(*.f64 t (-.f64 y z))
22.7b
(+.f64 x (*.f64 z (-.f64 x t)))
29.9b
(/.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))))
23.0b
(+.f64 (*.f64 y (-.f64 t x)) x)
24.7b
(+.f64 x (*.f64 x (-.f64 z y)))
Compiler

Compiled 312 to 186 computations (40.4% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

Compiled 50 to 10 computations (80% saved)

series20.0ms (0.1%)

Counts
4 → 168
Calls

42 calls:

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

rewrite175.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
692×fma-def_binary64
633×log-prod_binary64
374×fma-neg_binary64
224×pow1/3_binary64
224×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01143
125735
2408535
Stop Event
node limit
Counts
4 → 309
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z)))
(*.f64 (-.f64 t x) y)
(*.f64 (-.f64 t x) (neg.f64 z))
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 t x) (+.f64 y z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2) (*.f64 (-.f64 t x) (+.f64 y z))) (/.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2) (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 t x) (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (/.f64 1 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y z) (-.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (-.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))) (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (+.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2) (-.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2)) (neg.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3))) (neg.f64 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2) (pow.f64 (*.f64 (-.f64 t x) y) 2)) (-.f64 (*.f64 (-.f64 t x) z) (*.f64 (-.f64 t x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 t 3) (pow.f64 x 3)) (+.f64 y z)) (fma.f64 x (+.f64 t x) (*.f64 t t)))))) (#(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 pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))) (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 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 t x) (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y))) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y))) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y))) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y))) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z))) (pow.f64 (exp.f64 y) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (-.f64 t x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z))) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) y (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) y (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) y (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) z (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) (+.f64 y z) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) (+.f64 y z) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) (+.f64 y z) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (-.f64 t x) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (-.f64 t x) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (-.f64 t x) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) y) 1 (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) y) 1 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) y) 1 (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) z) 1 (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1 (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1 (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) y) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (/.f64 1 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (/.f64 1 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (/.f64 1 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (-.f64 t x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (-.f64 t x)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (-.f64 t x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) z)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (cbrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) y)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) y)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) y)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (cbrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (cbrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (cbrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (-.f64 t x)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) y) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (-.f64 t x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (-.f64 t x)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (-.f64 t x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) z)) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) y)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (-.f64 t x)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) y) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) (+.f64 y z)) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 (-.f64 t x) z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y z) (-.f64 t x) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y z) (-.f64 t x) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y z) (-.f64 t x) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (-.f64 t x)) z (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (-.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (fma.f64 z (-.f64 t x) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (-.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (-.f64 t x) z))) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (-.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z)) (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 z)) (sqrt.f64 z) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) -1) z (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (*.f64 (-.f64 t x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))) (cbrt.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (*.f64 (neg.f64 (sqrt.f64 (*.f64 (-.f64 t x) z))) (sqrt.f64 (*.f64 (-.f64 t x) z))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 t x) y))))) (#(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 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 t x))) (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 t x))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 t x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 t x) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 t 3) (pow.f64 x 3)) y) (fma.f64 x (+.f64 t x) (*.f64 t t)))))) (#(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 x (+.f64 t x) (*.f64 t t)))))) (#(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 (-.f64 t x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 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 log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 t x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 t x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 t x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 t x) y)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t y (*.f64 (neg.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y t (*.f64 y (neg.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t z) (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z t) (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 t x))) (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 t x))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 z) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 t x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 z) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 t x) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 t 3) (pow.f64 x 3)) z) (fma.f64 x (+.f64 t x) (*.f64 t t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 t t) (*.f64 x x)) z) (+.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (pow.f64 t 3) (pow.f64 x 3))) (fma.f64 x (+.f64 t x) (*.f64 t t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (-.f64 (*.f64 t t) (*.f64 x x))) (+.f64 t x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 t x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 t x) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 t x) z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (-.f64 t x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 1 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 t x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 t x) z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 t z (*.f64 (neg.f64 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z t (*.f64 z (neg.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (-.f64 t x) y x) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z)))) (/.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (-.f64 t x) (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) 2) (cbrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) (sqrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3)) (/.f64 1 (fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2)) (/.f64 1 (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3)) (fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3)) (+.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (-.f64 (*.f64 x x) (*.f64 x (*.f64 (-.f64 t x) (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2)) (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3))) (neg.f64 (fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2))) (neg.f64 (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (-.f64 t x) y x) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (fma.f64 (fma.f64 (-.f64 t x) y x) (fma.f64 (-.f64 t x) y x) (-.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2) (*.f64 (fma.f64 (-.f64 t x) y x) (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 x x)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (fma.f64 (-.f64 t x) y x) (fma.f64 (-.f64 t x) y x) (pow.f64 (*.f64 (-.f64 t x) z) 2)) (fma.f64 (-.f64 t x) (+.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (fma.f64 (-.f64 t x) (+.f64 y z) (neg.f64 x)) (*.f64 x x)) (+.f64 (pow.f64 x 3) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (*.f64 (-.f64 t x) (+.f64 y z))) (-.f64 (*.f64 x x) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 (-.f64 t x) y x)) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x))) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 (-.f64 t x) y x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x))) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(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 t x) (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) (+.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (pow.f64 (exp.f64 z) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (pow.f64 (exp.f64 z) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (-.f64 t x)) (exp.f64 (fma.f64 (-.f64 t x) y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z))) (exp.f64 (fma.f64 (-.f64 t x) y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 z) (-.f64 t x)) (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z))) (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) (+.f64 y z)))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (pow.f64 (exp.f64 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 t x) (+.f64 y z)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 y) (-.f64 t x)) (pow.f64 (exp.f64 z) (-.f64 t x))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x))) (pow.f64 (exp.f64 z) (-.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (-.f64 t x) y x)) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (exp.f64 x) (pow.f64 (exp.f64 y) (-.f64 t x))) (+.f64 1 (expm1.f64 (*.f64 (-.f64 t x) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (-.f64 t x) (+.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) y (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 t x) z (fma.f64 (-.f64 t x) y 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 y (-.f64 t x) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) y) 1 (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z (-.f64 t x) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) z) 1 (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) y) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) z) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 t x) (+.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (-.f64 t x) y x) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (/.f64 1 (*.f64 (-.f64 t x) (+.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (-.f64 t x)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) z)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) z) 2)) (cbrt.f64 (*.f64 (-.f64 t x) z)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) y)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (-.f64 t x) y) 2)) (cbrt.f64 (*.f64 (-.f64 t x) y)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) 2) (cbrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (-.f64 t x)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) z) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) y) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 t x)) 2) (*.f64 (cbrt.f64 (-.f64 t x)) (+.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (-.f64 t x)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) z)) (sqrt.f64 (*.f64 (-.f64 t x) z)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) y)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 (-.f64 t x) (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) (sqrt.f64 (*.f64 (-.f64 t x) (+.f64 y z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (-.f64 t x)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) z) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 t x)) (*.f64 (sqrt.f64 (-.f64 t x)) y) (fma.f64 (-.f64 t x) z 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 (+.f64 (pow.f64 (*.f64 (-.f64 t x) y) 3) (pow.f64 (*.f64 (-.f64 t x) z) 3)) (/.f64 1 (-.f64 (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2) (*.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 (-.f64 t x) z) (fma.f64 (-.f64 t x) y 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 (fma.f64 (-.f64 t x) y x) 1 (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (fma.f64 (-.f64 t x) y x)) (cbrt.f64 (fma.f64 (-.f64 t x) y x))) (cbrt.f64 (fma.f64 (-.f64 t x) y x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (-.f64 t x) y x)) (sqrt.f64 (fma.f64 (-.f64 t x) y x)) (*.f64 (-.f64 t x) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (-.f64 t x)) z (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) (-.f64 (sqrt.f64 (*.f64 (-.f64 t x) y)) (sqrt.f64 (*.f64 (-.f64 t x) z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) -1) z (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (fma.f64 (-.f64 t x) y x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (-.f64 t x)) 2)) (cbrt.f64 (-.f64 t x)) (fma.f64 (-.f64 t x) z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (-.f64 t x))) (sqrt.f64 (-.f64 t x)) (fma.f64 (-.f64 t x) z x))))))

simplify217.0ms (1.3%)

Algorithm
egg-herbie
Rules
2910×fma-neg_binary64
477×fma-def_binary64
467×associate-+l-_binary64
450×sub-neg_binary64
366×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0652229
12111955
25651409
316621409
440491409
550861409
652891409
753131409
853131409
957501409
1058551409
1158551409
Stop Event
node limit
Counts
477 → 350
Calls
Call 1
Inputs
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(*.f64 t (+.f64 (*.f64 -1 z) y))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) 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 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 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 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 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)))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t 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))
(*.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 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 t (+.f64 (*.f64 -1 z) y))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(+.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))))
Outputs
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(fma.f64 z x (neg.f64 (*.f64 x y)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 t (+.f64 (*.f64 -1 z) y))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 (+.f64 z (*.f64 -1 y)) x)
(fma.f64 z x (neg.f64 (*.f64 x y)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 z (*.f64 -1 y)) x) (*.f64 y t)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))
(fma.f64 z x (neg.f64 (*.f64 x y)))
(*.f64 x (-.f64 z y))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 y t) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) y) x))))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (*.f64 y (-.f64 t x)))
(fma.f64 z x (fma.f64 t (fma.f64 -1 z y) (neg.f64 (*.f64 x y))))
(+.f64 (*.f64 t (-.f64 y z)) (*.f64 x (-.f64 z y)))
(*.f64 (-.f64 y z) (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 y (-.f64 t x))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 t z))
(neg.f64 (*.f64 z t))
(*.f64 z (neg.f64 t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 z x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 z x))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 t x)))
(*.f64 z (-.f64 x t))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 y t))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x))
(*.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 t z)) (+.f64 (*.f64 -1 (*.f64 (-.f64 (+.f64 (*.f64 -1 z) y) 1) x)) (*.f64 y t)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 t (+.f64 (*.f64 -1 z) y))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 t (+.f64 (*.f64 -1 z) y)) (+.f64 (*.f64 -1 (*.f64 y x)) x)))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y))))
(*.f64 t (fma.f64 -1 z y))
(*.f64 t (-.f64 y z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) (+.f64 x (*.f64 -1 (*.f64 t (+.f64 z (*.f64 -1 y)))))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) 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 (-.f64 x t) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 (*.f64 y (-.f64 t x)) x))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 (-.f64 t x) z)) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 y (-.f64 t x)) x)
(fma.f64 y (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 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 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(*.f64 -1 (*.f64 z (-.f64 t x)))
(*.f64 (neg.f64 z) (-.f64 t x))
(*.f64 z (neg.f64 (-.f64 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 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(+.f64 (*.f64 -1 (*.f64 z (-.f64 t x))) (+.f64 x (*.f64 y (-.f64 t x))))
(fma.f64 -1 (*.f64 z t) (fma.f64 (+.f64 (+.f64 1 z) (neg.f64 y)) x (*.f64 y t)))
(fma.f64 z x (fma.f64 t (-.f64 y z) (-.f64 x (*.f64 x y))))
(fma.f64 (-.f64 t x) (-.f64 y z) x)
(fma.f64 (-.f64 y z) (-.f64 t x) x)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
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
t
@inf
(*.f64 t (-.f64 y z))
0.0ms
y
@0
(*.f64 t (-.f64 y z))
0.0ms
y
@-inf
(*.f64 t (-.f64 y z))
0.0ms
t
@-inf
(*.f64 t (-.f64 y z))

rewrite59.0ms (0.4%)

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
217847
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 expm1.f64 (log1p.f64 (*.f64 t (-.f64 y z))))))) (#(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))))))))

simplify32.0ms (0.2%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
132×fma-neg_binary64
43×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
8579156
9733156
10747156
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 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 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 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))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series7.0ms (0%)

Counts
2 → 60
Calls

18 calls:

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

rewrite70.0ms (0.4%)

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
0717
115815
2236915
Stop Event
node limit
Counts
2 → 54
Calls
Call 1
Inputs
(*.f64 z (-.f64 x t))
(+.f64 x (*.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 (exp.f64 (log1p.f64 (*.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 (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 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 cbrt.f64 (pow.f64 (*.f64 z (-.f64 x t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (-.f64 x t))))))) (#(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 -.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 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 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 expm1.f64 (log1p.f64 (fma.f64 z (-.f64 x t) 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 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)))))))

simplify94.0ms (0.6%)

Algorithm
egg-herbie
Rules
353×fma-def_binary64
263×fma-neg_binary64
60×cancel-sign-sub-inv_binary64
50×distribute-rgt-in_binary64
50×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023608
162420
2134420
3285420
4562420
51024420
61333420
71388420
81389420
Stop Event
saturated
Counts
114 → 69
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))
(*.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 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 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))
(neg.f64 (*.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))
(neg.f64 (*.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))
(neg.f64 (*.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 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))
(fma.f64 -1 (*.f64 t z) (*.f64 z 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))
(fma.f64 -1 (*.f64 t z) (*.f64 z 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 (*.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 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))
(neg.f64 (*.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)

localize21.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 33 to 18 computations (45.5% saved)

series15.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

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

rewrite68.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
2282710
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 expm1.f64 (log1p.f64 (+.f64 x (*.f64 (-.f64 y z) x))))))) (#(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)))))))

simplify53.0ms (0.3%)

Algorithm
egg-herbie
Rules
512×fma-def_binary64
338×fma-neg_binary64
73×cancel-sign-sub-inv_binary64
58×associate--r+_binary64
55×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
016270
135214
276212
3167176
4302176
5606176
61216176
71595176
81730176
91748176
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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) 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 x (-.f64 z y)) x)
(fma.f64 x (-.f64 z y) x)

eval138.0ms (0.8%)

Compiler

Compiled 8649 to 2074 computations (76% saved)

prune221.0ms (1.3%)

Pruning

18 alts after pruning (16 fresh and 2 done)

PrunedKeptTotal
New49113504
Fresh336
Picked101
Done224
Total49718515
Error
0b
Counts
515 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
35.7b
(+.f64 x (/.f64 1 (/.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2))))
39.0b
(*.f64 t (-.f64 y z))
32.9b
(+.f64 x (*.f64 z (neg.f64 t)))
39.0b
(+.f64 (*.f64 y t) (*.f64 (neg.f64 z) t))
23.0b
(+.f64 (*.f64 y (-.f64 t x)) x)
51.3b
(*.f64 y t)
32.0b
(fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
52.9b
(*.f64 y (neg.f64 x))
53.0b
(*.f64 z x)
50.5b
(*.f64 t (neg.f64 z))
34.9b
(-.f64 x (*.f64 x y))
24.7b
(+.f64 x (*.f64 x (-.f64 z y)))
41.2b
(+.f64 (*.f64 y t) (*.f64 y (neg.f64 x)))
34.7b
(*.f64 (+.f64 1 z) x)
41.2b
(*.f64 (-.f64 t x) y)
24.7b
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
41.1b
(*.f64 z (-.f64 x t))
44.7b
x
Compiler

Compiled 365 to 238 computations (34.8% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

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

series6.0ms (0%)

Counts
2 → 57
Calls

18 calls:

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

rewrite66.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
0715
115915
2234815
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y (-.f64 t x)) 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 (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 (pow.f64 (*.f64 y (-.f64 t x)) 3) 1/3)))) (#(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 expm1.f64 (log1p.f64 (*.f64 y (-.f64 t 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 -.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 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 (*.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 expm1.f64 (log1p.f64 (fma.f64 y (-.f64 t x) 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 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)))))))

simplify49.0ms (0.3%)

Algorithm
egg-herbie
Rules
409×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
025507
160396
2116396
3211396
4372396
5675396
61058396
71297396
81416396
91418396
Stop Event
saturated
Counts
109 → 68
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)))
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
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(*.f64 y t)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(fma.f64 y t (*.f64 (neg.f64 y) x))
(*.f64 y (-.f64 t x))
x
(*.f64 y (-.f64 t x))
(fma.f64 y t (*.f64 (neg.f64 y) 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))
(fma.f64 y t (*.f64 (neg.f64 y) 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 y x) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y 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 (*.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 y x) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y 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 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 y x) x)
(*.f64 x (-.f64 1 y))
(-.f64 x (*.f64 y 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)
(+.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)

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 6 computations (57.1% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite52.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
649×pow1_binary64
604×add-log-exp_binary64
604×log1p-expm1-u_binary64
604×expm1-log1p-u_binary64
591×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify26.0ms (0.2%)

Algorithm
egg-herbie
Rules
145×fma-def_binary64
71×fma-neg_binary64
21×cancel-sign-sub-inv_binary64
20×associate-*r*_binary64
18×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014160
127160
249160
388160
4136160
5223160
6371160
7451160
8519160
9525160
Stop Event
saturated
Counts
62 → 46
Calls
Call 1
Inputs
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (-.f64 1 y) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 x (*.f64 -1 (*.f64 y x)))
Outputs
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (-.f64 1 y) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 (+.f64 1 (*.f64 -1 y)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
x
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 y (neg.f64 x))
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)
(+.f64 x (*.f64 -1 (*.f64 y x)))
(*.f64 x (-.f64 1 y))
(fma.f64 y (neg.f64 x) x)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 24 to 8 computations (66.7% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite62.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
834×pow1_binary64
772×add-log-exp_binary64
771×log1p-expm1-u_binary64
771×expm1-log1p-u_binary64
755×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify36.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
016300
137240
277240
3150240
4315240
5478240
6648240
7721240
8723240
Stop Event
saturated
Counts
80 → 52
Calls
Call 1
Inputs
(*.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 -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 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 (+.f64 t (*.f64 -1 x)) y)
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 t) x) y))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 y t)
(*.f64 t y)
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))
(+.f64 (*.f64 y t) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 t (neg.f64 x)) y)
(*.f64 (-.f64 t x) y)
(*.f64 y (-.f64 t x))

eval60.0ms (0.4%)

Compiler

Compiled 1984 to 625 computations (68.5% saved)

prune40.0ms (0.2%)

Pruning

18 alts after pruning (13 fresh and 5 done)

PrunedKeptTotal
New1624166
Fresh2911
Picked101
Done156
Total16618184
Error
0b
Counts
184 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
32.9b
(+.f64 x (*.f64 z (neg.f64 t)))
41.2b
(-.f64 (*.f64 y t) (*.f64 y x))
39.0b
(+.f64 (*.f64 y t) (*.f64 (neg.f64 z) t))
51.3b
(*.f64 y t)
32.0b
(fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
52.9b
(*.f64 y (neg.f64 x))
44.7b
x
53.0b
(*.f64 z x)
50.5b
(*.f64 t (neg.f64 z))
34.9b
(-.f64 x (*.f64 x y))
34.7b
(*.f64 (+.f64 1 z) x)
41.2b
(*.f64 (-.f64 t x) y)
24.7b
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
47.3b
(/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2))))
39.0b
(*.f64 t (-.f64 y z))
41.1b
(*.f64 z (-.f64 x t))
33.5b
(+.f64 (*.f64 y t) x)
24.7b
(+.f64 x (*.f64 x (-.f64 z y)))
Compiler

Compiled 327 to 217 computations (33.6% saved)

localize18.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 36 to 20 computations (44.4% saved)

series6.0ms (0%)

Counts
2 → 39
Calls

15 calls:

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

rewrite111.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
515×log-prod_binary64
371×fma-def_binary64
357×pow-prod-down_binary64
266×pow2_binary64
234×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01120
122918
2318614
Stop Event
node limit
Counts
2 → 189
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 1 z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 z x x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x y (fma.f64 z x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 z x x) 2) (fma.f64 x y (fma.f64 z x x))) (/.f64 (pow.f64 (*.f64 x y) 2) (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x y (fma.f64 z x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 (+.f64 1 z) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 -1 y (+.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (/.f64 1 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (cbrt.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (sqrt.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x y (fma.f64 z x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y))) (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (fma.f64 x y (fma.f64 z x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (+.f64 (pow.f64 (*.f64 x y) 2) (-.f64 (pow.f64 (fma.f64 z x x) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3))) (neg.f64 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2)) (neg.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x y) 2) (pow.f64 (fma.f64 z x x) 2)) (-.f64 (*.f64 x y) (fma.f64 z x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x y (fma.f64 z x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y))) (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 x y (fma.f64 z x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x y (fma.f64 z x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (fma.f64 z x x))) (exp.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 z x x)) (+.f64 1 (expm1.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (fma.f64 z x x))) (+.f64 1 (expm1.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z x x))) (exp.f64 (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 z x x)) (+.f64 1 (expm1.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 z x x))) (+.f64 1 (expm1.f64 (*.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x y))) (exp.f64 (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x y)) (+.f64 1 (expm1.f64 (fma.f64 z x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x y))) (+.f64 1 (expm1.f64 (fma.f64 z x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (fma.f64 z x x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x y (fma.f64 z x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x y (fma.f64 z x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 x y (fma.f64 z x x)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 x y (fma.f64 z x x))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z x x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 z x x) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x y (fma.f64 z x x)) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x y (fma.f64 z x x)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x y (fma.f64 z x x)) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 z) x (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 z) x (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 1 z) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 1 z) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x y (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (neg.f64 y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (-.f64 (+.f64 1 z) (neg.f64 y)) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (-.f64 (+.f64 1 z) (neg.f64 y)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (-.f64 (+.f64 1 z) (neg.f64 y)) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (+.f64 (+.f64 1 z) (neg.f64 y)) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 -1 y (+.f64 1 z)) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 -1 y (+.f64 1 z)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 -1 y (+.f64 1 z)) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z x x) 1 (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 z x x) 1 (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y x (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (neg.f64 x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 x -1) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) 1 (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x y) -1 (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (/.f64 1 (fma.f64 x y (fma.f64 z x x))) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (/.f64 1 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (/.f64 1 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) 2) (cbrt.f64 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (+.f64 1 z)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (+.f64 1 z)) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(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 x y))))) (#(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 (neg.f64 (neg.f64 y)) x))))) (#(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 x y))))) (#(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 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x y)) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (cbrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (neg.f64 (cbrt.f64 (*.f64 x y))) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 z)) 2) (*.f64 (cbrt.f64 (+.f64 1 z)) x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 1 z)) 2) (*.f64 (cbrt.f64 (+.f64 1 z)) x) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (sqrt.f64 (fma.f64 x y (fma.f64 z x x))) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 1 z)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (+.f64 1 z)) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (fma.f64 z x x)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (fma.f64 z x x)) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x y)) (sqrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x y)) (neg.f64 (sqrt.f64 (*.f64 x y))) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x y)) (*.f64 (sqrt.f64 (*.f64 x y)) -1) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 z)) (*.f64 (sqrt.f64 (+.f64 1 z)) x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 1 z)) (*.f64 (sqrt.f64 (+.f64 1 z)) x) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 z x x) 3) (pow.f64 (*.f64 x y) 3)) (/.f64 1 (-.f64 (pow.f64 (fma.f64 x y (fma.f64 z x x)) 2) (*.f64 (fma.f64 z x x) (*.f64 x y)))) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x y (fma.f64 z x x)) 1 (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x y (fma.f64 z x x)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x y (fma.f64 z x x)) 1 (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 y) x (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) y (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (+.f64 (*.f64 x y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x y)) 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (-.f64 (sqrt.f64 (fma.f64 z x x)) (sqrt.f64 (*.f64 x y))) (fma.f64 (neg.f64 x) (neg.f64 y) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 x y)) 2)) (cbrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 y)) (sqrt.f64 y) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 z) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 z) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 z) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 z) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (+.f64 1 z)) 2)) (cbrt.f64 (+.f64 1 z)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (+.f64 1 z)) 2)) (cbrt.f64 (+.f64 1 z)) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (+.f64 1 z))) (sqrt.f64 (+.f64 1 z)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (+.f64 1 z))) (sqrt.f64 (+.f64 1 z)) (*.f64 (neg.f64 (neg.f64 y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 x) y (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (*.f64 x y)) 2)) (cbrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1 (sqrt.f64 (*.f64 x y))) (sqrt.f64 (*.f64 x y)) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) 1) x (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 y) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 z x x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 z x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z x) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x z) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 z x x))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 z x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 z x x)))) (log.f64 (sqrt.f64 (exp.f64 (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 (+.f64 1 (pow.f64 z 3)) x) (fma.f64 z (-.f64 z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 z z)) x) (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 z 3))) (fma.f64 z (-.f64 z 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 z z))) (-.f64 1 z))))) (#(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 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 cbrt.f64 (pow.f64 (fma.f64 z x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 z x 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 exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 z x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 z x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 z x x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 z x x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 z x x)) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 z x x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x 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 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 x z))))) (#(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) (cbrt.f64 x) (*.f64 x z))))) (#(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) (sqrt.f64 x) (*.f64 x z))))))

simplify55.0ms (0.3%)

Algorithm
egg-herbie
Rules
521×fma-def_binary64
293×fma-neg_binary64
90×distribute-rgt-in_binary64
81×distribute-lft-in_binary64
74×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
024339
165296
2149254
3360254
4801254
51267254
61747254
71763254
Stop Event
saturated
Counts
228 → 202
Calls
Call 1
Inputs
(+.f64 x (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(*.f64 (+.f64 1 z) x)
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 y x))
x
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
Outputs
(+.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 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 (+.f64 z (*.f64 -1 y))) x)
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 1 z)) y) x))
(fma.f64 z x (fma.f64 -1 (*.f64 x y) x))
(+.f64 x (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) x)
(*.f64 (+.f64 1 z) x)
(fma.f64 z x x)
(fma.f64 x z x)
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(*.f64 (neg.f64 y) x)
(*.f64 x (neg.f64 y))
(neg.f64 (*.f64 x y))
x
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(fma.f64 x z x)

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
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
y
@-inf
(+.f64 (*.f64 y t) x)
0.0ms
y
@inf
(+.f64 (*.f64 y t) x)
0.0ms
x
@-inf
(+.f64 (*.f64 y t) x)
0.0ms
t
@inf
(+.f64 (*.f64 y t) x)

rewrite81.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
217755
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 expm1.f64 (log1p.f64 (fma.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 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)))))

simplify15.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

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series12.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
z
@inf
(*.f64 x (-.f64 z y))
1.0ms
x
@0
(*.f64 x (-.f64 z y))
1.0ms
x
@inf
(*.f64 x (-.f64 z y))
1.0ms
z
@-inf
(*.f64 x (-.f64 z y))
1.0ms
x
@-inf
(*.f64 x (-.f64 z y))

rewrite92.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
974×pow1_binary64
906×add-log-exp_binary64
906×log1p-expm1-u_binary64
906×expm1-log1p-u_binary64
88×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify66.0ms (0.4%)

Algorithm
egg-herbie
Rules
620×fma-def_binary64
243×fma-neg_binary64
110×distribute-rgt-in_binary64
103×unsub-neg_binary64
101×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
024573
162572
2138512
3322512
4708512
51427512
61955512
71959512
Stop Event
saturated
Counts
129 → 70
Calls
Call 1
Inputs
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z 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 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 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
Outputs
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(+.f64 (*.f64 z x) (*.f64 -1 (*.f64 y x)))
(*.f64 (-.f64 z y) x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 (-.f64 (+.f64 1 z) y) x)
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 z y)) 1) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 -1 (*.f64 y x)) x)
(fma.f64 -1 (*.f64 y x) x)
(-.f64 x (*.f64 y x))
(*.f64 x (-.f64 1 y))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 z x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) x)
(fma.f64 z x x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 -1 (*.f64 y x)) x))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(*.f64 y (neg.f64 x))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y x))))
(*.f64 x (+.f64 1 (-.f64 z y)))
(+.f64 x (*.f64 (-.f64 z y) x))
(fma.f64 (-.f64 z y) x x)

eval87.0ms (0.5%)

Compiler

Compiled 4549 to 1400 computations (69.2% saved)

prune82.0ms (0.5%)

Pruning

18 alts after pruning (9 fresh and 9 done)

PrunedKeptTotal
New3293332
Fresh268
Picked011
Done189
Total33218350
Error
0b
Counts
350 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
39.0b
(*.f64 t (-.f64 y z))
24.7b
(+.f64 x (+.f64 (*.f64 z x) (*.f64 (neg.f64 y) x)))
32.9b
(+.f64 x (*.f64 z (neg.f64 t)))
41.2b
(-.f64 (*.f64 y t) (*.f64 y x))
39.0b
(+.f64 (*.f64 y t) (*.f64 (neg.f64 z) t))
51.3b
(*.f64 y t)
32.0b
(fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
52.9b
(*.f64 y (neg.f64 x))
53.0b
(*.f64 z x)
44.7b
x
34.9b
(-.f64 x (*.f64 x y))
34.7b
(*.f64 (+.f64 1 z) x)
41.2b
(*.f64 (-.f64 t x) y)
47.3b
(/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2))))
41.1b
(*.f64 z (-.f64 x t))
33.5b
(+.f64 (*.f64 y t) x)
24.7b
(+.f64 x (*.f64 x (-.f64 z y)))
50.5b
(*.f64 z (neg.f64 t))
Compiler

Compiled 186 to 123 computations (33.9% saved)

regimes412.0ms (2.4%)

Counts
33 → 1
Calls
Call 1
Inputs
x
x
x
(*.f64 y t)
(*.f64 z x)
(*.f64 z (neg.f64 t))
(*.f64 y (neg.f64 x))
(*.f64 t (neg.f64 z))
(+.f64 (*.f64 y t) x)
(-.f64 x (*.f64 x y))
(*.f64 (+.f64 1 z) x)
(*.f64 z (-.f64 x t))
(*.f64 (-.f64 t x) y)
(*.f64 t (-.f64 y z))
(+.f64 x (*.f64 z (neg.f64 t)))
(-.f64 (*.f64 y t) (*.f64 y x))
(+.f64 (*.f64 y (-.f64 t x)) x)
(+.f64 x (*.f64 z (-.f64 x t)))
(+.f64 (*.f64 y (-.f64 t x)) x)
(+.f64 x (*.f64 x (-.f64 z y)))
(+.f64 (*.f64 y t) (*.f64 (neg.f64 z) t))
(+.f64 (*.f64 y t) (*.f64 y (neg.f64 x)))
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 y z))) x)
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(+.f64 x (+.f64 (*.f64 z x) (*.f64 (neg.f64 y) x)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 -1 (*.f64 y x)))
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
(+.f64 x (+.f64 (*.f64 (-.f64 y z) t) (*.f64 (-.f64 y z) (neg.f64 x))))
(fma.f64 (-.f64 y z) (-.f64 t x) x)
(/.f64 1 (/.f64 (+.f64 x (*.f64 x y)) (-.f64 (*.f64 x x) (pow.f64 (*.f64 x y) 2))))
(+.f64 x (/.f64 1 (/.f64 (*.f64 (-.f64 t x) (+.f64 y z)) (pow.f64 (*.f64 (-.f64 t x) (+.f64 y z)) 2))))
(/.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))))
(fma.f64 (*.f64 (-.f64 t x) (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)) x)
Outputs
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
Calls

7 calls:

107.0ms
z
70.0ms
x
63.0ms
t
40.0ms
(-.f64 y z)
39.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
0.0b1(-.f64 y z)
0.0b1(-.f64 y z)
Compiler

Compiled 311 to 121 computations (61.1% saved)

regimes551.0ms (3.3%)

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

6 calls:

216.0ms
x
156.0ms
y
74.0ms
(-.f64 y z)
32.0ms
t
31.0ms
z
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
0.0b1(-.f64 y z)
Compiler

Compiled 191 to 82 computations (57.1% saved)

regimes1.6s (9.7%)

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

6 calls:

458.0ms
(-.f64 y z)
390.0ms
x
308.0ms
(-.f64 y z)
212.0ms
t
147.0ms
y
Results
ErrorSegmentsBranch
10.3b6x
8.7b3y
8.4b3z
14.3b5t
12.2b10(-.f64 y z)
12.2b10(-.f64 y z)
Compiler

Compiled 155 to 67 computations (56.8% saved)

bsearch45.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
4.734205528249676e-29
1.2295355673648566e-26
23.0ms
-2.577223167508378e-58
-6.826098517145378e-59
Compiler

Compiled 20 to 14 computations (30% saved)

regimes1.1s (6.4%)

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

6 calls:

306.0ms
t
305.0ms
x
215.0ms
y
115.0ms
(-.f64 y z)
94.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
15.1b7x
12.7b8y
9.8b3z
17.5b7t
14.7b8(-.f64 y z)
14.7b8(-.f64 y z)
Compiler

Compiled 109 to 55 computations (49.5% saved)

bsearch88.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
56.0ms
4.734205528249676e-29
1.2295355673648566e-26
31.0ms
-1.4362008162118838e+29
-1.3135296490018586e+26
Compiler

Compiled 20 to 14 computations (30% saved)

regimes1.7s (10.1%)

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

6 calls:

392.0ms
x
346.0ms
z
337.0ms
t
241.0ms
(-.f64 y z)
236.0ms
y
Results
ErrorSegmentsBranch
17.6b7x
13.7b7y
14.9b8z
19.6b11t
15.9b8(-.f64 y z)
15.9b8(-.f64 y z)
Compiler

Compiled 102 to 53 computations (48% saved)

bsearch197.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
1.5711684585449842e-9
0.06599417889109227
31.0ms
1.2194197020403468e-67
1.6885834390158392e-65
34.0ms
7.684530991851018e-237
3.071432066833834e-221
37.0ms
-1.8998875642490576e-276
-2.333229906661584e-290
39.0ms
-6.9318790672829485e-109
-1.4036986545844652e-114
35.0ms
-708598.0734719192
-5414.436341462496
Compiler

Compiled 20 to 14 computations (30% saved)

regimes1.2s (7.4%)

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

6 calls:

375.0ms
y
269.0ms
t
261.0ms
z
164.0ms
x
97.0ms
(-.f64 y z)
Results
ErrorSegmentsBranch
17.6b7x
13.7b7y
14.9b8z
19.6b11t
15.9b8(-.f64 y z)
15.9b8(-.f64 y z)
Compiler

Compiled 95 to 51 computations (46.3% saved)

bsearch330.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
1.5711684585449842e-9
0.06599417889109227
34.0ms
1.2194197020403468e-67
1.6885834390158392e-65
37.0ms
7.684530991851018e-237
3.071432066833834e-221
34.0ms
-1.8998875642490576e-276
-2.333229906661584e-290
36.0ms
-6.9318790672829485e-109
-1.4036986545844652e-114
150.0ms
-708598.0734719192
-5414.436341462496
Compiler

Compiled 20 to 14 computations (30% saved)

regimes386.0ms (2.3%)

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

6 calls:

86.0ms
y
77.0ms
(-.f64 y z)
67.0ms
t
53.0ms
(-.f64 y z)
53.0ms
x
Results
ErrorSegmentsBranch
17.6b7x
14.8b6y
15.9b6z
20.8b8t
17.8b6(-.f64 y z)
17.8b6(-.f64 y z)
Compiler

Compiled 89 to 50 computations (43.8% saved)

bsearch99.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
0.07458389614026488
1083.2700441209938
20.0ms
3.976833428826507e-21
1.5711684585449842e-9
19.0ms
1.2194197020403468e-67
1.6885834390158392e-65
20.0ms
-6.632601884930541e-57
-2.0881274047669153e-57
19.0ms
-708598.0734719192
-5414.436341462496
Compiler

Compiled 20 to 14 computations (30% saved)

regimes375.0ms (2.2%)

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

4 calls:

143.0ms
x
96.0ms
y
66.0ms
t
65.0ms
z
Results
ErrorSegmentsBranch
20.5b9x
15.5b6y
15.9b6z
22.1b7t
Compiler

Compiled 70 to 38 computations (45.7% saved)

bsearch122.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
0.07458389614026488
1083.2700441209938
21.0ms
3.976833428826507e-21
1.5711684585449842e-9
21.0ms
1.2194197020403468e-67
1.6885834390158392e-65
24.0ms
-7.977988569416837e-30
-7.570816440874378e-32
31.0ms
-708598.0734719192
-5414.436341462496
Compiler

Compiled 20 to 14 computations (30% saved)

regimes376.0ms (2.2%)

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

4 calls:

110.0ms
y
108.0ms
x
96.0ms
z
59.0ms
t
Results
ErrorSegmentsBranch
21.8b7x
21.2b8y
15.7b7z
22.1b7t
Compiler

Compiled 65 to 36 computations (44.6% saved)

bsearch214.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
36.0ms
54.12798883958508
181.17636756259435
35.0ms
2.0680456929474416e-5
0.002675200800556336
37.0ms
2.636286989969004e-33
4.734205528249676e-29
35.0ms
7.343046838975107e-77
1.6867641172309028e-74
35.0ms
1.479733302295897e-217
3.590246552056494e-215
34.0ms
-35.93358949603736
-6.4500714727901165e-27
Compiler

Compiled 20 to 14 computations (30% saved)

regimes232.0ms (1.4%)

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

4 calls:

68.0ms
t
59.0ms
z
51.0ms
y
49.0ms
x
Results
ErrorSegmentsBranch
22.5b7x
21.4b8y
22.3b7z
24.7b4t
Compiler

Compiled 60 to 34 computations (43.3% saved)

bsearch169.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
55.0ms
3.372733168957754e+129
8.602401343440417e+138
19.0ms
0.06599417889109227
0.07458389614026488
19.0ms
3.976833428826507e-21
1.5711684585449842e-9
18.0ms
1.2194197020403468e-67
1.6885834390158392e-65
20.0ms
-7.977988569416837e-30
-7.570816440874378e-32
19.0ms
-708598.0734719192
-5414.436341462496
19.0ms
-6.827782913210473e+33
-3.13480385921742e+32
Compiler

Compiled 200 to 140 computations (30% saved)

regimes165.0ms (1%)

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

4 calls:

62.0ms
t
41.0ms
x
37.0ms
y
21.0ms
z
Results
ErrorSegmentsBranch
24.5b5x
27.6b6y
26.2b3z
26.7b5t
Compiler

Compiled 55 to 31 computations (43.6% saved)

bsearch63.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
5.730392590783861e-63
3.998168651280632e-52
22.0ms
2.2525723051908783e-210
2.070548960734158e-203
0.0ms
-1.5403506422677324e-277
-1.4736357463459795e-277
21.0ms
-1.2675431190765383e-14
-9.90491435985431e-19
Compiler

Compiled 20 to 14 computations (30% saved)

regimes161.0ms (1%)

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

4 calls:

64.0ms
t
40.0ms
x
32.0ms
y
18.0ms
z
Results
ErrorSegmentsBranch
28.1b7x
28.0b6y
26.2b3z
28.4b8t
Compiler

Compiled 50 to 29 computations (42% saved)

bsearch39.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
2093263379564.7234
15164555619337.232
20.0ms
-1.4362008162118838e+29
-1.3135296490018586e+26
Compiler

Compiled 20 to 14 computations (30% saved)

regimes192.0ms (1.1%)

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

4 calls:

74.0ms
t
45.0ms
x
40.0ms
z
30.0ms
y
Results
ErrorSegmentsBranch
33.1b9x
30.5b6y
32.4b7z
34.3b15t
Compiler

Compiled 45 to 28 computations (37.8% saved)

bsearch186.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
90.0ms
3.372733168957754e+129
8.602401343440417e+138
33.0ms
1083.2700441209938
843047527156.3765
25.0ms
-7.977988569416837e-30
-7.570816440874378e-32
19.0ms
-708598.0734719192
-5414.436341462496
19.0ms
-6.827782913210473e+33
-3.13480385921742e+32
Compiler

Compiled 173 to 131 computations (24.3% saved)

regimes254.0ms (1.5%)

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

4 calls:

77.0ms
x
76.0ms
t
59.0ms
z
39.0ms
y
Results
ErrorSegmentsBranch
34.4b7x
33.7b4y
33.4b5z
39.3b7t
Compiler

Compiled 37 to 24 computations (35.1% saved)

bsearch120.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
15164555619337.232
2412510380196393000.0
29.0ms
214349.02394708229
2093263379564.7234
36.0ms
2.636286989969004e-33
4.734205528249676e-29
37.0ms
-35.93358949603736
-6.4500714727901165e-27
Compiler

Compiled 20 to 14 computations (30% saved)

regimes69.0ms (0.4%)

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

4 calls:

24.0ms
x
20.0ms
t
13.0ms
z
12.0ms
y
Results
ErrorSegmentsBranch
37.6b5x
35.4b3y
35.8b3z
41.8b4t
Compiler

Compiled 33 to 22 computations (33.3% saved)

bsearch38.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
1.2194197020403468e-67
1.6885834390158392e-65
19.0ms
-7.977988569416837e-30
-7.570816440874378e-32
Compiler

Compiled 20 to 14 computations (30% saved)

regimes16.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

Counts
3 → 1
Calls
Call 1
Inputs
x
x
x
Outputs
x
Calls

4 calls:

4.0ms
y
4.0ms
z
4.0ms
x
4.0ms
t
Results
ErrorSegmentsBranch
44.7b1x
44.7b1y
44.7b1z
44.7b1t
Compiler

Compiled 27 to 20 computations (25.9% saved)

simplify83.0ms (0.5%)

Algorithm
egg-herbie
Rules
106×distribute-rgt-neg-in_binary64
104×cancel-sign-sub-inv_binary64
72×neg-sub0_binary64
72×neg-mul-1_binary64
69×distribute-lft-neg-out_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0153825
1198815
2228815
3246815
4267815
5310815
6363815
7417815
8478815
9589815
10722815
11857815
12968815
131012815
141020815
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(if (<=.f64 z -7285694702065645/28269553036454149273332760011886696253239742350009903329945699220681916416) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 (*.f64 y (-.f64 t x)) x) (+.f64 x (*.f64 z (-.f64 x t)))))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (-.f64 x t)) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 (*.f64 y (-.f64 t x)) x) (*.f64 z (-.f64 x t))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (-.f64 (*.f64 y t) (*.f64 y x))))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (*.f64 (-.f64 t x) y)))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5859396586116553/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (*.f64 t (-.f64 y z)) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 (*.f64 y t) x) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (-.f64 x t)) (if (<=.f64 z 3675700357750807/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (-.f64 x (*.f64 x y)) (if (<=.f64 z 2393288093904243/32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358016) (+.f64 (*.f64 y t) x) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) (-.f64 x (*.f64 x y)) (if (<=.f64 z 6103793540886205/295147905179352825856) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7617837199008429/140737488355328) (*.f64 (+.f64 1 z) x) (*.f64 z (-.f64 x t))))))))
(if (<=.f64 y -6827782913210473047452991132532736) (+.f64 (*.f64 y t) x) (if (<=.f64 y -1521702775785249/2147483648) (-.f64 x (*.f64 x y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 (*.f64 y t) x) (if (<=.f64 y 297211359462545/4503599627370496) (*.f64 z x) (if (<=.f64 y 3499999999999999839846965769982410532996250649471952325435170163799140359997645162905054511586961009197242557739429106915922149376) (-.f64 x (*.f64 x y)) (+.f64 (*.f64 y t) x))))))))
(if (<=.f64 x -8034008978562679/633825300114114700748351602688) (-.f64 x (*.f64 x y)) (if (<=.f64 x -5987520928604159/39916806190694396233127454260736771321349025208709150830050944848744237837379281315699159309852714021786848936883849904879448759767871873214783435965696628406400113459021713530350754428887259743653067134890878479866616209102417407777777105368960883150142418137515120832847169904606880198557696) (+.f64 (*.f64 y t) x) (if (<=.f64 x 3335150964760163/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (*.f64 z (neg.f64 t)) (if (<=.f64 x 5308273041895203/926336713898529563388567880069503262826159877325124512315660672063305037119488) (+.f64 (*.f64 y t) x) (-.f64 x (*.f64 x y))))))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (neg.f64 t)) (if (<=.f64 z 8574006802697107/4096) (+.f64 (*.f64 y t) x) (*.f64 z x)))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 y t) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 y (neg.f64 x)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 y (neg.f64 x)) (*.f64 y t))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (neg.f64 t)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) x (if (<=.f64 z 3682488191128957/17179869184) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7764252477100663/512) (*.f64 y t) (*.f64 z x)))))
(if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 y t) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) x (*.f64 y t)))
x
Outputs
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) (neg.f64 z))))
(+.f64 x (-.f64 (*.f64 (-.f64 t x) y) (*.f64 (-.f64 t x) z)))
(+.f64 x (+.f64 (*.f64 (-.f64 t x) y) (*.f64 z (-.f64 x t))))
(-.f64 x (+.f64 (*.f64 (-.f64 t x) z) (*.f64 y (-.f64 x t))))
(+.f64 x (*.f64 (-.f64 y z) (-.f64 t x)))
(+.f64 x (*.f64 (-.f64 t x) (-.f64 y z)))
(-.f64 x (*.f64 (-.f64 t x) (-.f64 z y)))
(if (<=.f64 z -7285694702065645/28269553036454149273332760011886696253239742350009903329945699220681916416) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 (*.f64 y (-.f64 t x)) x) (+.f64 x (*.f64 z (-.f64 x t)))))
(if (<=.f64 z -7285694702065645/28269553036454149273332760011886696253239742350009903329945699220681916416) (+.f64 x (*.f64 z (-.f64 x t))) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 x (*.f64 (-.f64 t x) y)) (+.f64 x (*.f64 z (-.f64 x t)))))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (-.f64 x t)) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 (*.f64 y (-.f64 t x)) x) (*.f64 z (-.f64 x t))))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (-.f64 x t)) (if (<=.f64 z 1055763112029711/22300745198530623141535718272648361505980416) (+.f64 x (*.f64 (-.f64 t x) y)) (*.f64 z (-.f64 x t))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (-.f64 (*.f64 y t) (*.f64 y x))))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (-.f64 (*.f64 t y) (*.f64 x y))))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (-.f64 x (*.f64 t z)) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (-.f64 x (*.f64 t z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (-.f64 (*.f64 t y) (*.f64 x y))))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (*.f64 (-.f64 t x) y)))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (+.f64 x (*.f64 z (neg.f64 t))) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (*.f64 (-.f64 t x) y)))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -7331776051775319/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) (-.f64 x (*.f64 t z)) (if (<=.f64 y -4739840230390005/2494800386918399764570465891296048207584314075544321926878184053046514864836205082231197456865794626361678058555240619054965547485491992075923964747856039275400007091188857095646922151805453733978316695930679904991663513068901087986111069085560055196883901133594695052052948119037930012409856) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 7042449431493261/916444925391198758541401085877594831703095653509460880942126390473954048171292933099049096506388108013739504295007991042380699544226348054414240833330066547856411977855334787272537640367327320839841280263415847919229777715415602675691481187407177449472) (-.f64 x (*.f64 t z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 3798852232998297/2417851639229258349412352) (*.f64 t (-.f64 y z)) (*.f64 (-.f64 t x) y)))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5859396586116553/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (*.f64 t (-.f64 y z)) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5859396586116553/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 t (-.f64 y z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (*.f64 t (-.f64 y z)) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 (*.f64 y t) x) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 x (*.f64 t y)) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 y -1521702775785249/2147483648) (*.f64 (-.f64 t x) y) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 t (neg.f64 z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 x (*.f64 t y)) (if (<=.f64 y 5374336109842187/72057594037927936) (*.f64 z (-.f64 x t)) (*.f64 (-.f64 t x) y))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (-.f64 x t)) (if (<=.f64 z 3675700357750807/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (-.f64 x (*.f64 x y)) (if (<=.f64 z 2393288093904243/32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358016) (+.f64 (*.f64 y t) x) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) (-.f64 x (*.f64 x y)) (if (<=.f64 z 6103793540886205/295147905179352825856) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7617837199008429/140737488355328) (*.f64 (+.f64 1 z) x) (*.f64 z (-.f64 x t))))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (-.f64 x t)) (if (<=.f64 z 3675700357750807/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (-.f64 x (*.f64 x y)) (if (<=.f64 z 2393288093904243/32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358016) (+.f64 x (*.f64 t y)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) (-.f64 x (*.f64 x y)) (if (<=.f64 z 6103793540886205/295147905179352825856) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7617837199008429/140737488355328) (*.f64 x (+.f64 z 1)) (*.f64 z (-.f64 x t))))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (-.f64 x t)) (if (<=.f64 z 3675700357750807/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (-.f64 x (*.f64 x y)) (if (<=.f64 z 2393288093904243/32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358016) (+.f64 x (*.f64 t y)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) (-.f64 x (*.f64 x y)) (if (<=.f64 z 6103793540886205/295147905179352825856) (*.f64 t (neg.f64 z)) (if (<=.f64 z 7617837199008429/140737488355328) (*.f64 x (+.f64 z 1)) (*.f64 z (-.f64 x t))))))))
(if (<=.f64 y -6827782913210473047452991132532736) (+.f64 (*.f64 y t) x) (if (<=.f64 y -1521702775785249/2147483648) (-.f64 x (*.f64 x y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 (+.f64 1 z) x) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 (*.f64 y t) x) (if (<=.f64 y 297211359462545/4503599627370496) (*.f64 z x) (if (<=.f64 y 3499999999999999839846965769982410532996250649471952325435170163799140359997645162905054511586961009197242557739429106915922149376) (-.f64 x (*.f64 x y)) (+.f64 (*.f64 y t) x))))))))
(if (<=.f64 y -6827782913210473047452991132532736) (+.f64 x (*.f64 t y)) (if (<=.f64 y -1521702775785249/2147483648) (-.f64 x (*.f64 x y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 x (*.f64 t y)) (if (<=.f64 y 297211359462545/4503599627370496) (*.f64 x z) (if (<=.f64 y 3499999999999999839846965769982410532996250649471952325435170163799140359997645162905054511586961009197242557739429106915922149376) (-.f64 x (*.f64 x y)) (+.f64 x (*.f64 t y)))))))))
(if (<=.f64 y -6827782913210473047452991132532736) (+.f64 x (*.f64 t y)) (if (<=.f64 y -1521702775785249/2147483648) (-.f64 x (*.f64 x y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 t (neg.f64 z)) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) (*.f64 x (+.f64 z 1)) (if (<=.f64 y 5286118328169513/1329227995784915872903807060280344576) (+.f64 x (*.f64 t y)) (if (<=.f64 y 297211359462545/4503599627370496) (*.f64 x z) (if (<=.f64 y 3499999999999999839846965769982410532996250649471952325435170163799140359997645162905054511586961009197242557739429106915922149376) (-.f64 x (*.f64 x y)) (+.f64 x (*.f64 t y)))))))))
(if (<=.f64 x -8034008978562679/633825300114114700748351602688) (-.f64 x (*.f64 x y)) (if (<=.f64 x -5987520928604159/39916806190694396233127454260736771321349025208709150830050944848744237837379281315699159309852714021786848936883849904879448759767871873214783435965696628406400113459021713530350754428887259743653067134890878479866616209102417407777777105368960883150142418137515120832847169904606880198557696) (+.f64 (*.f64 y t) x) (if (<=.f64 x 3335150964760163/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (*.f64 z (neg.f64 t)) (if (<=.f64 x 5308273041895203/926336713898529563388567880069503262826159877325124512315660672063305037119488) (+.f64 (*.f64 y t) x) (-.f64 x (*.f64 x y))))))
(if (<=.f64 x -8034008978562679/633825300114114700748351602688) (-.f64 x (*.f64 x y)) (if (<=.f64 x -5987520928604159/39916806190694396233127454260736771321349025208709150830050944848744237837379281315699159309852714021786848936883849904879448759767871873214783435965696628406400113459021713530350754428887259743653067134890878479866616209102417407777777105368960883150142418137515120832847169904606880198557696) (+.f64 x (*.f64 t y)) (if (<=.f64 x 3335150964760163/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (*.f64 z (neg.f64 t)) (if (<=.f64 x 5308273041895203/926336713898529563388567880069503262826159877325124512315660672063305037119488) (+.f64 x (*.f64 t y)) (-.f64 x (*.f64 x y))))))
(if (<=.f64 x -8034008978562679/633825300114114700748351602688) (-.f64 x (*.f64 x y)) (if (<=.f64 x -5987520928604159/39916806190694396233127454260736771321349025208709150830050944848744237837379281315699159309852714021786848936883849904879448759767871873214783435965696628406400113459021713530350754428887259743653067134890878479866616209102417407777777105368960883150142418137515120832847169904606880198557696) (+.f64 x (*.f64 t y)) (if (<=.f64 x 3335150964760163/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (*.f64 t (neg.f64 z)) (if (<=.f64 x 5308273041895203/926336713898529563388567880069503262826159877325124512315660672063305037119488) (+.f64 x (*.f64 t y)) (-.f64 x (*.f64 x y))))))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (neg.f64 t)) (if (<=.f64 z 8574006802697107/4096) (+.f64 (*.f64 y t) x) (*.f64 z x)))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 z (neg.f64 t)) (if (<=.f64 z 8574006802697107/4096) (+.f64 x (*.f64 t y)) (*.f64 x z)))
(if (<=.f64 z -143620081621188378296357748736) (*.f64 t (neg.f64 z)) (if (<=.f64 z 8574006802697107/4096) (+.f64 x (*.f64 t y)) (*.f64 x z)))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 y t) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 y (neg.f64 x)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 y (neg.f64 x)) (*.f64 y t))))))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 t y) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 y (neg.f64 x)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 y (neg.f64 x)) (*.f64 t y))))))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 t y) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 x (neg.f64 y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 z (neg.f64 t)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 x (neg.f64 y)) (*.f64 t y))))))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 t y) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 x (neg.f64 y)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 t (neg.f64 z)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 x (neg.f64 y)) (*.f64 t y))))))
(if (<=.f64 y -6827782913210473047452991132532736) (*.f64 t y) (if (<=.f64 y -1521702775785249/2147483648) (*.f64 y (neg.f64 x)) (if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 t (neg.f64 z)) (if (<=.f64 y 4764272038129813/4398046511104) x (if (<=.f64 y 40000000000000002346562450802960479021848171455589217552374854182039285408215262438019101431845574359216121503428029997507208414467457024) (*.f64 y (neg.f64 x)) (*.f64 t y))))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (neg.f64 t)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) x (if (<=.f64 z 3682488191128957/17179869184) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7764252477100663/512) (*.f64 y t) (*.f64 z x)))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 z (neg.f64 t)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) x (if (<=.f64 z 3682488191128957/17179869184) (*.f64 z (neg.f64 t)) (if (<=.f64 z 7764252477100663/512) (*.f64 t y) (*.f64 x z)))))
(if (<=.f64 z -2528601566631847/70368744177664) (*.f64 t (neg.f64 z)) (if (<=.f64 z 3852937752313857/1461501637330902918203684832716283019655932542976) x (if (<=.f64 z 3682488191128957/17179869184) (*.f64 t (neg.f64 z)) (if (<=.f64 z 7764252477100663/512) (*.f64 t y) (*.f64 x z)))))
(if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 y t) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) x (*.f64 y t)))
(if (<=.f64 y -5693282889067351/713623846352979940529142984724747568191373312) (*.f64 t y) (if (<=.f64 y 3701451127688983/30354201441027016733116592294117482916287606860189680019559568902170379456331382784) x (*.f64 t y)))
x
Compiler

Compiled 628 to 342 computations (45.5% saved)

soundness0.0ms (0%)

end225.0ms (1.3%)

Compiler

Compiled 568 to 223 computations (60.7% saved)

Profiling

Loading profile data...