Details

Time bar (total: 17.3s)

analyze214.0ms (1.2%)

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
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
25.8%25%71.8%0.1%3.1%0%0%9
37.3%34.3%57.7%0.1%7.8%0%0%10
45.1%41.3%50.3%0.1%8.2%0%0%11
52.5%46.8%42.3%0.1%10.7%0%0%12
Compiler

Compiled 13 to 10 computations (23.1% saved)

sample2.0s (11.9%)

Results
1.8s8256×body256valid
190.0ms1152×body256infinite
Bogosity

preprocess251.0ms (1.5%)

Algorithm
egg-herbie
Rules
2243×fma-neg_binary64
416×unsub-neg_binary64
263×associate--r+_binary64
226×distribute-rgt-in_binary64
214×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02052
15552
214444
352144
4165344
5302844
6369744
7380344
8384144
9385744
10404544
11412644
12417244
13423944
14428944
15428944
16634344
17634344
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z)))
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x)))
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y)))
Outputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 x (fma.f64 z (+.f64 y -1) 1))
(*.f64 x (fma.f64 y z (-.f64 1 z)))
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z)))
(*.f64 y (-.f64 1 (*.f64 z (-.f64 1 x))))
(*.f64 y (fma.f64 z (+.f64 x -1) 1))
(*.f64 y (fma.f64 x z (-.f64 1 z)))
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x)))
(*.f64 z (-.f64 1 (*.f64 x (-.f64 1 y))))
(*.f64 z (fma.f64 x (+.f64 y -1) 1))
(fma.f64 z (-.f64 (*.f64 x y) x) z)
(*.f64 z (fma.f64 x y (-.f64 1 x)))
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y)))
(*.f64 x (-.f64 1 (*.f64 y (-.f64 1 z))))
(*.f64 x (fma.f64 y (+.f64 z -1) 1))
(*.f64 x (fma.f64 y z (-.f64 1 y)))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify62.0ms (0.4%)

Algorithm
egg-herbie
Rules
710×fma-def_binary64
419×fma-neg_binary64
203×distribute-rgt-in_binary64
160×distribute-lft-in_binary64
141×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0913
12013
24911
316111
449311
5114911
6189511
7259811
8270811
9270811
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
Outputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 x (fma.f64 z (+.f64 y -1) 1))
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)

eval1.0ms (0%)

Compiler

Compiled 20 to 12 computations (40% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 23 to 15 computations (34.8% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 20 computations (35.5% saved)

series9.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite99.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
555×prod-diff_binary64
479×log-prod_binary64
360×exp-prod_binary64
300×pow-prod-down_binary64
259×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify132.0ms (0.8%)

Algorithm
egg-herbie
Rules
788×fma-def_binary64
408×fma-neg_binary64
140×distribute-rgt-in_binary64
125×unsub-neg_binary64
104×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026613
168592
2169532
3419532
4929532
51582532
62419532
72582532
82584532
92584532
Stop Event
saturated
Counts
144 → 102
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x)))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
z
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
Outputs
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 z y) z))
(*.f64 z (-.f64 (*.f64 y x) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 z y) z))
(*.f64 z (-.f64 (*.f64 y x) x))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (-.f64 z (*.f64 z y))) x)
(*.f64 (fma.f64 z y (-.f64 1 z)) x)
(*.f64 (-.f64 (fma.f64 z y 1) z) x)
z
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)
(*.f64 z (-.f64 1 y))
(fma.f64 -1 (*.f64 z y) z)
(-.f64 z (*.f64 z y))
(fma.f64 y (neg.f64 z) z)

localize9.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.4b
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
Compiler

Compiled 21 to 6 computations (71.4% saved)

series14.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
4.0ms
x
@0
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
3.0ms
z
@-inf
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
1.0ms
x
@-inf
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
1.0ms
y
@-inf
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
1.0ms
x
@inf
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)

rewrite72.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
626×pow1_binary64
574×add-log-exp_binary64
573×log1p-expm1-u_binary64
573×expm1-log1p-u_binary64
560×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify85.0ms (0.5%)

Algorithm
egg-herbie
Rules
749×fma-def_binary64
578×fma-neg_binary64
205×distribute-rgt-in_binary64
164×distribute-lft-in_binary64
154×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
029373
183372
2233372
3653372
41599372
52812372
63164372
73219372
83219372
Stop Event
saturated
Counts
57 → 34
Calls
Call 1
Inputs
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
Outputs
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (-.f64 (*.f64 y z) z)) 1) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(fma.f64 -1 (*.f64 z x) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (-.f64 y 1)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 x (-.f64 (fma.f64 y z 1) z))

eval38.0ms (0.2%)

Compiler

Compiled 1727 to 997 computations (42.3% saved)

prune42.0ms (0.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New12313136
Fresh000
Picked101
Done011
Total12414138
Error
0.0b
Counts
138 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
3.9b
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
36.1b
x
45.8b
(*.f64 y (*.f64 z x))
3.6b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
20.9b
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z))))
22.3b
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 y z z) x)) 2) (cbrt.f64 (fma.f64 x (fma.f64 y z z) x)))
2.1b
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
4.1b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
19.3b
(*.f64 (-.f64 1 z) x)
37.5b
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2)
4.8b
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 3)
28.4b
(*.f64 z (-.f64 (*.f64 y x) x))
49.4b
(/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 y z z)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (fma.f64 y z z)) (*.f64 x (fma.f64 y z z))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (fma.f64 y z z)) x))))
19.3b
(-.f64 x (*.f64 z x))
Compiler

Compiled 376 to 228 computations (39.4% saved)

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 34 to 15 computations (55.9% saved)

series29.0ms (0.2%)

Counts
3 → 39
Calls

24 calls:

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

rewrite170.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
569×log-prod_binary64
473×fma-def_binary64
433×pow-prod-down_binary64
288×pow2_binary64
204×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify117.0ms (0.7%)

Algorithm
egg-herbie
Rules
670×fma-def_binary64
492×fma-neg_binary64
158×distribute-rgt-in_binary64
155×cancel-sign-sub-inv_binary64
128×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031349
194349
2243349
3641349
41602349
52473349
62843349
72857349
82857349
Stop Event
saturated
Counts
175 → 151
Calls
Call 1
Inputs
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
x
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 z y))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 z y))
x
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (-.f64 (*.f64 x y) x))
(*.f64 x (fma.f64 z y (neg.f64 z)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (-.f64 (*.f64 x y) x))
(*.f64 x (fma.f64 z y (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(fma.f64 z (*.f64 x (+.f64 y -1)) x)
(*.f64 x (-.f64 (fma.f64 z y 1) z))
(*.f64 x (fma.f64 z y (-.f64 1 z)))
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.9b
(*.f64 y (*.f64 z x))
Compiler

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite57.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
651×pow1_binary64
606×add-log-exp_binary64
606×log1p-expm1-u_binary64
606×expm1-log1p-u_binary64
593×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify61.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
013160
128160
249160
388160
4136160
5223160
6371160
7450160
8518160
9524160
Stop Event
saturated
Counts
64 → 47
Calls
Call 1
Inputs
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 1 z) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(*.f64 -1 (*.f64 z x))
(*.f64 (neg.f64 z) x)
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 x (-.f64 1 z))
(fma.f64 (neg.f64 z) x x)
(fma.f64 z (neg.f64 x) x)

localize21.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.4b
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z))))
Compiler

Compiled 27 to 11 computations (59.3% saved)

series14.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite73.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
812×pow1_binary64
748×add-log-exp_binary64
748×log1p-expm1-u_binary64
748×expm1-log1p-u_binary64
733×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify82.0ms (0.5%)

Algorithm
egg-herbie
Rules
290×fma-def_binary64
61×associate-*l*_binary64
60×fma-neg_binary64
53×associate-*r*_binary64
49×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013390
131270
272270
3159270
4333270
5514270
6697270
7800270
8932270
Stop Event
saturated
Counts
55 → 24
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
Outputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 (-.f64 1 (neg.f64 (*.f64 y z))) x)
(fma.f64 (*.f64 y z) x x)
(fma.f64 z (*.f64 y x) x)
(*.f64 (fma.f64 y z 1) x)

localize51.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 y) z)
0.7b
(pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)
3.4b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
3.9b
(cbrt.f64 (*.f64 (-.f64 1 y) z))
Compiler

Compiled 52 to 37 computations (28.8% saved)

series80.0ms (0.5%)

Counts
3 → 29
Calls

21 calls:

TimeVariablePointExpression
40.0ms
z
@-inf
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
6.0ms
x
@0
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
6.0ms
y
@0
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
3.0ms
y
@0
(cbrt.f64 (*.f64 (-.f64 1 y) z))
2.0ms
y
@inf
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))

rewrite108.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
791×prod-diff_binary64
546×log-prod_binary64
297×pow2_binary64
229×fma-def_binary64
203×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify139.0ms (0.8%)

