Details

Time bar (total: 7.5s)

analyze534.0ms (7.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
0%0%99.9%0.1%0%0%0%7
0%0%99.9%0.1%0%0%0%8
16%15.6%81.9%0.1%2.3%0%0%9
22%21.1%74.5%0.1%4.3%0%0%10
26.6%25.4%69.8%0.1%4.7%0%0%11
43.2%39.2%51.6%0.1%9.1%0%0%12
Compiler

Compiled 17 to 13 computations (23.5% saved)

sample1.5s (19.4%)

Results
1.3s8256×body256valid
173.0ms1287×body256infinite
Bogosity

preprocess129.0ms (1.7%)

Algorithm
egg-herbie
Rules
788×times-frac_binary64
588×fma-def_binary64
575×div-sub_binary64
438×sub-neg_binary64
312×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03076
17068
217960
349760
4121960
5286752
6550152
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 y (*.f64 x 3/4)) z)) x))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 z (*.f64 y 3/4)) x)) y))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 z 3/4)) y)) z))
Outputs
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
(+.f64 1 (/.f64 (*.f64 4 (+.f64 x (-.f64 (*.f64 y 3/4) z))) y))
(+.f64 1 (*.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 x) z)))
(fma.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 x) z) 1)
(fma.f64 (-.f64 (fma.f64 y 3/4 x) z) (/.f64 4 y) 1)
(+.f64 4 (*.f64 (-.f64 z x) (/.f64 -4 y)))
(+.f64 4 (*.f64 (/.f64 4 y) (-.f64 x z)))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 y (*.f64 x 3/4)) z)) x))
(+.f64 1 (/.f64 4 (/.f64 x (-.f64 (+.f64 y (*.f64 x 3/4)) z))))
(+.f64 1 (*.f64 (/.f64 4 x) (-.f64 (fma.f64 x 3/4 y) z)))
(fma.f64 (/.f64 4 x) (-.f64 (fma.f64 x 3/4 y) z) 1)
(fma.f64 (-.f64 (fma.f64 x 3/4 y) z) (/.f64 4 x) 1)
(fma.f64 4 (/.f64 (-.f64 (fma.f64 x 3/4 y) z) x) 1)
(+.f64 4 (*.f64 (/.f64 4 x) (-.f64 y z)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 y z) x)))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 z (*.f64 y 3/4)) x)) y))
(+.f64 1 (/.f64 4 (/.f64 y (-.f64 (+.f64 (*.f64 y 3/4) z) x))))
(+.f64 1 (*.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 z) x)))
(fma.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 z) x) 1)
(fma.f64 (-.f64 (fma.f64 y 3/4 z) x) (/.f64 4 y) 1)
(fma.f64 4 (/.f64 (-.f64 (fma.f64 y 3/4 z) x) y) 1)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 z x) y)))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 z 3/4)) y)) z))
(+.f64 1 (/.f64 4 (/.f64 z (+.f64 x (-.f64 (*.f64 3/4 z) y)))))
(+.f64 1 (*.f64 (/.f64 4 z) (-.f64 (fma.f64 3/4 z x) y)))
(fma.f64 (/.f64 4 z) (fma.f64 3/4 z (-.f64 x y)) 1)
(fma.f64 (-.f64 (fma.f64 3/4 z x) y) (/.f64 4 z) 1)
(fma.f64 4 (/.f64 (-.f64 (fma.f64 3/4 z x) y) z) 1)
(-.f64 4 (*.f64 (/.f64 4 z) (-.f64 y x)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x y) z)))
Compiler

Compiled 19 to 15 computations (21.1% saved)

simplify91.0ms (1.2%)

Algorithm
egg-herbie
Rules
719×div-sub_binary64
690×fma-neg_binary64
598×times-frac_binary64
477×fma-def_binary64
273×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01319
12517
25515
314015
434715
574611
6145511
7270611
8449011
9672811
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
Outputs
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
(+.f64 1 (/.f64 4 (/.f64 y (+.f64 x (-.f64 (*.f64 y 3/4) z)))))
(+.f64 1 (*.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 x) z)))
(fma.f64 (/.f64 4 y) (-.f64 (fma.f64 y 3/4 x) z) 1)
(fma.f64 (-.f64 (fma.f64 y 3/4 x) z) (/.f64 4 y) 1)
(fma.f64 (/.f64 4 y) (-.f64 x z) 4)

eval1.0ms (0%)

Compiler

Compiled 24 to 17 computations (29.2% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 27 to 20 computations (25.9% saved)

localize21.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (+.f64 x (*.f64 y 3/4)) z)
0.0b
(+.f64 x (*.f64 y 3/4))
0.6b
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
Compiler

Compiled 57 to 37 computations (35.1% saved)

series20.0ms (0.3%)

Counts
3 → 96
Calls

24 calls:

TimeVariablePointExpression
8.0ms
z
@0
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
1.0ms
y
@-inf
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
1.0ms
x
@0
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
1.0ms
y
@inf
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
1.0ms
x
@inf
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)

