Details

Time bar (total: 3.4s)

analyze956.0ms (27.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
3.1%96.7%0.1%8
3.1%95.2%1.7%9
19.5%76.5%4%10
25.4%70.6%4%11
28.5%65.7%5.8%12
44.4%46.6%9%13
48.8%42.2%9%14
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample1.2s (35.9%)

Results
1.1s8256×body128valid
70.0ms723×body128invalid
Compiler

Compiled 22 to 14 computations (36.4% saved)

preprocess131.0ms (3.8%)

Algorithm
egg-herbie
Rules
2118×associate-/l/_binary64
1625×fma-def_binary64
405×*-commutative_binary64
364×distribute-rgt-out_binary64
238×swap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
14640
28240
313040
416840
518940
620132
726232
8142932
9233032
10289532
11294432
12294732
13294732
14411832
15423132
16431532
17433032
18437432
19437932
20437932
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(/.f64 (*.f64 x (+.f64 y z)) z)
(/.f64 (*.f64 y (+.f64 x z)) z)
(/.f64 (*.f64 z (+.f64 y x)) x)
(/.f64 (*.f64 x (+.f64 z y)) y)
Outputs
(/.f64 (*.f64 x (+.f64 y z)) z)
(/.f64 x (/.f64 z (+.f64 y z)))
(*.f64 (/.f64 x z) (+.f64 y z))
(*.f64 (+.f64 y z) (/.f64 x z))
(*.f64 x (/.f64 (+.f64 y z) z))
(fma.f64 y (/.f64 x z) x)
(fma.f64 x (/.f64 y z) x)
(/.f64 (*.f64 y (+.f64 x z)) z)
(/.f64 y (/.f64 z (+.f64 x z)))
(*.f64 (/.f64 y z) (+.f64 x z))
(*.f64 (+.f64 x z) (/.f64 y z))
(*.f64 y (/.f64 (+.f64 x z) z))
(fma.f64 y (/.f64 x z) y)
(fma.f64 x (/.f64 y z) y)
(/.f64 (*.f64 z (+.f64 y x)) x)
(/.f64 z (/.f64 x (+.f64 x y)))
(*.f64 (/.f64 z x) (+.f64 x y))
(*.f64 (+.f64 x y) (/.f64 z x))
(*.f64 z (/.f64 (+.f64 x y) x))
(fma.f64 y (/.f64 z x) z)
(/.f64 (*.f64 x (+.f64 z y)) y)
(/.f64 x (/.f64 y (+.f64 y z)))
(*.f64 (/.f64 x y) (+.f64 y z))
(*.f64 (+.f64 y z) (/.f64 x y))
(fma.f64 z (/.f64 x y) x)
(fma.f64 x (/.f64 z y) x)
Compiler

Compiled 10 to 6 computations (40% saved)

simplify30.0ms (0.9%)

Algorithm
egg-herbie
Rules
756×associate-/l*_binary64
731×associate-/l/_binary64
589×associate-/r/_binary64
532×associate-*l/_binary64
346×associate-/r*_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0710
11710
22810
34110
45010
55610
6608
7758
82578
911908
1014488
1115858
1215988
1316038
1416088
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 x (+.f64 y z)) z)
Outputs
(/.f64 (*.f64 x (+.f64 y z)) z)
(/.f64 x (/.f64 z (+.f64 y z)))
(/.f64 (+.f64 y z) (/.f64 z x))
(*.f64 (+.f64 y z) (/.f64 x z))
(*.f64 x (/.f64 (+.f64 y z) z))
(fma.f64 y (/.f64 x z) x)
(fma.f64 x (/.f64 y z) x)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
2.4b
(fma.f64 x (/.f64 y z) x)
8.7b
(/.f64 (*.f64 x (+.f64 y z)) z)
Compiler

Compiled 54 to 30 computations (44.4% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.2b
(fma.f64 x (/.f64 y z) x)

series7.0ms (0.2%)

Counts
1 → 36
Calls

9 calls:

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

rewrite49.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
669×pow1_binary64
616×add-log-exp_binary64
616×log1p-expm1-u_binary64
616×expm1-log1p-u_binary64
65×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify21.0ms (0.6%)

Algorithm
egg-herbie
Rules
20×fma-def_binary64
10×associate-*r*_binary64
associate-/r/_binary64
associate-/l*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
011324
119324
231264
342264
472264
586264
6106264
7115264
8117264
Stop Event
saturated
Counts
58 → 28
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
Outputs
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(fma.f64 (/.f64 y z) x x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)

prune14.0ms (0.4%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New25328
Fresh011
Picked011
Done000
Total25530
Error
0.0b
Counts
30 → 5
Alt Table
StatusErrorProgram
37.9b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3))
3.4b
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
5.5b
(fma.f64 y (/.f64 x z) x)
2.4b
(fma.f64 x (/.f64 y z) x)
8.7b
(/.f64 (*.f64 x (+.f64 y z)) z)
Compiler