Algorithm
egg-herbie
Rules
779×fma-neg_binary64
490×distribute-lft-in_binary64
490×distribute-rgt-in_binary64
427×distribute-neg-in_binary64
385×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01311054
1475975
21703890
35860882
Stop Event
node limit
Counts
147 → 145
Calls
Call 1
Inputs
(pow.f64 z 1/3)
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (pow.f64 z 1/3))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 11)) 1/9) (pow.f64 y 2))) (pow.f64 z 1/3)))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 y 3)) (pow.f64 (/.f64 1 (pow.f64 z 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 11)) 1/9) (pow.f64 y 2))) (pow.f64 z 1/3))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x)
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 2) (*.f64 x (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 z) 1/3)) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))))) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x)))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (*.f64 x (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 1 1/3))) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 z 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 z) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))))))) (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9))))))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 2) (*.f64 x (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 z) 1/3)) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))))) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x))))))
x
x
x
x
x
(*.f64 (pow.f64 1 1/3) z)
(+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (*.f64 (pow.f64 1 1/3) z))
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)))) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))) (+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (*.f64 (pow.f64 1 1/3) z)))
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)))) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))) (+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 1 1/3))) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9))) (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 z 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 z) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))))))))))) (*.f64 (pow.f64 1 1/3) z))))
Outputs
(pow.f64 z 1/3)
(cbrt.f64 z)
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (pow.f64 z 1/3))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (cbrt.f64 z))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 11)) 1/9) (pow.f64 y 2))) (pow.f64 z 1/3)))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (pow.f64 (pow.f64 z 11) 1/18)) (*.f64 y y)) (cbrt.f64 z)))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 y y))) (cbrt.f64 z)))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 (*.f64 y y) (pow.f64 (pow.f64 z 11) 1/18))) (cbrt.f64 z)))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9) y)) (+.f64 (*.f64 -1/3 (*.f64 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 y 3)) (pow.f64 (/.f64 1 (pow.f64 z 2)) 1/3))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 z 11)) 1/9) (pow.f64 y 2))) (pow.f64 z 1/3))))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (cbrt.f64 (pow.f64 z 7))) (*.f64 (cbrt.f64 (pow.f64 z 7)) -1/27)) (*.f64 (pow.f64 y 3) (cbrt.f64 (/.f64 1 (*.f64 z z))))) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (pow.f64 (pow.f64 z 11) 1/18)) (*.f64 y y)) (cbrt.f64 z))))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/3 (*.f64 (pow.f64 y 3) (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 (*.f64 z z))))) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 y y))) (cbrt.f64 z))))
(fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) y) (fma.f64 -1/3 (*.f64 (pow.f64 y 3) (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 (/.f64 1 z) z)))) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 11) 1/18) (*.f64 (*.f64 y y) (pow.f64 (pow.f64 z 11) 1/18))) (cbrt.f64 z))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) (*.f64 z (-.f64 1 y)))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x)
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x))))
(fma.f64 (-.f64 1 z) x (neg.f64 (*.f64 y (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1)))))
(-.f64 (*.f64 x (-.f64 1 z)) (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) (neg.f64 y))))
(*.f64 x (-.f64 (-.f64 1 z) (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) (neg.f64 y))))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 y (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 2) (*.f64 x (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 z) 1/3)) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))))) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x)))))
(fma.f64 (-.f64 1 z) x (*.f64 -1 (+.f64 (*.f64 (*.f64 y y) (*.f64 x (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9) (cbrt.f64 z) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18))))))) (*.f64 y (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1))))))
(fma.f64 x (-.f64 1 z) (neg.f64 (fma.f64 (*.f64 y y) (*.f64 x (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z)))))) (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) (neg.f64 y))))))
(-.f64 (*.f64 x (-.f64 1 z)) (*.f64 x (*.f64 y (+.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9)))))))
(-.f64 (-.f64 x (*.f64 x z)) (*.f64 x (*.f64 y (-.f64 (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9))) (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 1 1/3) z)) x) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (*.f64 x (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 1 1/3))) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 z 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 z) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))))))) (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9))))))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 2) (*.f64 x (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 z) 1/3)) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))))) (*.f64 -1 (*.f64 y (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9))) x))))))
(fma.f64 (-.f64 1 z) x (fma.f64 -1 (*.f64 (pow.f64 y 3) (*.f64 x (fma.f64 -1/3 (*.f64 1 (+.f64 (*.f64 2/9 (cbrt.f64 (pow.f64 z 7))) (*.f64 (cbrt.f64 (pow.f64 z 7)) -1/27))) (+.f64 (*.f64 2/27 (cbrt.f64 (pow.f64 z 7))) (fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9)) (*.f64 (cbrt.f64 z) (+.f64 (*.f64 2/27 (*.f64 z z)) (*.f64 -2/3 (*.f64 (+.f64 (*.f64 2/9 (cbrt.f64 (pow.f64 z 7))) (*.f64 (cbrt.f64 (pow.f64 z 7)) -1/27)) (cbrt.f64 (/.f64 1 z))))))))))) (*.f64 -1 (+.f64 (*.f64 (*.f64 y y) (*.f64 x (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9) (cbrt.f64 z) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18))))))) (*.f64 y (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1)))))))
(fma.f64 x (-.f64 1 z) (-.f64 (neg.f64 (fma.f64 (*.f64 y y) (*.f64 x (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z)))))) (*.f64 x (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) (neg.f64 y))))) (*.f64 (pow.f64 y 3) (*.f64 x (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (*.f64 (pow.f64 (pow.f64 z 14) 1/18) -1/9))) (*.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 (*.f64 z z) 2/27))))))))))
(-.f64 (*.f64 x (-.f64 (-.f64 1 z) (*.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 z (*.f64 z 2/27))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 -1/3 (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18))))))))))) (*.f64 x (*.f64 y (+.f64 (neg.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9)))))))
(-.f64 (*.f64 x (-.f64 (-.f64 1 z) (*.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 z (*.f64 z 2/27))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 -1/3 (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18))))))))))) (*.f64 x (*.f64 y (-.f64 (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9))) (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))))))
x
x
x
x
x
(*.f64 (pow.f64 1 1/3) z)
z
(+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (*.f64 (pow.f64 1 1/3) z))
(fma.f64 y (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1) z)
(fma.f64 y (*.f64 -1 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) z)
(fma.f64 y (neg.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) z)
(fma.f64 y (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (neg.f64 (pow.f64 (pow.f64 z 13) 1/18))) z)
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)))) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))) (+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (*.f64 (pow.f64 1 1/3) z)))
(fma.f64 (*.f64 y y) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9) (cbrt.f64 z) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18))))) (fma.f64 y (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1) z))
(fma.f64 (*.f64 y y) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))))) (fma.f64 y (*.f64 -1 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) z))
(fma.f64 (*.f64 y y) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9)) (fma.f64 y (neg.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) z))
(+.f64 z (*.f64 y (-.f64 (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9))) (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)))))
(+.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 2/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9)) (+.f64 (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)))) (*.f64 -1/9 (pow.f64 (*.f64 1 (pow.f64 z 17)) 1/9))))) (+.f64 (*.f64 y (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 1 (pow.f64 z 13)) 1/9)))) (+.f64 (*.f64 (pow.f64 y 3) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))) (pow.f64 1 1/3))) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 1/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9)) (*.f64 -2/9 (pow.f64 (*.f64 1 (pow.f64 z 14)) 1/9))) (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/9))) (*.f64 (pow.f64 (*.f64 1 z) 1/3) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/9) (pow.f64 z 2))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 z) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (pow.f64 (pow.f64 z 7) 1/3))) (*.f64 -1/27 (pow.f64 (*.f64 1 (pow.f64 z 7)) 1/3))))))))))) (*.f64 (pow.f64 1 1/3) z))))
(fma.f64 (*.f64 y y) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9) (cbrt.f64 z) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18))))) (fma.f64 y (*.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)) -1) (fma.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 1 (+.f64 (*.f64 2/9 (cbrt.f64 (pow.f64 z 7))) (*.f64 (cbrt.f64 (pow.f64 z 7)) -1/27))) (+.f64 (*.f64 2/27 (cbrt.f64 (pow.f64 z 7))) (fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) -1/9)) (*.f64 (cbrt.f64 z) (+.f64 (*.f64 2/27 (*.f64 z z)) (*.f64 -2/3 (*.f64 (+.f64 (*.f64 2/9 (cbrt.f64 (pow.f64 z 7))) (*.f64 (cbrt.f64 (pow.f64 z 7)) -1/27)) (cbrt.f64 (/.f64 1 z))))))))) z)))
(fma.f64 (*.f64 y y) (fma.f64 2/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (fma.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))))) (fma.f64 y (*.f64 -1 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) (fma.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 -1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (*.f64 (pow.f64 (pow.f64 z 14) 1/18) -1/9))) (*.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 (*.f64 z z) 2/27)))))) z)))
(fma.f64 (*.f64 y y) (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9)) (fma.f64 y (neg.f64 (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18))) (fma.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 z (*.f64 z 2/27))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 -1/3 (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)))))))) z)))
(+.f64 (fma.f64 (pow.f64 y 3) (fma.f64 -1/3 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (fma.f64 (cbrt.f64 (pow.f64 z 7)) 2/27 (fma.f64 (cbrt.f64 z) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (pow.f64 z 7)) 5/27) (cbrt.f64 (/.f64 1 z))) (*.f64 z (*.f64 z 2/27))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 7) 1/18) (pow.f64 (pow.f64 z 7) 1/18)) (*.f64 -1/3 (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)))))))) z) (*.f64 y (-.f64 (*.f64 y (+.f64 (*.f64 (*.f64 (pow.f64 (pow.f64 z 14) 1/18) (pow.f64 (pow.f64 z 14) 1/18)) (*.f64 -1/9 (cbrt.f64 z))) (*.f64 (*.f64 (pow.f64 (pow.f64 z 17) 1/18) (pow.f64 (pow.f64 z 17) 1/18)) 1/9))) (*.f64 (pow.f64 (pow.f64 z 13) 1/18) (pow.f64 (pow.f64 z 13) 1/18)))))

eval376.0ms (2.2%)

Compiler

Compiled 7334 to 4384 computations (40.2% saved)

prune190.0ms (1.1%)

Pruning

15 alts after pruning (12 fresh and 3 done)

PrunedKeptTotal
New42611437
Fresh718
Picked101
Done235
Total43615451
Error
0b
Counts
451 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
19.4b
(+.f64 (*.f64 y (*.f64 z x)) x)
36.1b
x
47.5b
(*.f64 x (*.f64 z y))
28.4b
(*.f64 z (-.f64 (*.f64 y x) x))
19.3b
(*.f64 (-.f64 1 z) x)
21.1b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
21.7b
(pow.f64 (cbrt.f64 (+.f64 x (*.f64 (*.f64 y z) x))) 3)
28.8b
(fma.f64 (*.f64 y (sqrt.f64 (*.f64 z x))) (sqrt.f64 (*.f64 z x)) (*.f64 x (-.f64 1 z)))
45.8b
(*.f64 y (*.f64 z x))
3.6b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
4.9b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
19.3b
(-.f64 x (*.f64 z x))
45.4b
(*.f64 z (neg.f64 x))
20.9b
(+.f64 x (*.f64 (*.f64 y z) x))
55.1b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
Compiler

Compiled 300 to 198 computations (34% saved)

localize58.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
0.5b
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2)
0.6b
(cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z))))
3.4b
(*.f64 x (fma.f64 y z (-.f64 1 z)))
Compiler