rewrite101.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
638×log-prod_binary64
512×fma-def_binary64
339×pow2_binary64
260×fma-neg_binary64
233×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01133
125227
2371227
Stop Event
node limit
Counts
3 → 237
Calls
Call 1
Inputs
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
(+.f64 x (*.f64 y 3/4))
(-.f64 (+.f64 x (*.f64 y 3/4)) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1 (/.f64 y (fma.f64 y 3/4 (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (fma.f64 y 3/4 (-.f64 x z)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y 3/4 (-.f64 x z)) (*.f64 4 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))) (pow.f64 (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))) 2) (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) 2) (*.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (sqrt.f64 (/.f64 y (fma.f64 y 3/4 (-.f64 x z))))) (/.f64 2 (sqrt.f64 (/.f64 y (fma.f64 y 3/4 (-.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) (*.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 y 3/4 (-.f64 x z)) -4) (/.f64 1 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) 1) (/.f64 4 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 y) (fma.f64 y 3/4 (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) 2) 1) (/.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) 1) (/.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (pow.f64 (cbrt.f64 y) 2)) (/.f64 (fma.f64 y 3/4 (-.f64 x z)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) (pow.f64 (cbrt.f64 y) 2)) (/.f64 4 (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2)) (/.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) 2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) (pow.f64 (cbrt.f64 y) 2)) (/.f64 (*.f64 2 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z)))) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (sqrt.f64 y)) (/.f64 (fma.f64 y 3/4 (-.f64 x z)) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) (sqrt.f64 y)) (/.f64 4 (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 y)) (/.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) 2) (sqrt.f64 y)) (/.f64 (cbrt.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z)))) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (sqrt.f64 (/.f64 y (fma.f64 y 3/4 (-.f64 x z))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/4 (/.f64 y (fma.f64 y 3/4 (-.f64 x z)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) 3) (pow.f64 y 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 1/4 (/.f64 y (fma.f64 y 3/4 (-.f64 x z)))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 4 (fma.f64 y 3/4 (-.f64 x z))) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 4 (/.f64 (fma.f64 y 3/4 (-.f64 x z)) y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 y 3/4 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (+.f64 x (*.f64 -3/4 y))) (/.f64 (*.f64 9/16 (*.f64 y y)) (+.f64 x (*.f64 -3/4 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y 3/4 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y 3/4 x)) (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2) (cbrt.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y))) (/.f64 1 (+.f64 x (*.f64 -3/4 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x)) (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (*.f64 -3/4 y)) (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 9/16 (*.f64 y y) (-.f64 (*.f64 x x) (*.f64 x (*.f64 y 3/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y))) (+.f64 x (*.f64 -3/4 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3))) (neg.f64 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y)))) (neg.f64 (+.f64 x (*.f64 -3/4 y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 9/16 (*.f64 y y)) (*.f64 x x)) (-.f64 (*.f64 y 3/4) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y 3/4 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y 3/4 x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y 3/4 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y 3/4 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x)) (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x (*.f64 -3/4 y)) (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y 3/4 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (pow.f64 (exp.f64 3/4) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (+.f64 1 (expm1.f64 (*.f64 y 3/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (+.f64 1 (expm1.f64 (*.f64 y 3/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 3/4))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 3/4) y) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y 3/4))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y 3/4 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y 3/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 y 3/4 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 y 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 3/4 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3/4 y x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 3/4) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 y 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 3/4) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y 3/4)) (cbrt.f64 (*.f64 9/16 (*.f64 y y))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9/16 (*.f64 y y))) (cbrt.f64 (*.f64 y 3/4)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 y 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 y 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) 3/4) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 3/4)) (sqrt.f64 (*.f64 y 3/4)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 y 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) 3/4) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/4 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/4 (sqrt.f64 y)) (sqrt.f64 y) x)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 3/4) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 3/4 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 3/4 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 3/4 (-.f64 x z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 3/4 (-.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 y 3/4 (-.f64 x z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 z) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y 3/4) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 y 3/4 (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 y 3/4 (-.f64 x z)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 y 3/4 (-.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 y 3/4 (-.f64 x z))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 y 3/4 (-.f64 x z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y 3/4 (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y 3/4 (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z)) (/.f64 1 (fma.f64 y 3/4 (+.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (-.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2)) (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 y 3/4 (+.f64 x z)) (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3)) (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z)) (fma.f64 y 3/4 (+.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3))) (neg.f64 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z))) (neg.f64 (fma.f64 y 3/4 (+.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (-.f64 (*.f64 y 3/4) z) 3)) (fma.f64 x x (-.f64 (pow.f64 (-.f64 (*.f64 y 3/4) z) 2) (*.f64 x (-.f64 (*.f64 y 3/4) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 (neg.f64 z) 3)) (+.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (-.f64 (pow.f64 (neg.f64 z) 2) (*.f64 (fma.f64 y 3/4 x) (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 (-.f64 (*.f64 y 3/4) z) 2)) (-.f64 x (-.f64 (*.f64 y 3/4) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (pow.f64 (neg.f64 z) 2)) (-.f64 (fma.f64 y 3/4 x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2)) (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 y 3/4 (+.f64 x z)) (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 (-.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x))) (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (fma.f64 y 3/4 x)) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x))) (+.f64 1 (expm1.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (-.f64 (*.f64 y 3/4) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (/.f64 (pow.f64 (exp.f64 3/4) y) (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (/.f64 (pow.f64 (exp.f64 3/4) y) (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x))) (exp.f64 (neg.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 y 3/4 x)) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x))) (/.f64 1 (exp.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (exp.f64 (fma.f64 y 3/4 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (exp.f64 (fma.f64 y 3/4 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 z)) (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 z)) (+.f64 1 (expm1.f64 (fma.f64 y 3/4 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y 3/4) z)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 3/4) y) (exp.f64 z)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (-.f64 (*.f64 y 3/4) z)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 3/4) y) (exp.f64 z)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y 3/4 (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 y 3/4 (-.f64 x z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 3/4 (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3/4 y (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 3/4) 1 (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y 3/4 x) 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y 3/4 x) 1 (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y 3/4 (-.f64 x z)) 1 (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y 3/4 (-.f64 x z)) 1 (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 y 3/4 (-.f64 x z)) 1 (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y 3/4) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y 3/4 x) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y 3/4 x) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y 3/4 (-.f64 x z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y 3/4 (-.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 y 3/4 (-.f64 x z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 z) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 y 3/4) z) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 z) 2) (neg.f64 (cbrt.f64 z)) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 y 3/4 (-.f64 x z)) 2)) (cbrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y 3/4)) (cbrt.f64 (*.f64 9/16 (*.f64 y y))) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9/16 (*.f64 y y))) (cbrt.f64 (*.f64 y 3/4)) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 y 3/4 x)) (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 y 3/4 x)) (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2) (cbrt.f64 (fma.f64 y 3/4 x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 y 3/4 x)) 2) (cbrt.f64 (fma.f64 y 3/4 x)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) 3/4) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 z) (neg.f64 (sqrt.f64 z)) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (sqrt.f64 (fma.f64 y 3/4 (-.f64 x z))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 y 3/4)) (sqrt.f64 (*.f64 y 3/4)) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (-.f64 (*.f64 y 3/4) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 (-.f64 (*.f64 y 3/4) z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 (fma.f64 y 3/4 x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 (fma.f64 y 3/4 x)) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) 3/4) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 3) (pow.f64 z 3)) (/.f64 1 (fma.f64 z (fma.f64 y 3/4 (+.f64 x z)) (pow.f64 (fma.f64 y 3/4 x) 2))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 27/64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 1 (fma.f64 (*.f64 y 3/4) (-.f64 (*.f64 y 3/4) x) (*.f64 x x))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z)) (/.f64 1 (fma.f64 y 3/4 (+.f64 x z))) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z)) (/.f64 1 (fma.f64 y 3/4 (+.f64 x z))) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 y 3/4 x) 2) (*.f64 z z)) (/.f64 1 (fma.f64 y 3/4 (+.f64 x z))) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y))) (/.f64 1 (+.f64 x (*.f64 -3/4 y))) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (*.f64 9/16 (*.f64 y y))) (/.f64 1 (+.f64 x (*.f64 -3/4 y))) (*.f64 (neg.f64 z) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 y 3/4) z)) 2) (cbrt.f64 (-.f64 (*.f64 y 3/4) z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 z)) 2) (cbrt.f64 (neg.f64 z)) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 y 3/4) z)) (sqrt.f64 (-.f64 (*.f64 y 3/4) z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 z (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 3/4) (sqrt.f64 y) (sqrt.f64 z)) (-.f64 (sqrt.f64 (*.f64 y 3/4)) (sqrt.f64 z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (-.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (fma.f64 (neg.f64 z) 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (-.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (fma.f64 (neg.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 z) 2) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (-.f64 (sqrt.f64 (fma.f64 y 3/4 x)) (sqrt.f64 z)) (+.f64 (neg.f64 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z) (fma.f64 y 3/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/4 (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (-.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/4 (sqrt.f64 y)) (sqrt.f64 y) (-.f64 x z))))))

simplify145.0ms (1.9%)

Algorithm
egg-herbie
Rules
646×fma-def_binary64
490×div-sub_binary64
452×fma-neg_binary64
354×times-frac_binary64
341×sub-neg_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
035930
189930
2181709
3306709
4520709
5886706
61702706
72851706
84976706
96763706
107813706
Stop Event
node limit
Counts
333 → 264
Calls
Call 1
Inputs
(*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y))
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(*.f64 4 (/.f64 x y))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (/.f64 x y))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
3
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
3
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y))
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(*.f64 -4 (/.f64 z y))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 -4 (/.f64 z y))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
x
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
x
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
x
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 3/4 y) x)
(-.f64 (*.f64 3/4 y) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
x
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
x
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 x z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(*.f64 3/4 y)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(*.f64 3/4 y)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(+.f64 (*.f64 3/4 y) x)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
Outputs
(*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y))
(fma.f64 (/.f64 z y) -4 3)
(fma.f64 z (/.f64 -4 y) 3)
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 (-.f64 (*.f64 3/4 y) z) y)) (*.f64 4 (/.f64 x y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 4 (/.f64 x y))
(/.f64 4 (/.f64 y x))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 4 (/.f64 x y))
(/.f64 4 (/.f64 y x))
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 x y)) (*.f64 4 (-.f64 3/4 (/.f64 z y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 4 (/.f64 (-.f64 x z) y))
(*.f64 (-.f64 x z) (/.f64 4 y))
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
3
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
3
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 3 (*.f64 4 (/.f64 (-.f64 x z) y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y))
(*.f64 4 (/.f64 (fma.f64 3/4 y x) y))
(fma.f64 4 (/.f64 x y) 3)
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 4 (/.f64 (+.f64 (*.f64 3/4 y) x) y)) (*.f64 -4 (/.f64 z y)))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 -4 (/.f64 z y))
(*.f64 (/.f64 z y) -4)
(*.f64 z (/.f64 -4 y))
(/.f64 z (/.f64 y -4))
(/.f64 -4 (/.f64 y z))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 -4 (/.f64 z y))
(*.f64 (/.f64 z y) -4)
(*.f64 z (/.f64 -4 y))
(/.f64 z (/.f64 y -4))
(/.f64 -4 (/.f64 y z))
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (+.f64 3/4 (/.f64 x y))))
(*.f64 4 (+.f64 (/.f64 (-.f64 (*.f64 3/4 y) z) y) (/.f64 x y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 3)
(fma.f64 -4 (/.f64 (-.f64 z x) y) 3)
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
x
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
x
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
x
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(*.f64 3/4 y)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(-.f64 (*.f64 3/4 y) z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
x
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
x
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 x z)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(*.f64 3/4 y)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(*.f64 3/4 y)
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(-.f64 (+.f64 (*.f64 3/4 y) x) z)
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 3/4 y) x)
(fma.f64 3/4 y x)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 3/4 y) x))
(-.f64 (fma.f64 3/4 y x) z)
(-.f64 x (fma.f64 y -3/4 z))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (/.f64 4 y) (-.f64 x z) 4)
Compiler