Compiled 381 to 138 computations (63.8% saved)

localize12.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 (fma.f64 x (/.f64 y z) x))
0.8b
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
2.2b
(fma.f64 x (/.f64 y z) x)

series110.0ms (3.2%)

Counts
2 → 24
Calls

18 calls:

TimeVariablePointExpression
62.0ms
z
@inf
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
25.0ms
y
@0
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
12.0ms
z
@-inf
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
1.0ms
x
@0
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)
1.0ms
y
@inf
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)

rewrite51.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
839×pow1_binary64
784×log1p-expm1-u_binary64
784×expm1-log1p-u_binary64
86×add-sqr-sqrt_binary64
81×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify34.0ms (1%)

Algorithm
egg-herbie
Rules
710×associate-/r*_binary64
662×fma-def_binary64
263×unswap-sqr_binary64
257×associate-/r/_binary64
181×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041750
1131732
2391711
31936699
Stop Event
node limit
Counts
73 → 60
Calls
Call 1
Inputs
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(pow.f64 x 1/3)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(pow.f64 x 1/3)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(pow.f64 x 1/3)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
Outputs
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
x
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(+.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 13) 1/9)) x)
(fma.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 13) 1/18) (pow.f64 (pow.f64 x 13) 1/18)) x)
(pow.f64 x 1/3)
(cbrt.f64 x)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))
(fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))
(fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(+.f64 (cbrt.f64 x) (-.f64 (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x)) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x)))
(+.f64 (cbrt.f64 x) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18)))))
(+.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (cbrt.f64 x))))
(+.f64 (cbrt.f64 x) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z))))))
(pow.f64 x 1/3)
(cbrt.f64 x)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))
(fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))
(fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(+.f64 (cbrt.f64 x) (-.f64 (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x)) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x)))
(+.f64 (cbrt.f64 x) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18)))))
(+.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (cbrt.f64 x))))
(+.f64 (cbrt.f64 x) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z))))))
(pow.f64 x 1/3)
(cbrt.f64 x)
(+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))
(+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))
(fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))
(fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x))
(-.f64 (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9)))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(+.f64 (cbrt.f64 x) (-.f64 (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))))))
(+.f64 (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x)) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (cbrt.f64 x)))
(+.f64 (cbrt.f64 x) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (pow.f64 (pow.f64 x 5) 1/3))) (+.f64 (pow.f64 x 1/3) (*.f64 1/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/9))))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 11) 1/9))))
(-.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (+.f64 (cbrt.f64 x) (*.f64 1/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18)))))) (*.f64 1/9 (*.f64 (/.f64 (*.f64 y y) (*.f64 z z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18)))))
(+.f64 (fma.f64 5/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (cbrt.f64 (pow.f64 x 5))) (fma.f64 1/3 (*.f64 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 7) 1/18)) (pow.f64 (pow.f64 x 7) 1/18)) (cbrt.f64 x))) (*.f64 (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) -1/9))
(fma.f64 (*.f64 (/.f64 y z) (/.f64 (*.f64 (*.f64 y (pow.f64 (pow.f64 x 11) 1/18)) (pow.f64 (pow.f64 x 11) 1/18)) z)) -1/9 (fma.f64 (/.f64 y z) (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (cbrt.f64 x))))
(+.f64 (cbrt.f64 x) (fma.f64 5/81 (*.f64 (pow.f64 (/.f64 y z) 3) (cbrt.f64 (pow.f64 x 5))) (*.f64 (/.f64 y z) (-.f64 (*.f64 1/3 (*.f64 (pow.f64 (pow.f64 x 7) 1/18) (pow.f64 (pow.f64 x 7) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 11) 1/18) (pow.f64 (pow.f64 x 11) 1/18))) (/.f64 y z))))))

prune60.0ms (1.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New87188
Fresh033
Picked101
Done011
Total88593
Error
0.0b
Counts
93 → 5
Alt Table
StatusErrorProgram
3.5b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))
37.9b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3))
5.5b
(fma.f64 y (/.f64 x z) x)
2.4b
(fma.f64 x (/.f64 y z) x)
8.7b
(/.f64 (*.f64 x (+.f64 y z)) z)
Compiler

Compiled 1447 to 602 computations (58.4% saved)