Compiled 66 to 39 computations (40.9% saved)

series62.0ms (0.4%)

Counts
4 → 88
Calls

36 calls:

TimeVariablePointExpression
11.0ms
y
@inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
5.0ms
x
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
4.0ms
z
@0
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2)
4.0ms
z
@0
(*.f64 x (fma.f64 y z (-.f64 1 z)))
3.0ms
y
@0
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2)

rewrite143.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
471×log-prod_binary64
416×prod-exp_binary64
359×exp-prod_binary64
323×pow-prod-down_binary64
265×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251
124851
2263951
Stop Event
node limit
Counts
4 → 183
Calls
Call 1
Inputs
(*.f64 x (fma.f64 y z (-.f64 1 z)))
(cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z))))
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y z) x) (*.f64 (-.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y z)) (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 3) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 x) (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 y z) (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) x (*.f64 (-.f64 1 z) x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (cbrt.f64 (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (fma.f64 y z 1) z)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6) (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/3) (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) 2)) (cbrt.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))) (sqrt.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/6 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 1/2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 4) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (-.f64 (fma.f64 y z 1) z)) (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (-.f64 (fma.f64 y z 1) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6) (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) (cbrt.f64 x)) (cbrt.f64 (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 5) (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y z) x) (*.f64 (-.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y z)) (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 3) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))) (sqrt.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (-.f64 (fma.f64 y z 1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 (-.f64 (fma.f64 y z 1) z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 x) (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 (fma.f64 y z 1) z)) 1) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z))) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (*.f64 2/3 (log.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1) (*.f64 (log.f64 (cbrt.f64 (*.f64 x (-.f64 (fma.f64 y z 1) z)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 y z) (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y z) x (*.f64 (-.f64 1 z) x))))))

simplify135.0ms (0.8%)

Algorithm
egg-herbie
Rules
936×fma-def_binary64
702×unswap-sqr_binary64
374×distribute-rgt-in_binary64
366×distribute-lft-in_binary64
248×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01691928
15611832
220551826
364011826
Stop Event
node limit
Counts
271 → 176
Calls
Call 1
Inputs
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(pow.f64 (*.f64 (-.f64 1 z) x) 1/3)
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z))))
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 11)) (pow.f64 (-.f64 1 z) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 z 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z)))))
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2))) 1/3) (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3)))))))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 11)) (pow.f64 (-.f64 1 z) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 z 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z))))))
(pow.f64 x 1/3)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1)))))
(+.f64 (pow.f64 x 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 11)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1))))))
(+.f64 (pow.f64 x 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 11)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 (pow.f64 x 7) 1/3)))) (*.f64 1/27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/3) (pow.f64 (-.f64 y 1) 3)))) (pow.f64 z 3)))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1)))))))
(pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (+.f64 (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2)))) (pow.f64 y 2))))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (-.f64 1 z) x)) 1/3) (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))))))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 2)) (-.f64 1 z))))) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2)))) (pow.f64 y 2)))))
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3))
(+.f64 (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2)))) (pow.f64 z 2)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2)))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 z 3) (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 x) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 (pow.f64 x 7) 1/3)))) (*.f64 1/27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/3) (pow.f64 (-.f64 y 1) 3)))))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 x 2)))))) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3))))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
Outputs
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(pow.f64 (*.f64 (-.f64 1 z) x) 1/3)
(cbrt.f64 (*.f64 x (-.f64 1 z)))
(cbrt.f64 (-.f64 x (*.f64 z x)))
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z))))
(+.f64 (cbrt.f64 (*.f64 x (-.f64 1 z))) (*.f64 1/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)))))
(fma.f64 1/3 (*.f64 (*.f64 (*.f64 y z) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (cbrt.f64 (*.f64 x (-.f64 1 z))))
(fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (cbrt.f64 (*.f64 x (-.f64 1 z))))
(fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (cbrt.f64 (-.f64 x (*.f64 z x))))
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 11)) (pow.f64 (-.f64 1 z) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 z 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z)))))
(+.f64 (cbrt.f64 (*.f64 x (-.f64 1 z))) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (*.f64 (*.f64 y y) (*.f64 z z))) (*.f64 1/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18))))))
(+.f64 (cbrt.f64 (*.f64 x (-.f64 1 z))) (fma.f64 -1/9 (*.f64 (*.f64 (*.f64 y (*.f64 y (*.f64 z z))) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (*.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)))))
(fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z)) (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z))) (cbrt.f64 (*.f64 x (-.f64 1 z)))))
(fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z)) (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z))) (cbrt.f64 (-.f64 x (*.f64 z x)))))
(+.f64 (pow.f64 (*.f64 (-.f64 1 z) x) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2))) 1/3) (*.f64 (pow.f64 y 3) (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3)))))))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 11)) (pow.f64 (-.f64 1 z) 7)) 1/9) (*.f64 (pow.f64 y 2) (pow.f64 z 2)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/9) (*.f64 y z))))))
(+.f64 (cbrt.f64 (*.f64 x (-.f64 1 z))) (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x)))) (*.f64 (pow.f64 y 3) (fma.f64 1/27 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) (*.f64 -2/9 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)))))) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (*.f64 (*.f64 y y) (*.f64 z z))) (*.f64 1/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)))))))
(+.f64 (cbrt.f64 (*.f64 x (-.f64 1 z))) (fma.f64 -1/3 (*.f64 (pow.f64 y 3) (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) -5/27) (cbrt.f64 (/.f64 (/.f64 1 (*.f64 x x)) (pow.f64 (-.f64 1 z) 2))))) (fma.f64 -1/9 (*.f64 (*.f64 (*.f64 y (*.f64 y (*.f64 z z))) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18)) (*.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18))))))
(fma.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) (pow.f64 y 3)) -5/27) (*.f64 -1/3 (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))) (fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z)) (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z))) (cbrt.f64 (*.f64 x (-.f64 1 z))))))
(fma.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) (pow.f64 y 3)) -5/27) (*.f64 -1/3 (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))) (fma.f64 (*.f64 y z) (*.f64 (*.f64 1/3 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/18)) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z)) (*.f64 (pow.f64 (/.f64 (pow.f64 x 11) (pow.f64 (-.f64 1 z) 7)) 1/18) (*.f64 y z))) (cbrt.f64 (-.f64 x (*.f64 z x))))))
(pow.f64 x 1/3)
(cbrt.f64 x)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1)))))
(+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)) (*.f64 z (+.f64 y -1)))))
(fma.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)) (*.f64 z (+.f64 y -1))) (cbrt.f64 x))
(fma.f64 1/3 (*.f64 z (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))) (cbrt.f64 x))
(+.f64 (pow.f64 x 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 11)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1))))))
(+.f64 (cbrt.f64 x) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18)) (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2))) (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)) (*.f64 z (+.f64 y -1))))))
(+.f64 (cbrt.f64 x) (fma.f64 -1/9 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) z) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) z))) (*.f64 (*.f64 z (+.f64 y -1)) (*.f64 (*.f64 1/3 (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)))))
(fma.f64 1/3 (*.f64 z (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))) (fma.f64 (*.f64 z (*.f64 z (pow.f64 (+.f64 y -1) 2))) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (cbrt.f64 x)))
(+.f64 (pow.f64 x 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 11)) 1/9) (*.f64 (pow.f64 z 2) (pow.f64 (-.f64 y 1) 2)))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 (pow.f64 x 7) 1/3)))) (*.f64 1/27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/3) (pow.f64 (-.f64 y 1) 3)))) (pow.f64 z 3)))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/9) (*.f64 z (-.f64 y 1)))))))
(+.f64 (cbrt.f64 x) (fma.f64 -1/9 (*.f64 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18)) (*.f64 (*.f64 z z) (pow.f64 (+.f64 y -1) 2))) (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 x x))) (*.f64 (pow.f64 z 3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7)))) (*.f64 (*.f64 1/27 (cbrt.f64 (pow.f64 x 7))) (pow.f64 (+.f64 y -1) 3))))) (*.f64 1/3 (*.f64 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)) (*.f64 z (+.f64 y -1)))))))
(+.f64 (cbrt.f64 x) (fma.f64 -1/9 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) z) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) z))) (fma.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7))) -5/27) (*.f64 (pow.f64 z 3) (cbrt.f64 (/.f64 1 (*.f64 x x))))) (*.f64 (*.f64 z (+.f64 y -1)) (*.f64 (*.f64 1/3 (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18))))))
(+.f64 (fma.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7))) -5/27) (*.f64 (pow.f64 z 3) (cbrt.f64 (/.f64 (/.f64 1 x) x)))) (*.f64 1/3 (*.f64 z (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))) (fma.f64 (*.f64 z (*.f64 z (pow.f64 (+.f64 y -1) 2))) (*.f64 -1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (cbrt.f64 x)))
(pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x)))
(cbrt.f64 (*.f64 x (*.f64 x (pow.f64 (-.f64 1 z) 2))))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3))
(fma.f64 2/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))
(fma.f64 2/3 (*.f64 y (*.f64 z (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18)))) (cbrt.f64 (*.f64 x (*.f64 x (pow.f64 (-.f64 1 z) 2)))))
(fma.f64 (*.f64 y z) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (+.f64 (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2)))) (pow.f64 y 2))))
(+.f64 (fma.f64 2/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x)))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18))) -1/9)))
(fma.f64 2/3 (*.f64 y (*.f64 z (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18)))) (fma.f64 (*.f64 y y) (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z))) (cbrt.f64 (*.f64 x (*.f64 x (pow.f64 (-.f64 1 z) 2))))))
(fma.f64 (*.f64 y z) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (fma.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z)) (*.f64 -1/9 (*.f64 y y)) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x)))))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (*.f64 (-.f64 1 z) (pow.f64 x 10))) 1/9) (*.f64 y z))) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (-.f64 1 z) x)) 1/3) (+.f64 (*.f64 1/27 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 7)) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))) (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2)) 1/3) (pow.f64 z 3))))))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (/.f64 (*.f64 (pow.f64 z 3) (pow.f64 x 2)) (-.f64 1 z))))) (pow.f64 y 3)) (+.f64 (pow.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 x 2)) 1/3) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2))) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 x 14)) (pow.f64 (-.f64 1 z) 4)) 1/9) (pow.f64 z 2)))) (pow.f64 y 2)))))
(fma.f64 2/3 (*.f64 (*.f64 y z) (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (fma.f64 (fma.f64 -2/3 (*.f64 (fma.f64 1/27 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) (*.f64 -2/9 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)))) (cbrt.f64 (/.f64 1 (*.f64 x (-.f64 1 z))))) (*.f64 -2/27 (/.f64 (pow.f64 z 3) (/.f64 (-.f64 1 z) (*.f64 x x))))) (pow.f64 y 3) (+.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))) (*.f64 (*.f64 y y) (*.f64 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18))) -1/9)))))
(fma.f64 2/3 (*.f64 y (*.f64 z (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18)))) (fma.f64 (pow.f64 y 3) (fma.f64 -2/3 (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) -5/27) (cbrt.f64 (/.f64 (/.f64 1 x) (-.f64 1 z)))) (*.f64 -2/27 (*.f64 (/.f64 (pow.f64 z 3) (-.f64 1 z)) (*.f64 x x)))) (fma.f64 (*.f64 y y) (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z))) (cbrt.f64 (*.f64 x (*.f64 x (pow.f64 (-.f64 1 z) 2)))))))
(fma.f64 (*.f64 y z) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (fma.f64 y (*.f64 y (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z)))) (fma.f64 (pow.f64 y 3) (fma.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) -5/27) (*.f64 -2/3 (cbrt.f64 (/.f64 (/.f64 1 x) (-.f64 1 z)))) (*.f64 -2/27 (*.f64 (/.f64 (pow.f64 z 3) (-.f64 1 z)) (*.f64 x x)))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))))
(fma.f64 (*.f64 y z) (*.f64 2/3 (*.f64 (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18) (pow.f64 (*.f64 (-.f64 1 z) (pow.f64 x 10)) 1/18))) (fma.f64 y (*.f64 y (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z) (*.f64 (pow.f64 (/.f64 (pow.f64 x 14) (pow.f64 (-.f64 1 z) 4)) 1/18) z)))) (fma.f64 (pow.f64 y 3) (fma.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 7) (pow.f64 (-.f64 1 z) 2))) (pow.f64 z 3)) -5/27) (*.f64 -2/3 (cbrt.f64 (/.f64 (/.f64 1 x) (-.f64 1 z)))) (*.f64 -2/27 (*.f64 (*.f64 x x) (/.f64 (pow.f64 z 3) (-.f64 1 z))))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 x x))))))
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (*.f64 (*.f64 z (+.f64 y -1)) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))
(fma.f64 2/3 (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) z))) (cbrt.f64 (*.f64 x x)))
(fma.f64 (-.f64 (*.f64 y z) z) (*.f64 (*.f64 2/3 (pow.f64 (pow.f64 x 10) 1/18)) (pow.f64 (pow.f64 x 10) 1/18)) (cbrt.f64 (*.f64 x x)))
(+.f64 (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2)))) (pow.f64 z 2)) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3)))
(fma.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9) (*.f64 z z) (fma.f64 2/3 (*.f64 (*.f64 z (+.f64 y -1)) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))))
(fma.f64 (*.f64 z z) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18)) -1/9)) (fma.f64 2/3 (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) z))) (cbrt.f64 (*.f64 x x))))
(fma.f64 (*.f64 z z) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18)) -1/9)) (fma.f64 (-.f64 (*.f64 y z) z) (*.f64 (*.f64 2/3 (pow.f64 (pow.f64 x 10) 1/18)) (pow.f64 (pow.f64 x 10) 1/18)) (cbrt.f64 (*.f64 x x))))
(+.f64 (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 14)) 1/9) (pow.f64 (-.f64 y 1) 2)))) (pow.f64 z 2)) (+.f64 (*.f64 (pow.f64 z 3) (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 x) 1/3) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (pow.f64 1 4) 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 (pow.f64 x 7) 1/3)))) (*.f64 1/27 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 7)) 1/3) (pow.f64 (-.f64 y 1) 3)))))) (*.f64 -2/27 (*.f64 (pow.f64 1 1/9) (*.f64 (pow.f64 (-.f64 y 1) 3) (pow.f64 x 2)))))) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 10)) 1/9) (*.f64 z (-.f64 y 1)))) (pow.f64 (pow.f64 x 2) 1/3))))
(fma.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9) (*.f64 z z) (fma.f64 (pow.f64 z 3) (fma.f64 -2/3 (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7)))) (*.f64 (*.f64 1/27 (cbrt.f64 (pow.f64 x 7))) (pow.f64 (+.f64 y -1) 3))) (cbrt.f64 (/.f64 1 x))) (*.f64 -2/27 (*.f64 (*.f64 x x) (pow.f64 (+.f64 y -1) 3)))) (fma.f64 2/3 (*.f64 (*.f64 z (+.f64 y -1)) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))))
(fma.f64 (*.f64 z z) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18)) -1/9)) (fma.f64 (pow.f64 z 3) (fma.f64 -2/3 (*.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7))) -5/27) (cbrt.f64 (/.f64 1 x))) (*.f64 (pow.f64 (+.f64 y -1) 3) (*.f64 (*.f64 x x) -2/27))) (fma.f64 2/3 (*.f64 (+.f64 y -1) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) z))) (cbrt.f64 (*.f64 x x)))))
(fma.f64 (*.f64 z z) (*.f64 (pow.f64 (+.f64 y -1) 2) (*.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18)) -1/9)) (fma.f64 (pow.f64 z 3) (fma.f64 -2/3 (*.f64 (*.f64 (*.f64 (pow.f64 (+.f64 y -1) 3) (cbrt.f64 (pow.f64 x 7))) (cbrt.f64 (/.f64 1 x))) -5/27) (*.f64 (pow.f64 (+.f64 y -1) 3) (*.f64 (*.f64 x x) -2/27))) (fma.f64 (-.f64 (*.f64 y z) z) (*.f64 (*.f64 2/3 (pow.f64 (pow.f64 x 10) 1/18)) (pow.f64 (pow.f64 x 10) 1/18)) (cbrt.f64 (*.f64 x x)))))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x))) x)
(*.f64 (-.f64 (fma.f64 y z 1) z) x)
(*.f64 (fma.f64 y z (-.f64 1 z)) x)