Compiled 21 to 11 computations (47.6% saved)

series6.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite73.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
973×pow1_binary64
909×add-log-exp_binary64
909×log1p-expm1-u_binary64
909×expm1-log1p-u_binary64
92×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify109.0ms (1.5%)

Algorithm
egg-herbie
Rules
890×fma-neg_binary64
559×fma-def_binary64
259×cancel-sign-sub-inv_binary64
139×distribute-rgt-in_binary64
113×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018411
137353
278353
3130353
4239353
5416353
6750353
71210353
81917353
92769353
103451353
113623353
123656353
133661353
143665353
Stop Event
saturated
Counts
58 → 35
Calls
Call 1
Inputs
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
4
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
4
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(*.f64 4 (/.f64 x y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(*.f64 4 (/.f64 x y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(*.f64 -4 (/.f64 z y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(*.f64 -4 (/.f64 z y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
Outputs
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
4
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
4
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(+.f64 4 (/.f64 (*.f64 -4 z) y))
(fma.f64 -4 (/.f64 z y) 4)
(fma.f64 z (/.f64 -4 y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(*.f64 4 (/.f64 x y))
(/.f64 (*.f64 4 x) y)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(*.f64 4 (/.f64 x y))
(/.f64 (*.f64 4 x) y)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (*.f64 4 (/.f64 x y)))
(fma.f64 4 (/.f64 x y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(*.f64 -4 (/.f64 z y))
(/.f64 (*.f64 -4 z) y)
(*.f64 z (/.f64 -4 y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(*.f64 -4 (/.f64 z y))
(/.f64 (*.f64 -4 z) y)
(*.f64 z (/.f64 -4 y))
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)
(+.f64 4 (+.f64 (*.f64 -4 (/.f64 z y)) (*.f64 4 (/.f64 x y))))
(+.f64 4 (*.f64 4 (/.f64 (-.f64 x z) y)))
(fma.f64 4 (/.f64 (-.f64 x z) y) 4)

eval144.0ms (1.9%)

Compiler

Compiled 5367 to 3411 computations (36.4% saved)

prune54.0ms (0.7%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2927299
Fresh000
Picked101
Done101
Total2947301
Error
0b
Counts
301 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.1b
(*.f64 4 (/.f64 (-.f64 x z) y))
46.0b
(*.f64 z (/.f64 -4 y))
46.0b
(*.f64 -4 (/.f64 z y))
17.4b
(+.f64 4 (*.f64 4 (/.f64 x y)))
42.6b
(/.f64 (*.f64 4 x) y)
20.6b
(+.f64 4 (*.f64 -4 (/.f64 z y)))
37.7b
4
Compiler

Compiled 112 to 86 computations (23.2% saved)

localize33.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 11 computations (47.6% saved)

series6.0ms (0.1%)

Counts
2 → 6
Calls

12 calls:

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

rewrite101.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
887×pow1_binary64
830×add-log-exp_binary64
830×log1p-expm1-u_binary64
830×expm1-log1p-u_binary64
815×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify13.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/l*_binary64
associate-*r/_binary64
associate-*l/_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0624
1924
21324
31724
41824
Stop Event
saturated
Counts
59 → 55
Calls
Call 1
Inputs
4
(*.f64 4 (/.f64 x y))
(*.f64 4 (/.f64 x y))
(*.f64 4 (/.f64 x y))
4
4
Outputs
4
(*.f64 4 (/.f64 x y))
(*.f64 4 (/.f64 x y))
(*.f64 4 (/.f64 x y))
4
4

localize8.0ms (0.1%)

Compiler

Compiled 14 to 7 computations (50% saved)

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 z (/.f64 -4 y))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series5.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(*.f64 z (/.f64 -4 y))
1.0ms
z
@0
(*.f64 z (/.f64 -4 y))
1.0ms
y
@0
(*.f64 z (/.f64 -4 y))
1.0ms
z
@inf
(*.f64 z (/.f64 -4 y))
1.0ms
z
@-inf
(*.f64 z (/.f64 -4 y))

rewrite92.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
615×pow1_binary64
573×add-log-exp_binary64
573×log1p-expm1-u_binary64
573×expm1-log1p-u_binary64
562×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify16.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/l*_binary64
associate-*r/_binary64
associate-*l/_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06168
19168
213168
317168
418168
Stop Event
saturated
Counts
44 → 21
Calls
Call 1
Inputs
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
Outputs
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))
(*.f64 -4 (/.f64 z y))

localize6.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 8 computations (63.6% saved)

series5.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

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

rewrite64.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
894×pow1_binary64
835×add-log-exp_binary64
835×log1p-expm1-u_binary64
835×expm1-log1p-u_binary64
816×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify38.0ms (0.5%)

Algorithm
egg-herbie
Rules
186×fma-def_binary64
172×fma-neg_binary64
64×cancel-sign-sub-inv_binary64
36×distribute-rgt-in_binary64
32×unsub-neg_binary64
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
09246
114210
224210
334210
447210
571210
6119210
7173210
8249210
9381210
10637156
11922156
12983156
131036156
Stop Event
saturated
Counts
57 → 38
Calls
Call 1
Inputs
(*.f64 -1 (/.f64 z y))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(*.f64 -1 (/.f64 z y))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(*.f64 -1 (/.f64 z y))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
Outputs
(*.f64 -1 (/.f64 z y))
(neg.f64 (/.f64 z y))
(/.f64 (neg.f64 z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(/.f64 x y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(*.f64 -1 (/.f64 z y))
(neg.f64 (/.f64 z y))
(/.f64 (neg.f64 z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(*.f64 -1 (/.f64 z y))
(neg.f64 (/.f64 z y))
(/.f64 (neg.f64 z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)
(+.f64 (/.f64 x y) (*.f64 -1 (/.f64 z y)))
(+.f64 (neg.f64 (/.f64 z y)) (/.f64 x y))
(-.f64 (/.f64 x y) (/.f64 z y))
(/.f64 (-.f64 x z) y)

eval42.0ms (0.6%)

Compiler

Compiled 1255 to 737 computations (41.3% saved)

prune40.0ms (0.5%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New1131114
Fresh112
Picked011
Done044
Total1147121
Error
0b
Counts
121 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.1b
(*.f64 4 (/.f64 (-.f64 x z) y))
46.0b
(*.f64 z (/.f64 -4 y))
46.0b
(*.f64 -4 (/.f64 z y))
17.4b
(+.f64 4 (*.f64 4 (/.f64 x y)))
42.6b
(/.f64 (*.f64 4 x) y)
20.6b
(+.f64 4 (*.f64 -4 (/.f64 z y)))
37.7b
4
Compiler

Compiled 58 to 45 computations (22.4% saved)

localize17.0ms (0.2%)

Compiler

Compiled 22 to 12 computations (45.5% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune7.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done055
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.1b
(*.f64 4 (/.f64 (-.f64 x z) y))
46.0b
(*.f64 z (/.f64 -4 y))
46.0b
(*.f64 -4 (/.f64 z y))
17.4b
(+.f64 4 (*.f64 4 (/.f64 x y)))
42.6b
(/.f64 (*.f64 4 x) y)
20.6b
(+.f64 4 (*.f64 -4 (/.f64 z y)))
37.7b
4
Compiler

Compiled 58 to 45 computations (22.4% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune6.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
26.1b
(*.f64 4 (/.f64 (-.f64 x z) y))
46.0b
(*.f64 z (/.f64 -4 y))
46.0b
(*.f64 -4 (/.f64 z y))
17.4b
(+.f64 4 (*.f64 4 (/.f64 x y)))
42.6b
(/.f64 (*.f64 4 x) y)
20.6b
(+.f64 4 (*.f64 -4 (/.f64 z y)))
37.7b
4
Compiler

Compiled 58 to 45 computations (22.4% saved)

regimes128.0ms (1.7%)

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

7 calls:

43.0ms
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
16.0ms
y
14.0ms
x
14.0ms
z
12.0ms
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
0.1b1(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
0.1b1(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
0.1b1(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
Compiler

Compiled 134 to 93 computations (30.6% saved)

regimes65.0ms (0.9%)

Counts
9 → 1
Calls
Call 1
Inputs
4
4
(*.f64 z (/.f64 -4 y))
(*.f64 -4 (/.f64 z y))
(/.f64 (*.f64 4 x) y)
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
Outputs
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
Calls

5 calls:

13.0ms
x
13.0ms
z
13.0ms
y
11.0ms
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
10.0ms
(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
Results
ErrorSegmentsBranch
0.6b1x
0.6b1y
0.6b1z
0.6b1(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
0.6b1(/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y)
Compiler

Compiled 96 to 67 computations (30.2% saved)

regimes214.0ms (2.9%)

Counts
8 → 9
Calls
Call 1
Inputs
4
4
(*.f64 z (/.f64 -4 y))
(*.f64 -4 (/.f64 z y))
(/.f64 (*.f64 4 x) y)
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
Outputs
(+.f64 4 (*.f64 4 (/.f64 x y)))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 -4 (/.f64 z y)))
(+.f64 4 (*.f64 4 (/.f64 x y)))
Calls

3 calls:

107.0ms
y
54.0ms
z
49.0ms
x
Results
ErrorSegmentsBranch
7.1b3x
6.3b9y
6.6b5z
Compiler

Compiled 53 to 36 computations (32.1% saved)

bsearch539.0ms (7.2%)

Algorithm
binary-search
Steps
TimeLeftRight
42.0ms
4.343291097166859e+167
3.394914433892294e+173
41.0ms
1.0684095434469317e+123
4.6341706522790656e+123
48.0ms
3.609789188594275e+59
2.0040462063884043e+64
41.0ms
1.607746740903345e+42
4.8761013143786347e+42
100.0ms
-1.7037910270426498e-85
-4.048004425237211e-100
178.0ms
-2.5367303985835207e-55
-2.1487396303690497e-60
42.0ms
-8.045502531107272e-8
-2.3925423309054102e-8
47.0ms
-3.9913364410382756e+98
-1.0103280494669297e+98
Compiler

Compiled 440 to 340 computations (22.7% saved)

regimes168.0ms (2.2%)

Counts
7 → 5
Calls
Call 1
Inputs
4
4
(*.f64 z (/.f64 -4 y))
(*.f64 -4 (/.f64 z y))
(/.f64 (*.f64 4 x) y)
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
Outputs
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(*.f64 4 (/.f64 (-.f64 x z) y))
(+.f64 4 (*.f64 4 (/.f64 x y)))
(*.f64 4 (/.f64 (-.f64 x z) y))
Calls

3 calls:

70.0ms
x
52.0ms
z
42.0ms
y
Results
ErrorSegmentsBranch
13.4b7x
10.4b3y
9.0b5z
Compiler

Compiled 46 to 32 computations (30.4% saved)

bsearch161.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
42.0ms
4.24678093690221e+101
8.543312130482361e+104
40.0ms
6.069351854844009e+43
2.041775111534084e+44
39.0ms
3.173309821691398e-59
2.2485128793498566e-57
39.0ms
-2.3215100153730616e+27
-1.1124531371981533e+21
Compiler

Compiled 22 to 17 computations (22.7% saved)

regimes221.0ms (3%)

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

3 calls:

85.0ms
x
85.0ms
z
48.0ms
y
Results
ErrorSegmentsBranch
17.7b9x
13.2b5y
17.1b9z
Compiler

Compiled 39 to 27 computations (30.8% saved)

bsearch162.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
40.0ms
1.1273240255917176e+211
2.417472272610528e+212
40.0ms
2.6382168105034965e+162
6.568400125860625e+163
40.0ms
1.0684095434469317e+123
4.6341706522790656e+123
41.0ms
-8.343911445290791e+141
-2.6172699389763023e+137
Compiler

Compiled 22 to 17 computations (22.7% saved)

regimes217.0ms (2.9%)

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

3 calls:

93.0ms
x
79.0ms
y
43.0ms
z
Results
ErrorSegmentsBranch
22.9b11x
25.1b8y
25.5b5z
Compiler

Compiled 32 to 23 computations (28.1% saved)

bsearch938.0ms (12.5%)

Algorithm
10×binary-search
Steps
TimeLeftRight
124.0ms
5.739276645616698e+155
9.845778558979777e+175
613.0ms
3.037732473561059e+134
2.4360452861614233e+137
22.0ms
7.707471917694893e+26
1.2377461414506375e+29
22.0ms
2.561313660371476e+22
7.707471917694893e+26
22.0ms
3.0658758913738793e-15
1.1702031193618023e-14
21.0ms
6.223394143289802e-139
1.3034102455329104e-136
22.0ms
1.3072358521577175e-166
3.757958986200825e-165
21.0ms
-7.750173744281532e-199
-2.5993538714610666e-200
31.0ms
-5.4681720016314225e-92
-1.4126115380558321e-98
41.0ms
-1.4959794045287318e+105
-1.5420135474911203e+101
Compiler

Compiled 288 to 245 computations (14.9% saved)

regimes184.0ms (2.5%)

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

3 calls:

137.0ms
y
28.0ms
x
17.0ms
z
Results
ErrorSegmentsBranch
33.5b7x
30.6b3y
29.2b5z
Compiler

Compiled 27 to 20 computations (25.9% saved)

bsearch95.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
8.543312130482361e+104
3.796901445247623e+118
23.0ms
6.069351854844009e+43
2.041775111534084e+44
23.0ms
3.173309821691398e-59
2.2485128793498566e-57
24.0ms
-2.3215100153730616e+27
-1.1124531371981533e+21
Compiler

Compiled 22 to 17 computations (22.7% saved)

regimes226.0ms (3%)

Counts
3 → 5
Calls
Call 1
Inputs
4
4
(*.f64 z (/.f64 -4 y))
Outputs
(*.f64 z (/.f64 -4 y))
4
(*.f64 z (/.f64 -4 y))
4
(*.f64 z (/.f64 -4 y))
Calls

3 calls:

149.0ms
x
47.0ms
z
28.0ms
y
Results
ErrorSegmentsBranch
33.6b7x
30.7b3y
29.3b5z
Compiler

Compiled 22 to 17 computations (22.7% saved)

bsearch194.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
54.0ms
8.543312130482361e+104
3.796901445247623e+118
43.0ms
6.069351854844009e+43
2.041775111534084e+44
29.0ms
3.173309821691398e-59
2.2485128793498566e-57
69.0ms
-2.3215100153730616e+27
-1.1124531371981533e+21
Compiler

Compiled 22 to 17 computations (22.7% saved)

regimes22.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

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

3 calls:

7.0ms
x
7.0ms
z
7.0ms
y
Results
ErrorSegmentsBranch
37.7b1x
37.7b1y
37.7b1z
Compiler

Compiled 17 to 14 computations (17.6% saved)

simplify58.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0116491
1132491
2137491
3139491
4140491
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 (/.f64 4 y) (-.f64 x z) 4)
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
(if (<=.f64 y -399133644103827560375299381600578833747116135393421909095626858485240565372358180755994581424668672) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 y -1519752459629755/18889465931478580854784) (+.f64 4 (*.f64 -4 (/.f64 z y))) (if (<=.f64 y -1725436586697641/6901746346790563787434755862277025452451108972170386555162524223799296) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y -2019352817565217/4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352) (+.f64 4 (*.f64 -4 (/.f64 z y))) (if (<=.f64 y 1607746740903345029194347165156790151151616) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 360978918859427498031472980989096958380847237229022367711232) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 y 1068409543446931721897624965066522448973030438582185498499688995534073869038991584423168556398128538152151830026603018059776) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 434329109716685912921609313667669209914161536283148057959755232858917901237254487849795097148159250581096434811745971754513551547763040459148804284796051601850344931328) (+.f64 4 (*.f64 -4 (/.f64 z y))) (+.f64 4 (*.f64 4 (/.f64 x y)))))))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 z 424678093690220985938124159299505948261431809747996336763564021974823247863676344897452383366249709568) (+.f64 4 (*.f64 4 (/.f64 x y))) (*.f64 4 (/.f64 (-.f64 x z) y))))))
(if (<=.f64 y -8343911445290791170685439679850583938083678914495322316307840864614430008823872630137027518211775720628838864577401707805392817116279683940352) 4 (if (<=.f64 y 1068409543446931721897624965066522448973030438582185498499688995534073869038991584423168556398128538152151830026603018059776) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 2638216810503496541012019254871677528559720996055309032806350534531330471447822576037418938030296106317885596137546552232343361550913881417950415010672768616235008) 4 (if (<=.f64 y 11273240255917176468795082117148214107574079398909312642318037114300734900236159752197711154347364701304403067251490781215269798899849673898949061012416641529835469321791975189803094066944161968734714109618028544) (*.f64 4 (/.f64 (-.f64 x z) y)) 4))))
(if (<=.f64 x -1495979404528731754017927469470919396318116593405690014654570859936973407066646204800527884605115722629120) (/.f64 (*.f64 4 x) y) (if (<=.f64 x -8026396747351889/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) 4 (if (<=.f64 x -2087268718363283/2693189581592767235707386820034625876761773979045465016063119822371190863000105380922197266574125287028215280054363247469065949312094107577921441162573762995177074519617763634274131844036773231242902144888720064512) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 8679032833164577/66392249102095887336198525819058578416199139715878990399930517275050444982606530342395312783153660708611166185780812626918322417206588404926189997345823418992978908854424152378966016) 4 (if (<=.f64 x 2086051833638983/3351951982485649274893506249551461531869841455148098344430890360930441007518386744200468574541725856922507964546621512713438470702986642486608412251521024) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 971614853481339/316912650057057350374175801344) 4 (if (<=.f64 x 25613136603714758377472) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 770747191769489326785691648) 4 (if (<=.f64 x 309999999999999981711579465745359883529465024238273711123810796198022343180604872758000375108921327140184326569620363448548561097064448) (/.f64 (*.f64 4 x) y) (if (<=.f64 x 98000000000000000167635864885383801509998190520401347132532829260899126404251537129364850300706907934149543292086538192064978686425245881541842528692603944909396414333177561088) 4 (/.f64 (*.f64 4 x) y)))))))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 -4 (/.f64 z y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) 4 (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 -4 (/.f64 z y)) (if (<=.f64 z 854331213048236093776841357122177004242246999429873007219175479900229455413480730670316242875046372048896) 4 (*.f64 -4 (/.f64 z y))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 z (/.f64 -4 y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) 4 (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 z (/.f64 -4 y)) (if (<=.f64 z 854331213048236093776841357122177004242246999429873007219175479900229455413480730670316242875046372048896) 4 (*.f64 z (/.f64 -4 y))))))
4
Outputs
(fma.f64 (/.f64 4 y) (-.f64 x z) 4)
(+.f64 1 (/.f64 (*.f64 4 (-.f64 (+.f64 x (*.f64 y 3/4)) z)) y))
(if (<=.f64 y -399133644103827560375299381600578833747116135393421909095626858485240565372358180755994581424668672) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 y -1519752459629755/18889465931478580854784) (+.f64 4 (*.f64 -4 (/.f64 z y))) (if (<=.f64 y -1725436586697641/6901746346790563787434755862277025452451108972170386555162524223799296) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y -2019352817565217/4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788352) (+.f64 4 (*.f64 -4 (/.f64 z y))) (if (<=.f64 y 1607746740903345029194347165156790151151616) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 360978918859427498031472980989096958380847237229022367711232) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 y 1068409543446931721897624965066522448973030438582185498499688995534073869038991584423168556398128538152151830026603018059776) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 434329109716685912921609313667669209914161536283148057959755232858917901237254487849795097148159250581096434811745971754513551547763040459148804284796051601850344931328) (+.f64 4 (*.f64 -4 (/.f64 z y))) (+.f64 4 (*.f64 4 (/.f64 x y)))))))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) (+.f64 4 (*.f64 4 (/.f64 x y))) (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 z 424678093690220985938124159299505948261431809747996336763564021974823247863676344897452383366249709568) (+.f64 4 (*.f64 4 (/.f64 x y))) (*.f64 4 (/.f64 (-.f64 x z) y))))))
(if (<=.f64 y -8343911445290791170685439679850583938083678914495322316307840864614430008823872630137027518211775720628838864577401707805392817116279683940352) 4 (if (<=.f64 y 1068409543446931721897624965066522448973030438582185498499688995534073869038991584423168556398128538152151830026603018059776) (*.f64 4 (/.f64 (-.f64 x z) y)) (if (<=.f64 y 2638216810503496541012019254871677528559720996055309032806350534531330471447822576037418938030296106317885596137546552232343361550913881417950415010672768616235008) 4 (if (<=.f64 y 11273240255917176468795082117148214107574079398909312642318037114300734900236159752197711154347364701304403067251490781215269798899849673898949061012416641529835469321791975189803094066944161968734714109618028544) (*.f64 4 (/.f64 (-.f64 x z) y)) 4))))
(if (<=.f64 x -1495979404528731754017927469470919396318116593405690014654570859936973407066646204800527884605115722629120) (/.f64 (*.f64 4 x) y) (if (<=.f64 x -8026396747351889/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) 4 (if (<=.f64 x -2087268718363283/2693189581592767235707386820034625876761773979045465016063119822371190863000105380922197266574125287028215280054363247469065949312094107577921441162573762995177074519617763634274131844036773231242902144888720064512) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 8679032833164577/66392249102095887336198525819058578416199139715878990399930517275050444982606530342395312783153660708611166185780812626918322417206588404926189997345823418992978908854424152378966016) 4 (if (<=.f64 x 2086051833638983/3351951982485649274893506249551461531869841455148098344430890360930441007518386744200468574541725856922507964546621512713438470702986642486608412251521024) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 971614853481339/316912650057057350374175801344) 4 (if (<=.f64 x 25613136603714758377472) (*.f64 -4 (/.f64 z y)) (if (<=.f64 x 770747191769489326785691648) 4 (if (<=.f64 x 309999999999999981711579465745359883529465024238273711123810796198022343180604872758000375108921327140184326569620363448548561097064448) (/.f64 (*.f64 4 x) y) (if (<=.f64 x 98000000000000000167635864885383801509998190520401347132532829260899126404251537129364850300706907934149543292086538192064978686425245881541842528692603944909396414333177561088) 4 (/.f64 (*.f64 4 x) y)))))))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 -4 (/.f64 z y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) 4 (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 -4 (/.f64 z y)) (if (<=.f64 z 854331213048236093776841357122177004242246999429873007219175479900229455413480730670316242875046372048896) 4 (*.f64 -4 (/.f64 z y))))))
(if (<=.f64 z -2321510015373061645265797120) (*.f64 z (/.f64 -4 y)) (if (<=.f64 z 7176644024432467/226156424291633194186662080095093570025917938800079226639565593765455331328) 4 (if (<=.f64 z 60693518548440088609561682826869738552950784) (*.f64 z (/.f64 -4 y)) (if (<=.f64 z 854331213048236093776841357122177004242246999429873007219175479900229455413480730670316242875046372048896) 4 (*.f64 z (/.f64 -4 y))))))
4
Compiler

Compiled 369 to 245 computations (33.6% saved)

soundness277.0ms (3.7%)

Algorithm
egg-herbie
Rules
719×div-sub_binary64
690×fma-neg_binary64
598×times-frac_binary64
477×fma-def_binary64
273×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01319
12517
25515
314015
434715
574611
6145511
7270611
8449011
9672811
Stop Event
node limit
Compiler

Compiled 343 to 264 computations (23% saved)

end200.0ms (2.7%)

Compiler

Compiled 345 to 213 computations (38.3% saved)

Profiling

Loading profile data...