localize7.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))
0.5b
(cbrt.f64 (fma.f64 x (/.f64 y z) x))
0.5b
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2)
2.2b
(fma.f64 x (/.f64 y z) x)

series11.0ms (0.3%)

Counts
2 → 48
Calls

18 calls:

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

rewrite50.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
806×log1p-expm1-u_binary64
806×expm1-log1p-u_binary64
92×add-sqr-sqrt_binary64
90×pow1_binary64
89×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021
120721
2224321
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2)
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (cbrt.f64 (fma.f64 x (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))) (cbrt.f64 (fma.f64 x (/.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (fma.f64 x (/.f64 y z) x) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 1/6) (sqrt.f64 (fma.f64 x (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (/.f64 y z)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (/.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (/.f64 y z)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (/.f64 y z)) (*.f64 x (/.f64 y z))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (/.f64 y z)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (/.f64 y z)) (*.f64 x (/.f64 y z))) (*.f64 x x)) (-.f64 (*.f64 x (/.f64 y z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (/.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (/.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (/.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x (/.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (/.f64 y z) x)))))))

simplify36.0ms (1%)

Algorithm
egg-herbie
Rules
721×associate-*l/_binary64
641×fma-def_binary64
438×associate-/r/_binary64
391×associate-/l/_binary64
225×times-frac_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041876
1124876
2376804
32017783
Stop Event
node limit
Counts
85 → 50
Calls
Call 1
Inputs
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(pow.f64 (pow.f64 x 2) 1/3)
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
Outputs
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (*.f64 (/.f64 y z) (*.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 (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))))
(+.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 4/81 (/.f64 (*.f64 (*.f64 x x) (pow.f64 y 3)) (pow.f64 z 3)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 4/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 x x)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (fma.f64 4/81 (*.f64 (*.f64 x x) (/.f64 (pow.f64 y 3) (pow.f64 z 3))) (cbrt.f64 (*.f64 x x)))))
(+.f64 (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))) (fma.f64 (pow.f64 (/.f64 y z) 3) (*.f64 (*.f64 x x) 4/81) (cbrt.f64 (*.f64 x x))))
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (*.f64 (/.f64 y z) (*.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 (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))))
(+.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 4/81 (/.f64 (*.f64 (*.f64 x x) (pow.f64 y 3)) (pow.f64 z 3)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 4/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 x x)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (fma.f64 4/81 (*.f64 (*.f64 x x) (/.f64 (pow.f64 y 3) (pow.f64 z 3))) (cbrt.f64 (*.f64 x x)))))
(+.f64 (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))) (fma.f64 (pow.f64 (/.f64 y z) 3) (*.f64 (*.f64 x x) 4/81) (cbrt.f64 (*.f64 x x))))
(pow.f64 (pow.f64 x 2) 1/3)
(cbrt.f64 (*.f64 x x))
(+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))
(fma.f64 2/3 (*.f64 (/.f64 y z) (*.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 (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))
(-.f64 (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3)) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x))))
(+.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))))
(-.f64 (+.f64 (*.f64 4/81 (/.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 2)) (pow.f64 z 3))) (+.f64 (*.f64 2/3 (*.f64 (/.f64 y z) (pow.f64 (pow.f64 x 10) 1/9))) (pow.f64 (pow.f64 x 2) 1/3))) (*.f64 1/9 (*.f64 (/.f64 (pow.f64 y 2) (pow.f64 z 2)) (pow.f64 (pow.f64 x 14) 1/9))))
(+.f64 (fma.f64 4/81 (/.f64 (*.f64 (*.f64 x x) (pow.f64 y 3)) (pow.f64 z 3)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (cbrt.f64 (*.f64 x x)))) (*.f64 -1/9 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (*.f64 z z))))
(+.f64 (fma.f64 4/81 (*.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 x x)) (fma.f64 2/3 (*.f64 (/.f64 y z) (*.f64 (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) (/.f64 y z)) (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) -1/9))
(fma.f64 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (*.f64 (*.f64 (/.f64 y z) (/.f64 y z)) (pow.f64 (pow.f64 x 14) 1/18))) -1/9 (fma.f64 2/3 (/.f64 (*.f64 y (pow.f64 (pow.f64 x 10) 1/18)) (/.f64 z (pow.f64 (pow.f64 x 10) 1/18))) (fma.f64 4/81 (*.f64 (*.f64 x x) (/.f64 (pow.f64 y 3) (pow.f64 z 3))) (cbrt.f64 (*.f64 x x)))))
(+.f64 (*.f64 (/.f64 y z) (-.f64 (*.f64 2/3 (*.f64 (pow.f64 (pow.f64 x 10) 1/18) (pow.f64 (pow.f64 x 10) 1/18))) (*.f64 (*.f64 1/9 (*.f64 (pow.f64 (pow.f64 x 14) 1/18) (pow.f64 (pow.f64 x 14) 1/18))) (/.f64 y z)))) (fma.f64 (pow.f64 (/.f64 y z) 3) (*.f64 (*.f64 x x) 4/81) (cbrt.f64 (*.f64 x x))))
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 x y) z)
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 x y) z)
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 x y) z)
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 x (+.f64 (/.f64 y z) 1))
(fma.f64 x (/.f64 y z) x)