localize9.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

localize32.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series9.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite86.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
857×pow1_binary64
795×add-log-exp_binary64
794×log1p-expm1-u_binary64
794×expm1-log1p-u_binary64
777×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify120.0ms (0.7%)

Algorithm
egg-herbie
Rules
175×fma-def_binary64
124×fma-neg_binary64
60×associate-*l*_binary64
53×associate-*r*_binary64
43×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016522
139522
293522
3222522
4443522
5671522
6807522
7853522
Stop Event
saturated
Counts
124 → 58
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 x (fma.f64 y z 1))

localize29.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
6.9b
(*.f64 (*.f64 y x) z)
12.1b
(sqrt.f64 (*.f64 (*.f64 y x) z))
Compiler

Compiled 29 to 9 computations (69% saved)

series42.0ms (0.2%)

Counts
3 → 36
Calls

27 calls:

TimeVariablePointExpression
5.0ms
x
@-inf
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
4.0ms
z
@inf
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
3.0ms
y
@0
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
3.0ms
z
@-inf
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
2.0ms
y
@0
(sqrt.f64 (*.f64 (*.f64 y x) z))

rewrite85.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
734×pow1_binary64
676×add-log-exp_binary64
676×log1p-expm1-u_binary64
676×expm1-log1p-u_binary64
659×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify15.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
110252
217252
319252
Stop Event
saturated
Counts
110 → 66
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
Outputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))

eval452.0ms (2.6%)

Compiler

Compiled 11359 to 7262 computations (36.1% saved)

prune77.0ms (0.4%)

Pruning

16 alts after pruning (9 fresh and 7 done)

PrunedKeptTotal
New4555460
Fresh347
Picked011
Done167
Total45916475
Error
0b
Counts
475 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(*.f64 (-.f64 1 z) x)
21.1b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
47.5b
(*.f64 (*.f64 z y) x)
36.1b
x
45.4b
(*.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (*.f64 y x)))
45.8b
(*.f64 y (*.f64 z x))
3.6b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
45.2b
(*.f64 (*.f64 y x) z)
19.3b
(-.f64 x (*.f64 z x))
45.4b
(*.f64 z (neg.f64 x))
20.9b
(+.f64 x (*.f64 (*.f64 y z) x))
46.1b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
19.4b
(+.f64 (*.f64 y (*.f64 z x)) x)
28.4b
(*.f64 z (-.f64 (*.f64 y x) x))
21.7b
(pow.f64 (cbrt.f64 (+.f64 x (*.f64 (*.f64 y z) x))) 3)
55.1b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
Compiler

Compiled 258 to 167 computations (35.3% saved)

localize7.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series2.0ms (0%)

Counts
1 → 18
Calls

9 calls:

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

rewrite60.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
836×pow1_binary64
774×add-log-exp_binary64
774×log1p-expm1-u_binary64
774×expm1-log1p-u_binary64
756×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify29.0ms (0.2%)

Algorithm
egg-herbie
Rules
168×fma-def_binary64
128×fma-neg_binary64
60×associate-*l*_binary64
49×associate-*r*_binary64
44×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015126
136126
288126
3221126
4438126
5668126
6809126
7855126
Stop Event
saturated
Counts
57 → 44
Calls
Call 1
Inputs
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
Outputs
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (fma.f64 y z 1))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.9b
(*.f64 (*.f64 y x) z)
Compiler

Compiled 14 to 5 computations (64.3% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series8.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite68.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
826×pow1_binary64
764×add-log-exp_binary64
764×log1p-expm1-u_binary64
764×expm1-log1p-u_binary64
747×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify53.0ms (0.3%)

Algorithm
egg-herbie
Rules
427×fma-def_binary64
226×fma-neg_binary64
80×cancel-sign-sub-inv_binary64
75×associate-*l*_binary64
75×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024508
165508
2156508
3335508
4739508
51153508
61541508
71612508
Stop Event
saturated
Counts
117 → 73
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 -1 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 (-.f64 y 1) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
Outputs
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 (-.f64 (*.f64 y x) x) z)
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 (*.f64 z x))
(neg.f64 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 x z))
(*.f64 (*.f64 y x) z)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 y (*.f64 z x))
(*.f64 (*.f64 y z) x)
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 x z))
(*.f64 (*.f64 y x) z)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) (*.f64 z x)))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 x (-.f64 (*.f64 y z) z))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 (-.f64 y 1) x)
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(-.f64 (*.f64 y x) x)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1 y)) x))
(-.f64 (*.f64 y x) x)

localize18.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.6b
(pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)
3.4b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
12.7b
(cbrt.f64 (*.f64 y (neg.f64 z)))
Compiler

Compiled 46 to 19 computations (58.7% saved)

series16.0ms (0.1%)

Counts
3 → 18
Calls

21 calls:

TimeVariablePointExpression
4.0ms
x
@0
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
1.0ms
y
@inf
(pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)
1.0ms
y
@0
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
1.0ms
y
@0
(pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)
1.0ms
z
@inf
(pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)

rewrite74.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
960×pow1_binary64
894×add-log-exp_binary64
893×log1p-expm1-u_binary64
893×expm1-log1p-u_binary64
114×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify7.0s (40.4%)

Algorithm
egg-herbie
Rules
1766×sqr-pow_binary64
1765×pow-base-1_binary64
277×fma-def_binary64
69×associate-*l*_binary64
66×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
013162
137126
277102
3173102
4337102
5550102
6722102
7833102
8969102
9973102
10977102
11981102
12985102
13989102
14993102
15997102
161001102
171005102
181009102
191013102
201017102
211021102
221025102
231029102
241033102
251037102
261041102
271045102
281049102
291053102
301057102
311061102
321065102
331069102
341073102
351077102
361081102
371085102
381089102
391093102
401097102
411101102
421105102
431109102
441113102
451117102
461121102
471125102
481129102
491133102
501137102
511141102
521145102
531149102
541153102
551157102
561161102
571165102
581169102
591173102
601177102
611181102
621185102
631189102
641193102
651197102
661201102
671205102
681209102
691213102
701217102
711221102
721225102
731229102
741233102
751237102
761241102
771245102
781249102
791253102
801257102
811261102
821265102
831269102
841273102
851277102
861281102
871285102
881289102
891293102
901297102
911301102
921305102
931309102
941313102
951317102
961321102
971325102
981329102
991333102
1001337102
1011341102
1021345102
1031349102
1041353102
1051357102
1061361102
1071365102
1081369102
1091373102
1101377102
1111381102
1121385102
1131389102
1141393102
1151397102
1161401102
1171405102
1181409102
1191413102
1201417102
1211421102
1221425102
1231429102
1241433102
1251437102
1261441102
1271445102
1281449102
1291453102
1301457102
1311461102
1321465102
1331469102
1341473102
1351477102
1361481102
1371485102
1381489102
1391493102
1401497102
1411501102
1421505102
1431509102
1441513102
1451517102
1461521102
1471525102
1481529102
1491533102
1501537102
1511541102
1521545102
1531549102
1541553102
1551557102
1561561102
1571565102
1581569102
1591573102
1601577102
1611581102
1621585102
1631589102
1641593102
1651597102
1661601102
1671605102
1681609102
1691613102
1701617102
1711621102
1721625102
1731629102
1741633102
1751637102
1761641102
1771645102
1781649102
1791653102
1801657102
1811661102
1821665102
1831669102
1841673102
1851677102
1861681102
1871685102
1881689102
1891693102
1901697102
1911701102
1921705102
1931709102
1941713102
1951717102
1961721102
1971725102
1981729102
1991733102
2001737102
2011741102
2021745102
2031749102
2041753102
2051757102
2061761102
2071765102
2081769102
2091773102
2101777102
2111781102
2121785102
2131789102
2141793102
2151797102
2161801102
2171805102
2181809102
2191813102
2201817102
2211821102
2221825102
2231829102
2241833102
2251837102
2261841102
2271845102
2281849102
2291853102
2301857102
2311861102
2321865102
2331869102
2341873102
2351877102
2361881102
2371885102
2381889102
2391893102
2401897102
2411901102
2421905102
2431909102
2441913102
2451917102
2461921102
2471925102
2481929102
2491933102
2501937102
2511941102
2521945102
2531949102
2541953102
2551957102
2561961102
2571965102
2581969102
2591973102
2601977102
2611981102
2621985102
2631989102
2641993102
2651997102
2662001102
2672005102
2682009102
2692013102
2702017102
2712021102
2722025102
2732029102
2742033102
2752037102
2762041102
2772045102
2782049102
2792053102
2802057102
2812061102
2822065102
2832069102
2842073102
2852077102
2862081102
2872085102
2882089102
2892093102
2902097102
2912101102
2922105102
2932109102
2942113102
2952117102
2962121102
2972125102
2982129102
2992133102
3002137102
3012141102
3022145102
3032149102
3042153102
3052157102
3062161102
3072165102
3082169102
3092173102
3102177102
3112181102
3122185102
3132189102
3142193102
3152197102
3162201102
3172205102
3182209102
3192213102
3202217102
3212221102
3222225102
3232229102
3242233102
3252237102
3262241102
3272245102
3282249102
3292253102
3302257102
3312261102
3322265102
3332269102
3342273102
3352277102
3362281102
3372285102
3382289102
3392293102
3402297102
3412301102
3422305102
3432309102
3442313102
3452317102
3462321102
3472325102
3482329102
3492333102
3502337102
3512341102
3522345102
3532349102
3542353102
3552357102
3562361102
3572365102
3582369102
3592373102
3602377102
3612381102
3622385102
3632389102
3642393102
3652397102
3662401102
3672405102
3682409102
3692413102
3702417102
3712421102
3722425102
3732429102
3742433102
3752437102
3762441102
3772445102
3782449102
3792453102
3802457102
3812461102
3822465102
3832469102
3842473102
3852477102
3862481102
3872485102
3882489102
3892493102
3902497102
3912501102
3922505102
3932509102
3942513102
3952517102
3962521102
3972525102
3982529102
3992533102
4002537102
4012541102
4022545102
4032549102
4042553102
4052557102
4062561102
4072565102
4082569102
4092573102
4102577102
4112581102
4122585102
4132589102
4142593102
4152597102
4162601102
4172605102
4182609102
4192613102
4202617102
4212621102
4222625102
4232629102
4242633102
4252637102
4262641102
4272645102
4282649102
4292653102
4302657102
4312661102
4322665102
4332669102
4342673102
4352677102
4362681102
4372685102
4382689102
4392693102
4402697102
4412701102
4422705102
4432709102
4442713102
4452717102
4462721102
4472725102
4482729102
4492733102
4502737102
4512741102
4522745102
4532749102
4542753102
4552757102
4562761102
4572765102
4582769102
4592773102
4602777102
4612781102
4622785102
4632789102
4642793102
4652797102
4662801102
4672805102
4682809102
4692813102
4702817102
4712821102
4722825102
4732829102
4742833102
4752837102
4762841102
4772845102
4782849102
4792853102
4802857102
4812861102
4822865102
4832869102
4842873102
4852877102
4862881102
4872885102
4882889102
4892893102
4902897102
4912901102
4922905102
4932909102
4942913102
4952917102
4962921102
4972925102
4982929102
4992933102
5002937102
5012941102
5022945102
5032949102
5042953102
5052957102
5062961102
5072965102
5082969102
5092973102
5102977102
5112981102
5122985102
5132989102
5142993102
5152997102
5163001102
5173005102
5183009102
5193013102
5203017102
5213021102
5223025102
5233029102
5243033102
5253037102
5263041102
5273045102
5283049102
5293053102
5303057102
5313061102
5323065102
5333069102
5343073102
5353077102
5363081102
5373085102
5383089102
5393093102
5403097102
5413101102
5423105102
5433109102
5443113102
5453117102
5463121102
5473125102
5483129102
5493133102
5503137102
5513141102
5523145102
5533149102
5543153102
5553157102
5563161102
5573165102
5583169102
5593173102
5603177102
5613181102
5623185102
5633189102
5643193102
5653197102
5663201102
5673205102
5683209102
5693213102
5703217102
5713221102
5723225102
5733229102
5743233102
5753237102
5763241102
5773245102
5783249102
5793253102
5803257102
5813261102
5823265102
5833269102
5843273102
5853277102
5863281102
5873285102
5883289102
5893293102
5903297102
5913301102
5923305102
5933309102
5943313102
5953317102
5963321102
5973325102
5983329102
5993333102
6003337102
6013341102
6023345102
6033349102
6043353102
6053357102
6063361102
6073365102
6083369102
6093373102
6103377102
6113381102
6123385102
6133389102
6143393102
6153397102
6163401102
6173405102
6183409102
6193413102
6203417102
6213421102
6223425102
6233429102
6243433102
6253437102
6263441102
6273445102
6283449102
6293453102
6303457102
6313461102
6323465102
6333469102
6343473102
6353477102
6363481102
6373485102
6383489102
6393493102
6403497102
6413501102
6423505102
6433509102
6443513102
6453517102
6463521102
6473525102
6483529102
6493533102
6503537102
6513541102
6523545102
6533549102
6543553102
6553557102
6563561102
6573565102
6583569102
6593573102
6603577102
6613581102
6623585102
6633589102
6643593102
6653597102
6663601102
6673605102
6683609102
6693613102
6703617102
6713621102
6723625102
6733629102
6743633102
6753637102
6763641102
6773645102
6783649102
6793653102
6803657102
6813661102
6823665102
6833669102
6843673102
6853677102
6863681102
6873685102
6883689102
6893693102
6903697102
6913701102
6923705102
6933709102
6943713102
6953717102
6963721102
6973725102
6983729102
6993733102
7003737102
7013741102
7023745102
7033749102
7043753102
7053757102
7063761102
7073765102
7083769102
7093773102
7103777102
7113781102
7123785102
7133789102
7143793102
7153797102
7163801102
7173805102
7183809102
7193813102
7203817102
7213821102
7223825102
7233829102
7243833102
7253837102
7263841102
7273845102
7283849102
7293853102
7303857102
7313861102
7323865102
7333869102
7343873102
7353877102
7363881102
7373885102
7383889102
7393893102
7403897102
7413901102
7423905102
7433909102
7443913102
7453917102
7463921102
7473925102
7483929102
7493933102
7503937102
7513941102
7523945102
7533949102
7543953102
7553957102
7563961102
7573965102
7583969102
7593973102
7603977102
7613981102
7623985102
7633989102
7643993102
7653997102
7664001102
7674005102
7684009102
7694013102
7704017102
7714021102
7724025102
7734029102
7744033102
7754037102
7764041102
7774045102
7784049102
7794053102
7804057102
7814061102
7824065102
7834069102
7844073102
7854077102
7864081102
7874085102
7884089102
7894093102
7904097102
7914101102
7924105102
7934109102
7944113102
7954117102
7964121102
7974125102
7984129102
7994133102
8004137102
8014141102
8024145102
8034149102
8044153102
8054157102
8064161102
8074165102
8084169102
8094173102
8104177102
8114181102
8124185102
8134189102
8144193102
8154197102
8164201102
8174205102
8184209102
8194213102
8204217102
8214221102
8224225102
8234229102
8244233102
8254237102
8264241102
8274245102
8284249102
8294253102
8304257102
8314261102
8324265102
8334269102
8344273102
8354277102
8364281102
8374285102
8384289102
8394293102
8404297102
8414301102
8424305102
8434309102
8444313102
8454317102
8464321102
8474325102
8484329102
8494333102
8504337102
8514341102
8524345102
8534349102
8544353102
8554357102
8564361102
8574365102
8584369102
8594373102
8604377102
8614381102
8624385102
8634389102
8644393102
8654397102
8664401102
8674405102
8684409102
8694413102
8704417102
8714421102
8724425102
8734429102
8744433102
8754437102
8764441102
8774445102
8784449102
8794453102
8804457102
8814461102
8824465102
8834469102
8844473102
8854477102
8864481102
8874485102
8884489102
8894493102
8904497102
8914501102
8924505102
8934509102
8944513102
8954517102
8964521102
8974525102
8984529102
8994533102
9004537102
9014541102
9024545102
9034549102
9044553102
9054557102
9064561102
9074565102
9084569102
9094573102
9104577102
9114581102
9124585102
9134589102
9144593102
9154597102
9164601102
9174605102
9184609102
9194613102
9204617102
9214621102
9224625102
9234629102
9244633102
9254637102
9264641102
9274645102
9284649102
9294653102
9304657102
9314661102
9324665102
9334669102
9344673102
9354677102
9364681102
9374685102
9384689102
9394693102
9404697102
9414701102
9424705102
9434709102
9444713102
9454717102
9464721102
9474725102
9484729102
9494733102
9504737102
9514741102
9524745102
9534749102
9544753102
9554757102
9564761102
9574765102
9584769102
9594773102
9604777102
9614781102
9624785102
9634789102
9644793102
9654797102
9664801102
9674805102
9684809102
9694813102
9704817102
9714821102
9724825102
9734829102
9744833102
9754837102
9764841102
9774845102
9784849102
9794853102
9804857102
9814861102
9824865102
9834869102
9844873102
9854877102
9864881102
9874885102
9884889102
9894893102
9904897102
9914901102
9924905102
9934909102
9944913102
9954917102
9964921102
9974925102
9984929102
9994933102
10004937102
10014941102
10024945102
10034949102
10044953102
10054957102
10064961102
10074965102
10084969102
10094973102
10104977102
10114981102
10124985102
10134989102
10144993102
10154997102
10165001102
10175005102
10185009102
10195013102
10205017102
10215021102
10225025102
10235029102
10245033102
10255037102
10265041102
10275045102
10285049102
10295053102
10305057102
10315061102
10325065102
10335069102
10345073102
10355077102
10365081102
10375085102
10385089102
10395093102
10405097102
10415101102
10425105102
10435109102
10445113102
10455117102
10465121102
10475125102
10485129102
10495133102
10505137102
10515141102
10525145102
10535149102
10545153102
10555157102
10565161102
10575165102
10585169102
10595173102
10605177102
10615181102
10625185102
10635189102
10645193102
10655197102
10665201102
10675205102
10685209102
10695213102
10705217102
10715221102
10725225102
10735229102
10745233102
10755237102
10765241102
10775245102
10785249102
10795253102
10805257102
10815261102
10825265102
10835269102
10845273102
10855277102
10865281102
10875285102
10885289102
10895293102
10905297102
10915301102
10925305102
10935309102
10945313102
10955317102
10965321102
10975325102
10985329102
10995333102
11005337102
11015341102
11025345102
11035349102
11045353102
11055357102
11065361102
11075365102
11085369102
11095373102
11105377102
11115381102
11125385102
11135389102
11145393102
11155397102
11165401102
11175405102
11185409102
11195413102
11205417102
11215421102
11225425102
11235429102
11245433102
11255437102
11265441102
11275445102
11285449102
11295453102
11305457102
11315461102
11325465102
11335469102
11345473102
11355477102
11365481102
11375485102
11385489102
11395493102
11405497102
11415501102
11425505102
11435509102
11445513102
11455517102
11465521102
11475525102
11485529102
11495533102
11505537102
11515541102
11525545102
11535549102
11545553102
11555557102
11565561102
11575565102
11585569102
11595573102
11605577102
11615581102
11625585102
11635589102
11645593102
11655597102
11665601102
11675605102
11685609102
11695613102
11705617102
11715621102
11725625102
11735629102
11745633102
11755637102
11765641102
11775645102
11785649102
11795653102
11805657102
11815661102
11825665102
11835669102
11845673102
11855677102
11865681102
11875685102
11885689102
11895693102
11905697102
11915701102
11925705102
11935709102
11945713102
11955717102
11965721102
11975725102
11985729102
11995733102
12005737102
12015741102
12025745102
12035749102
12045753102
12055757102
12065761102
12075765102
12085769102
12095773102
12105777102
12115781102
12125785102
12135789102
12145793102
12155797102
12165801102
12175805102
12185809102
12195813102
12205817102
12215821102
12225825102
12235829102
12245833102
12255837102
12265841102
12275845102
12285849102
12295853102
12305857102
12315861102
12325865102
12335869102
12345873102
12355877102
12365881102
12375885102
12385889102
12395893102
12405897102
12415901102
12425905102
12435909102
12445913102
12455917102
12465921102
12475925102
12485929102
12495933102
12505937102
12515941102
12525945102
12535949102
12545953102
12555957102
12565961102
12575965102
12585969102
12595973102
12605977102
12615981102
12625985102
12635989102
12645993102
12655997102
12666001102
12676005102
12686009102
12696013102
12706017102
12716021102
12726025102
12736029102
12746033102
12756037102
12766041102
12776045102
12786049102
12796053102
12806057102
12816061102
12826065102
12836069102
12846073102
12856077102
12866081102
12876085102
12886089102
12896093102
12906097102
12916101102
12926105102
12936109102
12946113102
12956117102
12966121102
12976125102
12986129102
12996133102
13006137102
13016141102
13026145102
13036149102
13046153102
13056157102
13066161102
13076165102
13086169102
13096173102
13106177102
13116181102
13126185102
13136189102
13146193102
13156197102
13166201102
13176205102
13186209102
13196213102
13206217102
13216221102
13226225102
13236229102
13246233102
13256237102
13266241102
13276245102
13286249102
13296253102
13306257102
13316261102
13326265102
13336269102
13346273102
13356277102
13366281102
13376285102
13386289102
13396293102
13406297102
13416301102
13426305102
13436309102
13446313102
13456317102
13466321102
13476325102
13486329102
13496333102
13506337102
13516341102
13526345102
13536349102
13546353102
13556357102
13566361102
13576365102
13586369102
13596373102
13606377102
13616381102
13626385102
13636389102
13646393102
13656397102
13666401102
13676405102
13686409102
13696413102
13706417102
13716421102
13726425102
13736429102
13746433102
13756437102
13766441102
13776445102
13786449102
13796453102
13806457102
13816461102
13826465102
13836469102
13846473102
13856477102
13866481102
13876485102
13886489102
13896493102
13906497102
13916501102
13926505102
13936509102
13946513102
13956517102
13966521102
13976525102
13986529102
13996533102
14006537102
14016541102
14026545102
14036549102
14046553102
14056557102
14066561102
14076565102
14086569102
14096573102
14106577102
14116581102
14126585102
14136589102
14146593102
14156597102
14166601102
14176605102
14186609102
14196613102
14206617102
14216621102
14226625102
14236629102
14246633102
14256637102
14266641102
14276645102
14286649102
14296653102
14306657102
14316661102
14326665102
14336669102
14346673102
14356677102
14366681102
14376685102
14386689102
14396693102
14406697102
14416701102
14426705102
14436709102
14446713102
14456717102
14466721102
14476725102
14486729102
14496733102
14506737102
14516741102
14526745102
14536749102
14546753102
14556757102
14566761102
14576765102
14586769102
14596773102
14606777102
14616781102
14626785102
14636789102
14646793102
14656797102
14666801102
14676805102
14686809102
14696813102
14706817102
14716821102
14726825102
14736829102
14746833102
14756837102
14766841102
14776845102
14786849102
14796853102
14806857102
14816861102
14826865102
14836869102
14846873102
14856877102
14866881102
14876885102
14886889102
14896893102
14906897102
14916901102
14926905102
14936909102
14946913102
14956917102
14966921102
14976925102
14986929102
14996933102
15006937102
15016941102
15026945102
15036949102
15046953102
15056957102
15066961102
15076965102
15086969102
15096973102
15106977102
15116981102
15126985102
15136989102
15146993102
15156997102
15167001102
15177005102
15187009102
15197013102
15207017102
15217021102
15227025102
15237029102
15247033102
15257037102
15267041102
15277045102
15287049102
15297053102
15307057102
15317061102
15327065102
15337069102
15347073102
15357077102
15367081102
15377085102
15387089102
15397093102
15407097102
15417101102
15427105102
15437109102
15447113102
15457117102
15467121102
15477125102
15487129102
15497133102
15507137102
15517141102
15527145102
15537149102
15547153102
15557157102
15567161102
15577165102
15587169102
15597173102
15607177102
15617181102
15627185102
15637189102
15647193102
15657197102
15667201102
15677205102
15687209102
15697213102
15707217102
15717221102
15727225102
15737229102
15747233102
15757237102
15767241102
15777245102
15787249102
15797253102
15807257102
15817261102
15827265102
15837269102
15847273102
15857277102
15867281102
15877285102
15887289102
15897293102
15907297102
15917301102
15927305102
15937309102
15947313102
15957317102
15967321102
15977325102
15987329102
15997333102
16007337102
16017341102
16027345102
16037349102
16047353102
16057357102
16067361102
16077365102
16087369102
16097373102
16107377102
16117381102
16127385102
16137389102
16147393102
16157397102
16167401102
16177405102
16187409102
16197413102
16207417102
16217421102
16227425102
16237429102
16247433102
16257437102
16267441102
16277445102
16287449102
16297453102
16307457102
16317461102
16327465102
16337469102
16347473102
16357477102
16367481102
16377485102
16387489102
16397493102
16407497102
16417501102
16427505102
16437509102
16447513102
16457517102
16467521102
16477525102
16487529102
16497533102
16507537102
16517541102
16527545102
16537549102
16547553102
16557557102
16567561102
16577565102
16587569102
16597573102
16607577102
16617581102
16627585102
16637589102
16647593102
16657597102
16667601102
16677605102
16687609102
16697613102
16707617102
16717621102
16727625102
16737629102
16747633102
16757637102
16767641102
16777645102
16787649102
16797653102
16807657102
16817661102
16827665102
16837669102
16847673102
16857677102
16867681102
16877685102
16887689102
16897693102
16907697102
16917701102
16927705102
16937709102
16947713102
16957717102
16967721102
16977725102
16987729102
16997733102
17007737102
17017741102
17027745102
17037749102
17047753102
17057757102
17067761102
17077765102
17087769102
17097773102
17107777102
17117781102
17127785102
17137789102
17147793102
17157797102
17167801102
17177805102
17187809102
17197813102
17207817102
17217821102
17227825102
17237829102
17247833102
17257837102
17267841102
17277845102
17287849102
17297853102
17307857102
17317861102
17327865102
17337869102
17347873102
17357877102
17367881102
17377885102
17387889102
17397893102
17407897102
17417901102
17427905102
17437909102
17447913102
17457917102
17467921102
17477925102
17487929102
17497933102
17507937102
17517941102
17527945102
17537949102
17547953102
17557957102
17567961102
17577965102
17587969102
17597973102
17607977102
17617981102
17627985102
17637989102
17647993102
17657997102
Stop Event
node limit
Counts
104 → 89
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
x
x
x
x
x
x
Outputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 y z)))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (fma.f64 y z 1) x)
(fma.f64 z (*.f64 y x) x)
(fma.f64 y (*.f64 z x) x)
x
x
x
x
x
x

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
0.5b
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)
2.9b
(*.f64 y (*.f64 x z))
13.0b
(cbrt.f64 (*.f64 y (*.f64 x z)))
Compiler