prune91.0ms (2.6%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1651166
Fresh033
Picked011
Done011
Total1656171
Error
0.0b
Counts
171 → 6
Alt Table
StatusErrorProgram
3.5b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))
37.9b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3))
14.3b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 4)))
5.5b
(fma.f64 y (/.f64 x z) x)
2.4b
(fma.f64 x (/.f64 y z) x)
8.7b
(/.f64 (*.f64 x (+.f64 y z)) z)
Compiler

Compiled 3787 to 1282 computations (66.1% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.3b
(fma.f64 y (/.f64 x z) x)

series13.0ms (0.4%)

Counts
1 → 36
Calls

9 calls:

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

rewrite76.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
669×pow1_binary64
616×add-log-exp_binary64
616×log1p-expm1-u_binary64
616×expm1-log1p-u_binary64
65×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify21.0ms (0.6%)

Algorithm
egg-herbie
Rules
20×fma-def_binary64
10×associate-*r*_binary64
associate-/r/_binary64
associate-/l*_binary64
associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
011324
119324
231264
342264
472264
586264
6106264
7115264
8117264
Stop Event
saturated
Counts
58 → 27
Calls
Call 1
Inputs
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(/.f64 (*.f64 y x) z)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
Outputs
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(*.f64 (+.f64 1 (/.f64 y z)) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
x
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)
(+.f64 (/.f64 (*.f64 y x) z) x)
(+.f64 x (/.f64 y (/.f64 z x)))
(+.f64 x (/.f64 x (/.f64 z y)))
(fma.f64 x (/.f64 y z) x)
(fma.f64 (/.f64 x z) y x)
(fma.f64 y (/.f64 x z) x)

prune12.0ms (0.4%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New27027
Fresh033
Picked011
Done022
Total27633
Error
0.0b
Counts
33 → 6
Alt Table
StatusErrorProgram
3.5b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 2))
37.9b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 y z) x) 3))
14.3b
(*.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 x (/.f64 y z) x)) 4)))
5.5b
(fma.f64 y (/.f64 x z) x)
2.4b
(fma.f64 x (/.f64 y z) x)
8.7b
(/.f64 (*.f64 x (+.f64 y z)) z)
Compiler

Compiled 360 to 119 computations (66.9% saved)

regimes274.0ms (8%)

Accuracy

Total 2.3b remaining (99.3%)

Threshold costs 0b (0%)

Counts
36 → 3
Compiler

Compiled 393 to 146 computations (62.8% saved)

bsearch37.0ms (1.1%)

Algorithm
binary-search
Calls

2 calls:

23.0ms
z
14.0ms
z
Steps
ItersPointRange
4.1e-72
∈ [
6.459921821602068e-73
,
5.066034334656591e-71
]
-2.7e-139
∈ [
-5.1098130278139924e-138
,
-7.563312425651962e-145
]
Compiler

Compiled 4 to 3 computations (25% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01943
12143
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 z -3620108141084501/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (fma.f64 x (/.f64 y z) x) (if (<=.f64 z 8156101077120501/1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224) (pow.f64 (cbrt.f64 (+.f64 (/.f64 (*.f64 y x) z) x)) 3) (fma.f64 x (/.f64 y z) x)))
Outputs
(if (<=.f64 z -3620108141084501/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (fma.f64 x (/.f64 y z) x) (if (<=.f64 z 8156101077120501/1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224) (pow.f64 (cbrt.f64 (+.f64 (/.f64 (*.f64 y x) z) x)) 3) (fma.f64 x (/.f64 y z) x)))
(if (<=.f64 z -3620108141084501/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (fma.f64 x (/.f64 y z) x) (if (<=.f64 z 8156101077120501/1989292945639146568621528992587283360401824603189390869761855907572637988050133502132224) (pow.f64 (cbrt.f64 (+.f64 x (/.f64 (*.f64 x y) z))) 3) (fma.f64 x (/.f64 y z) x)))

end92.0ms (2.7%)

Stop Event
fuel
Compiler

Compiled 147 to 77 computations (47.6% saved)

Profiling

Loading profile data...