Compiled 44 to 12 computations (72.7% saved)

series25.0ms (0.1%)

Counts
4 → 72
Calls

36 calls:

TimeVariablePointExpression
4.0ms
x
@0
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)
3.0ms
z
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
3.0ms
y
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
1.0ms
x
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
1.0ms
x
@inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))

rewrite88.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
796×pow1_binary64
738×add-log-exp_binary64
737×log1p-expm1-u_binary64
737×expm1-log1p-u_binary64
719×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01035
120635
2212235
Stop Event
node limit
Counts
4 → 69
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 y (*.f64 x z)))
(*.f64 y (*.f64 x z))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 y (*.f64 x z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (cbrt.f64 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y (*.f64 x z)) 1/6) (pow.f64 (*.f64 y (*.f64 x z)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y x)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 y (*.f64 x z))) 1/3) (pow.f64 (sqrt.f64 (*.f64 y (*.f64 x z))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y x) 1/3) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x z)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x z)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (*.f64 x z) 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 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x z))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) (cbrt.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (*.f64 (cbrt.f64 (*.f64 x z)) (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 (pow.f64 (*.f64 x z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (*.f64 x z))) (pow.f64 (*.f64 y (*.f64 x z)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 y (*.f64 x z)) 1/6) (sqrt.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) (cbrt.f64 y)) (cbrt.f64 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 y (*.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (*.f64 y (*.f64 x z))))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (*.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (*.f64 x z) 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 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x z))))))))

simplify20.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06504
110504
217504
319504
Stop Event
saturated
Counts
141 → 57
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
Outputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))

eval79.0ms (0.5%)

Compiler

Compiled 4733 to 1828 computations (61.4% saved)

prune69.0ms (0.4%)

Pruning

16 alts after pruning (5 fresh and 11 done)

PrunedKeptTotal
New3333336
Fresh224
Picked011
Done11011
Total33616352
Error
0b
Counts
352 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(*.f64 (-.f64 1 z) x)
21.1b
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
46.1b
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 3)
47.5b
(*.f64 (*.f64 z y) x)
45.8b
(*.f64 y (*.f64 z x))
3.6b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
45.2b
(*.f64 (*.f64 y x) z)
19.3b
(-.f64 x (*.f64 z x))
30.7b
(*.f64 x (-.f64 (*.f64 y z) z))
55.1b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
45.4b
(*.f64 z (neg.f64 x))
20.9b
(+.f64 x (*.f64 (*.f64 y z) x))
46.1b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
19.4b
(+.f64 (*.f64 y (*.f64 z x)) x)
36.1b
x
45.8b
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) z) (fma.f64 y x x))
Compiler

Compiled 166 to 108 computations (34.9% saved)

regimes433.0ms (2.5%)

Counts
34 → 3
Calls
Call 1
Inputs
x
x
x
(*.f64 z (neg.f64 x))
(*.f64 (*.f64 z y) x)
(*.f64 (*.f64 y x) z)
(*.f64 x (*.f64 z y))
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 (*.f64 y z) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
(pow.f64 (cbrt.f64 (+.f64 x (*.f64 (*.f64 y z) x))) 3)
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 y (neg.f64 z))) 3)))
(*.f64 x (-.f64 1 (pow.f64 (cbrt.f64 (*.f64 (-.f64 1 y) z)) 3)))
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 2)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))) 3)
(/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 y x) 2) (*.f64 x x)) z) (fma.f64 y x x))
(*.f64 (pow.f64 (cbrt.f64 z) 2) (*.f64 (cbrt.f64 z) (*.f64 y x)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 2) (cbrt.f64 (*.f64 y (*.f64 x z))))
(fma.f64 (*.f64 y (sqrt.f64 (*.f64 z x))) (sqrt.f64 (*.f64 z x)) (*.f64 x (-.f64 1 z)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))) 2) (cbrt.f64 (*.f64 x (fma.f64 y z (-.f64 1 z)))))
(/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 y z z)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (fma.f64 y z z)) (*.f64 x (fma.f64 y z z))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (fma.f64 y z z)) x))))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 y z z) x)) 2) (cbrt.f64 (fma.f64 x (fma.f64 y z z) x)))
Outputs
(*.f64 z (-.f64 (*.f64 y x) x))
(fma.f64 x (fma.f64 y z (neg.f64 z)) x)
(*.f64 z (-.f64 (*.f64 y x) x))
Calls

11 calls:

78.0ms
(*.f64 (-.f64 1 y) z)
56.0ms
(*.f64 (-.f64 1 y) z)
47.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
46.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
45.0ms
x
Results
ErrorSegmentsBranch
0.1b3x
2.1b1y
0.1b3z
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(*.f64 (-.f64 1 y) z)
0.1b3(*.f64 (-.f64 1 y) z)
2.1b1(-.f64 1 y)
2.1b1(-.f64 1 y)
Compiler

Compiled 412 to 209 computations (49.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.752947274607499e+233
1.3640472659718485e+239
0.0ms
-3.565723313963432e+246
-1.3893613165427457e+246
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes310.0ms (1.8%)

Counts
21 → 3
Calls
Call 1
Inputs
x
x
x
(*.f64 z (neg.f64 x))
(*.f64 (*.f64 z y) x)
(*.f64 (*.f64 y x) z)
(*.f64 x (*.f64 z y))
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 x (-.f64 (*.f64 y z) z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 (*.f64 y z) x))
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (-.f64 1 (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x z))) 3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 y x) z)) 2)
Outputs
(*.f64 z (-.f64 (*.f64 y x) x))
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 z (-.f64 (*.f64 y x) x))
Calls

10 calls:

53.0ms
(*.f64 (-.f64 1 y) z)
51.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
48.0ms
(*.f64 (-.f64 1 y) z)
36.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
36.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
Results
ErrorSegmentsBranch
0.1b3x
2.1b1y
0.1b3z
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(*.f64 (-.f64 1 y) z)
0.1b3(*.f64 (-.f64 1 y) z)
2.1b1(-.f64 1 y)
2.1b1(-.f64 1 y)
Compiler

Compiled 198 to 111 computations (43.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.752947274607499e+233
1.3640472659718485e+239
0.0ms
-3.565723313963432e+246
-1.3893613165427457e+246
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes53.0ms (0.3%)

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

3 calls:

25.0ms
z
15.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
3.9b1x
2.2b2y
0.1b3z
Compiler

Compiled 102 to 46 computations (54.9% saved)

bsearch36.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
4.986159065514463e-87
8.480991975161941e-87
18.0ms
-2.6376144672932906e-30
-1.0558917861643877e-38
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes87.0ms (0.5%)

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

3 calls:

36.0ms
x
24.0ms
y
23.0ms
z
Results
ErrorSegmentsBranch
13.1b5x
2.8b3y
0.8b3z
Compiler

Compiled 93 to 41 computations (55.9% saved)

bsearch36.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.583013194625646e-6
6.8685049500192225e-6
18.0ms
-1.841073836502696e-13
-6.337637843331155e-18
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes95.0ms (0.6%)

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

3 calls:

48.0ms
x
22.0ms
y
22.0ms
z
Results
ErrorSegmentsBranch
13.1b6x
2.8b3y
4.3b3z
Compiler

Compiled 78 to 34 computations (56.4% saved)

bsearch36.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
0.0003412031599407887
0.0006936896789536232
17.0ms
-25952.18790902413
-5.202389657302897
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes98.0ms (0.6%)

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

3 calls:

38.0ms
y
37.0ms
x
20.0ms
z
Results
ErrorSegmentsBranch
16.4b5x
7.2b5y
13.0b3z
Compiler

Compiled 64 to 31 computations (51.6% saved)

bsearch206.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
64.0ms
1.0996843743118655e+126
4.082017537094393e+127
106.0ms
6.472302082844747e+73
1.1426495531610745e+75
18.0ms
228737.93265213745
721268249.2889566
17.0ms
-1.4775314561492657e+33
-2.351556968548285e+26
Compiler

Compiled 228 to 161 computations (29.4% saved)

regimes54.0ms (0.3%)

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

3 calls:

38.0ms
y
7.0ms
x
7.0ms
z
Results
ErrorSegmentsBranch
19.3b1x
7.3b5y
19.3b1z
Compiler

Compiled 57 to 28 computations (50.9% saved)

bsearch410.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
261.0ms
1.0996843743118655e+126
4.082017537094393e+127
113.0ms
6.472302082844747e+73
1.1426495531610745e+75
18.0ms
228737.93265213745
721268249.2889566
17.0ms
-1.4775314561492657e+33
-2.351556968548285e+26
Compiler

Compiled 214 to 154 computations (28% saved)

regimes170.0ms (1%)

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

3 calls:

75.0ms
x
69.0ms
y
23.0ms
z
Results
ErrorSegmentsBranch
30.3b7x
19.3b9y
17.5b5z
Compiler

Compiled 37 to 19 computations (48.6% saved)

bsearch272.0ms (1.6%)

Algorithm
binary-search
Steps
TimeLeftRight
61.0ms
6.8685049500192225e-6
1446590271800995300.0
18.0ms
8.36629881051669e-41
5.535080333208874e-36
19.0ms
-6.337637843331155e-18
-3.9322444364212413e-19
174.0ms
-8.043186569540581e+30
-1.2657544430530563e+23
Compiler

Compiled 205 to 146 computations (28.8% saved)

regimes165.0ms (1%)

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

3 calls:

71.0ms
y
67.0ms
x
25.0ms
z
Results
ErrorSegmentsBranch
32.6b5x
21.6b9y
17.5b5z
Compiler

Compiled 27 to 16 computations (40.7% saved)

bsearch347.0ms (2%)

Algorithm
binary-search
Steps
TimeLeftRight
86.0ms
6.8685049500192225e-6
1446590271800995300.0
22.0ms
8.36629881051669e-41
5.535080333208874e-36
31.0ms
-6.337637843331155e-18
-3.9322444364212413e-19
207.0ms
-8.043186569540581e+30
-1.2657544430530563e+23
Compiler

Compiled 205 to 146 computations (28.8% saved)

regimes84.0ms (0.5%)

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

3 calls:

54.0ms
y
15.0ms
x
13.0ms
z
Results
ErrorSegmentsBranch
34.0b3x
31.4b5y
20.0b3z
Compiler

Compiled 22 to 14 computations (36.4% saved)

bsearch187.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
168.0ms
6.8685049500192225e-6
1446590271800995300.0
19.0ms
-31.24259517742624
-9.606829569756566e-9
Compiler

Compiled 161 to 124 computations (23% saved)

regimes13.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

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

3 calls:

4.0ms
z
4.0ms
y
4.0ms
x
Results
ErrorSegmentsBranch
36.1b1x
36.1b1y
36.1b1z
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify61.0ms (0.4%)

Algorithm
egg-herbie
Rules
111×distribute-rgt-neg-in_binary64
86×cancel-sign-sub-inv_binary64
78×distribute-lft-neg-out_binary64
74×neg-sub0_binary64
74×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
098478
1136478
2162478
3179478
4210478
5284478
6372478
7464478
8581478
9716478
10818478
11881478
12919478
13927478
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 (-.f64 1 y) z) -2000000000000000137172103703564102993414188346625929973381646791516038639747754425505775838752679231688970493666459275394749789597812172229456459932366192699143082941239010020801269538891555886778514937042106442934926263917068257100320412740354048) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984) (fma.f64 x (fma.f64 y z (neg.f64 z)) x) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 (*.f64 (-.f64 1 y) z) -2000000000000000137172103703564102993414188346625929973381646791516038639747754425505775838752679231688970493666459275394749789597812172229456459932366192699143082941239010020801269538891555886778514937042106442934926263917068257100320412740354048) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 z -7529058325384417/2854495385411919762116571938898990272765493248) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 2791930887662053/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (+.f64 x (*.f64 (*.f64 y z) x)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)))
(if (<=.f64 z -3646622427979893/19807040628566084398385987584) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 z 7475568452240553/4722366482869645213696) (+.f64 x (*.f64 (*.f64 y z) x)) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 y -7133683093049937/274877906944) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 1573521842142179/4611686018427387904) (*.f64 (-.f64 1 z) x) (+.f64 (*.f64 y (*.f64 z x)) x)))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 (*.f64 y x) z) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 (-.f64 1 z) x) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 x (-.f64 (*.f64 y z) z)) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 (*.f64 y x) z)))))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 (*.f64 y x) z) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 (-.f64 1 z) x) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 (*.f64 y x) z) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 (*.f64 y x) z)))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 (*.f64 y x) z) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 (*.f64 y x) z) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 (*.f64 z y) x) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 (*.f64 z y) x) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1099251093743313/35184372088832) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1420000000000000000) x (*.f64 z (neg.f64 x))))
x
Outputs
(if (<=.f64 (*.f64 (-.f64 1 y) z) -2000000000000000137172103703564102993414188346625929973381646791516038639747754425505775838752679231688970493666459275394749789597812172229456459932366192699143082941239010020801269538891555886778514937042106442934926263917068257100320412740354048) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984) (fma.f64 x (fma.f64 y z (neg.f64 z)) x) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 (*.f64 (-.f64 1 y) z) -2000000000000000137172103703564102993414188346625929973381646791516038639747754425505775838752679231688970493666459275394749789597812172229456459932366192699143082941239010020801269538891555886778514937042106442934926263917068257100320412740354048) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 500000000000000008932922589403465161869764464983330902721886700279835046843346211837913774809974621039574077870438123630035862892627704080387855403711076771169001716823298010480011962421165907982822736097060355087078349785802142121984) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 z -7529058325384417/2854495385411919762116571938898990272765493248) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 2791930887662053/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (+.f64 x (*.f64 (*.f64 y z) x)) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)))
(if (<=.f64 z -7529058325384417/2854495385411919762116571938898990272765493248) (+.f64 x (*.f64 z (*.f64 x (+.f64 y -1)))) (if (<=.f64 z 2791930887662053/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (+.f64 x (*.f64 x (*.f64 y z))) (+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))))
(if (<=.f64 z -3646622427979893/19807040628566084398385987584) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 z 7475568452240553/4722366482869645213696) (+.f64 x (*.f64 (*.f64 y z) x)) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 z -3646622427979893/19807040628566084398385987584) (*.f64 z (-.f64 (*.f64 y x) x)) (if (<=.f64 z 7475568452240553/4722366482869645213696) (+.f64 x (*.f64 x (*.f64 y z))) (*.f64 z (-.f64 (*.f64 y x) x))))
(if (<=.f64 y -7133683093049937/274877906944) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 1573521842142179/4611686018427387904) (*.f64 (-.f64 1 z) x) (+.f64 (*.f64 y (*.f64 z x)) x)))
(if (<=.f64 y -7133683093049937/274877906944) (+.f64 x (*.f64 y (*.f64 z x))) (if (<=.f64 y 1573521842142179/4611686018427387904) (*.f64 x (-.f64 1 z)) (+.f64 x (*.f64 y (*.f64 z x)))))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 (*.f64 y x) z) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 (-.f64 1 z) x) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 x (-.f64 (*.f64 y z) z)) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 (*.f64 y x) z)))))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 z (*.f64 y x)) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 x (-.f64 1 z)) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 x (-.f64 (*.f64 y z) z)) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 z (*.f64 y x))))))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 (*.f64 y x) z) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 (-.f64 1 z) x) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 (*.f64 y x) z) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 (*.f64 y x) z)))))
(if (<=.f64 y -1477531456149265687095527415480320) (*.f64 z (*.f64 y x)) (if (<=.f64 y 7859375520764647/34359738368) (*.f64 x (-.f64 1 z)) (if (<=.f64 y 65000000000000001251103442442491463310430055267325172130333243971196682240) (*.f64 z (*.f64 y x)) (if (<=.f64 y 39999999999999998197164267139917894381200900349534096473918503930071541801164698488617560609192229203475089509547797243664269312) x (*.f64 z (*.f64 y x))))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 (*.f64 y x) z) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 (*.f64 y x) z) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 z (*.f64 y x)) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 (*.f64 z y) x) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 (*.f64 z y) x) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -129999999999999995805696) (*.f64 z (neg.f64 x)) (if (<=.f64 z -8226724266114949/1298074214633706907132624082305024) (*.f64 x (*.f64 y z)) (if (<=.f64 z 8205641997227787/98079714615416886934934209737619787751599303819750539264) x (if (<=.f64 z 2621280270878489/562949953421312) (*.f64 x (*.f64 y z)) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1099251093743313/35184372088832) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1420000000000000000) x (*.f64 z (neg.f64 x))))
x
Compiler

Compiled 363 to 192 computations (47.1% saved)

soundness281.0ms (1.6%)

Algorithm
egg-herbie
Rules
788×fma-def_binary64
710×fma-def_binary64
419×fma-neg_binary64
408×fma-neg_binary64
203×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026613
168592
2169532
3419532
4929532
51582532
62419532
72582532
82584532
92584532
0913
12013
24911
316111
449311
5114911
6189511
7259811
8270811
9270811
Stop Event
saturated
saturated
Compiler

Compiled 235 to 158 computations (32.8% saved)

end161.0ms (0.9%)

Compiler

Compiled 333 to 141 computations (57.7% saved)

Profiling

Loading profile data...