Details

Time bar (total: 10.7s)

analyze150.0ms (1.4%)

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
6.2%49.9%43.8%7
9.4%46.8%43.8%8
14%39%47%9
18.7%30%51.2%10
21.8%26.7%51.4%11
25.9%21.8%52.2%12
Compiler

Compiled 16 to 12 computations (25% saved)

sample1.3s (12.2%)

Results
1.2s8256×body256valid
103.0ms772×body256invalid

preprocess248.0ms (2.3%)

Algorithm
egg-herbie
Rules
873×unsub-neg_binary64
811×fma-def_binary64
531×sub-neg_binary64
494×associate-+r+_binary64
365×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02664
18264
220964
349164
4116156
5252456
6431156
7563356
8648056
9657556
10661456
11664956
12683556
13712056
14735156
15746856
16746856
17793856
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(+.f64 (*.f64 y 1/2) (*.f64 x (+.f64 (-.f64 1 z) (log.f64 z))))
(+.f64 (*.f64 z 1/2) (*.f64 y (+.f64 (-.f64 1 x) (log.f64 x))))
(+.f64 (*.f64 x 1/2) (*.f64 z (+.f64 (-.f64 1 y) (log.f64 y))))
Outputs
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 x 1/2 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 y (+.f64 (-.f64 1 z) (log.f64 z)) (*.f64 x 1/2))
(+.f64 (fma.f64 x 1/2 y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 x 1/2 (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 y 1/2) (*.f64 x (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 y 1/2 (*.f64 x (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 x (+.f64 (-.f64 1 z) (log.f64 z)) (*.f64 1/2 y))
(+.f64 (fma.f64 1/2 y x) (*.f64 x (-.f64 (log.f64 z) z)))
(fma.f64 1/2 y (fma.f64 x (-.f64 (log.f64 z) z) x))
(+.f64 (*.f64 z 1/2) (*.f64 y (+.f64 (-.f64 1 x) (log.f64 x))))
(fma.f64 z 1/2 (*.f64 y (+.f64 (-.f64 1 x) (log.f64 x))))
(fma.f64 1/2 z (*.f64 y (+.f64 (-.f64 1 x) (log.f64 x))))
(fma.f64 y (+.f64 (-.f64 1 x) (log.f64 x)) (*.f64 1/2 z))
(fma.f64 1/2 z (fma.f64 y (-.f64 (log.f64 x) x) y))
(+.f64 (*.f64 x 1/2) (*.f64 z (+.f64 (-.f64 1 y) (log.f64 y))))
(fma.f64 x 1/2 (*.f64 z (+.f64 (-.f64 1 y) (log.f64 y))))
(fma.f64 z (+.f64 (-.f64 1 y) (log.f64 y)) (*.f64 x 1/2))
(+.f64 (fma.f64 x 1/2 z) (*.f64 z (-.f64 (log.f64 y) y)))
(fma.f64 x 1/2 (fma.f64 z (-.f64 (log.f64 y) y) z))
Compiler

Compiled 18 to 14 computations (22.2% saved)

simplify316.0ms (3%)

Algorithm
egg-herbie
Rules
946×fma-def_binary64
771×fma-neg_binary64
751×unsub-neg_binary64
519×distribute-rgt-in_binary64
385×associate-+l+_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01216
12916
26516
314316
433614
572114
6124414
7189214
8279014
9328014
10439914
11513014
12543014
13615314
14668614
15690714
16705414
17716414
18719014
19731514
20734714
21738914
22742914
23742914
24742914
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Outputs
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 x 1/2 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(fma.f64 x 1/2 (fma.f64 y (-.f64 (log.f64 z) z) y))

eval1.0ms (0%)

Compiler

Compiled 25 to 15 computations (40% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 28 to 19 computations (32.1% saved)

localize19.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 42 to 24 computations (42.9% saved)

series51.0ms (0.5%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
30.0ms
y
@0
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
10.0ms
z
@0
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
3.0ms
z
@-inf
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
2.0ms
z
@inf
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
1.0ms
y
@inf
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))

rewrite95.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
426×log-prod_binary64
404×prod-exp_binary64
355×fma-def_binary64
333×pow-prod-down_binary64
320×exp-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify158.0ms (1.5%)

Algorithm
egg-herbie
Rules
2582×fma-neg_binary64
835×fma-def_binary64
602×unsub-neg_binary64
386×sub-neg_binary64
249×distribute-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032366
191366
2241364
3696322
41772322
54588322
66232322
76956322
87061322
97089322
107093322
117101322
127101322
Stop Event
node limit
Counts
163 → 143
Calls
Call 1
Inputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
Outputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (log.f64 z)))
(+.f64 y (*.f64 y (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (log.f64 z) z)
0.2b
(fma.f64 y (-.f64 (log.f64 z) z) y)
Compiler

Compiled 30 to 9 computations (70% saved)

series39.0ms (0.4%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
34.0ms
y
@inf
(fma.f64 y (-.f64 (log.f64 z) z) y)
1.0ms
y
@-inf
(fma.f64 y (-.f64 (log.f64 z) z) y)
1.0ms
y
@0
(fma.f64 y (-.f64 (log.f64 z) z) y)
1.0ms
z
@inf
(fma.f64 y (-.f64 (log.f64 z) z) y)
1.0ms
z
@-inf
(fma.f64 y (-.f64 (log.f64 z) z) y)

rewrite61.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify231.0ms (2.2%)

Algorithm
egg-herbie
Rules
827×unsub-neg_binary64
629×fma-neg_binary64
360×sub-neg_binary64
320×+-commutative_binary64
311×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
039334
1112334
2276334
3725292
41934292
54929292
65867292
76391292
86596292
96671292
106674292
117333292
127444292
137554292
147609292
157609292
167855292
177924292
187989292
Stop Event
node limit
Counts
92 → 73
Calls
Call 1
Inputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(log.f64 z)
(+.f64 (*.f64 -1 z) (log.f64 z))
(+.f64 (*.f64 -1 z) (log.f64 z))
(+.f64 (*.f64 -1 z) (log.f64 z))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
Outputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(log.f64 z)
(+.f64 (*.f64 -1 z) (log.f64 z))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (log.f64 z))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (log.f64 z))
(-.f64 (log.f64 z) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (log.f64 (/.f64 1 z))))
(-.f64 (log.f64 z) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(-.f64 (log.f64 z) z)
(+.f64 (*.f64 -1 z) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(-.f64 (log.f64 z) z)

eval71.0ms (0.7%)

Compiler

Compiled 3759 to 2102 computations (44.1% saved)

prune43.0ms (0.4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New20412216
Fresh000
Picked101
Done101
Total20612218
Error
0.0b
Counts
218 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
0.7b
(fma.f64 x 1/2 (fma.f64 y (pow.f64 (cbrt.f64 (-.f64 (log.f64 z) z)) 3) y))
17.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3))))
0.1b
(+.f64 (*.f64 x 1/2) (fma.f64 (-.f64 1 z) y (*.f64 y (log.f64 z))))
29.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2))
19.9b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
0.4b
(+.f64 (*.f64 x 1/2) (fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (log.f64 z)) 2)) (cbrt.f64 (log.f64 z)) (*.f64 y (-.f64 1 z))))
16.3b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
20.7b
(fma.f64 x 1/2 (/.f64 (-.f64 (*.f64 (*.f64 y (-.f64 (log.f64 z) z)) (*.f64 y (-.f64 (log.f64 z) z))) (*.f64 y y)) (-.f64 (*.f64 y (-.f64 (log.f64 z) z)) y)))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (*.f64 y (log.f64 z))))
31.6b
(+.f64 (*.f64 x 1/2) (fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z))))
Compiler

Compiled 440 to 292 computations (33.6% saved)

localize25.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 43 to 24 computations (44.2% saved)

series66.0ms (0.6%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
46.0ms
z
@-inf
(+.f64 (log.f64 z) 1)
11.0ms
z
@0
(+.f64 (log.f64 z) 1)
6.0ms
z
@inf
(+.f64 (log.f64 z) 1)
0.0ms
y
@0
(*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z))
0.0ms
z
@0
(-.f64 (+.f64 (log.f64 z) 1) z)

rewrite207.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
964×pow1_binary64
897×log1p-expm1-u_binary64
897×expm1-log1p-u_binary64
896×add-log-exp_binary64
90×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify164.0ms (1.5%)

Algorithm
egg-herbie
Rules
2582×fma-neg_binary64
835×fma-def_binary64
602×unsub-neg_binary64
386×sub-neg_binary64
249×distribute-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
032438
191438
2241436
3696394
41772394
54588394
66232394
76956394
87061394
97089394
107093394
117101394
127101394
Stop Event
node limit
Counts
147 → 117
Calls
Call 1
Inputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
Outputs
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (log.f64 z)))
(+.f64 y (*.f64 y (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (+.f64 1 (log.f64 z)) z)
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 1 (-.f64 z (log.f64 z)))
(-.f64 (log.f64 z) (+.f64 z -1))

localize10.0ms (0.1%)

Compiler

Compiled 24 to 11 computations (54.2% saved)

localize21.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 49 to 25 computations (49% saved)

series8.0ms (0.1%)

Counts
3 → 44
Calls

18 calls:

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

rewrite85.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
484×log-prod_binary64
427×fma-def_binary64
402×prod-exp_binary64
351×exp-prod_binary64
350×pow-prod-down_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify155.0ms (1.5%)

Algorithm
egg-herbie
Rules
858×unsub-neg_binary64
588×fma-neg_binary64
531×distribute-rgt-out_binary64
510×distribute-rgt-out--_binary64
441×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035436
1105427
2299395
3899353
42219353
54854353
65684353
76182353
86376353
96468353
106486353
117783353
127999353
Stop Event
node limit
Counts
203 → 176
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
Outputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(neg.f64 (*.f64 (log.f64 z) (neg.f64 y)))
(*.f64 y (log.f64 z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (-.f64 1 z)) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(fma.f64 (neg.f64 y) z y)
(fma.f64 y (neg.f64 z) y)
(-.f64 y (*.f64 y z))

localize34.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (-.f64 1 z) (log.f64 z))
0.2b
(*.f64 y (cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3)))
0.4b
(pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3)
16.8b
(cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3))
Compiler

Compiled 66 to 42 computations (36.4% saved)

series6.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
z
@-inf
(pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3)
1.0ms
z
@inf
(pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3)
1.0ms
z
@0
(pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3)
0.0ms
z
@0
(cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3))
0.0ms
z
@inf
(cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3))

rewrite94.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
854×prod-diff_binary64
469×log-prod_binary64
346×pow-prod-down_binary64
312×fma-def_binary64
270×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify63.0ms (0.6%)

Algorithm
egg-herbie
Rules
779×fma-neg_binary64
639×fma-def_binary64
435×associate-+l+_binary64
425×associate-+r+_binary64
414×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
089936
1312853
21181804
36066756
Stop Event
node limit
Counts
180 → 168
Calls
Call 1
Inputs
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (pow.f64 (+.f64 1 (log.f64 z)) 3))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (+.f64 (*.f64 2 (+.f64 1 (log.f64 z))) (log.f64 z))) (pow.f64 z 2))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (+.f64 (*.f64 2 (+.f64 1 (log.f64 z))) (log.f64 z))) (pow.f64 z 2)))))
(*.f64 -1 (pow.f64 z 3))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2)))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)) (*.f64 -1 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2))))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)) (*.f64 -1 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) z) (+.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2)))))
(*.f64 -1 (pow.f64 z 3))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))) (*.f64 -1 (*.f64 z (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (*.f64 (+.f64 2 (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z))))) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))))))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))) (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3) (*.f64 -1 (*.f64 z (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (*.f64 (+.f64 2 (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z))))) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
Outputs
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (-.f64 z 1))
(-.f64 (log.f64 z) (+.f64 z -1))
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (pow.f64 (+.f64 1 (log.f64 z)) 3))
(fma.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) z (pow.f64 (+.f64 1 (log.f64 z)) 3))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (pow.f64 (+.f64 1 (log.f64 z)) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (+.f64 (*.f64 2 (+.f64 1 (log.f64 z))) (log.f64 z))) (pow.f64 z 2))))
(+.f64 (fma.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) z (pow.f64 (+.f64 1 (log.f64 z)) 3)) (*.f64 (+.f64 1 (fma.f64 2 (+.f64 1 (log.f64 z)) (log.f64 z))) (*.f64 z z)))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (fma.f64 (*.f64 z z) (*.f64 3 (+.f64 1 (log.f64 z))) (pow.f64 (+.f64 1 (log.f64 z)) 3)))
(fma.f64 z (*.f64 z (+.f64 3 (*.f64 3 (log.f64 z)))) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 -2 (pow.f64 (+.f64 1 (log.f64 z)) 2))) z) (+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (+.f64 (*.f64 2 (+.f64 1 (log.f64 z))) (log.f64 z))) (pow.f64 z 2)))))
(fma.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) z (fma.f64 -1 (pow.f64 z 3) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (fma.f64 2 (+.f64 1 (log.f64 z)) (log.f64 z))) (*.f64 z z)))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (fma.f64 (*.f64 z z) (*.f64 3 (+.f64 1 (log.f64 z))) (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 3))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (+.f64 3 (*.f64 3 (log.f64 z))) z)) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(*.f64 -1 (pow.f64 z 3))
(neg.f64 (pow.f64 z 3))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2)))
(fma.f64 -1 (pow.f64 z 3) (*.f64 (*.f64 z z) (+.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 2 (fma.f64 -1 (neg.f64 (log.f64 z)) 1)))))
(-.f64 (*.f64 (*.f64 z z) (*.f64 3 (+.f64 1 (log.f64 z)))) (pow.f64 z 3))
(*.f64 (*.f64 z z) (-.f64 (+.f64 3 (*.f64 3 (log.f64 z))) z))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)) (*.f64 -1 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2))))
(fma.f64 -1 (pow.f64 z 3) (fma.f64 (*.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 2) -3) z (*.f64 (*.f64 z z) (+.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 2 (fma.f64 -1 (neg.f64 (log.f64 z)) 1))))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (*.f64 (*.f64 z z) (*.f64 3 (+.f64 1 (log.f64 z))))) (pow.f64 z 3))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (*.f64 (*.f64 z z) (-.f64 (+.f64 3 (*.f64 3 (log.f64 z))) z)))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)) (*.f64 -1 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) z) (+.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) (+.f64 1 (*.f64 2 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))) (pow.f64 z 2)))))
(fma.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) z (fma.f64 -1 (pow.f64 z 3) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (+.f64 1 (fma.f64 2 (+.f64 1 (log.f64 z)) (log.f64 z))) (*.f64 z z)))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) -3) (fma.f64 (*.f64 z z) (*.f64 3 (+.f64 1 (log.f64 z))) (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 3))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (+.f64 3 (*.f64 3 (log.f64 z))) z)) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(*.f64 -1 (pow.f64 z 3))
(neg.f64 (pow.f64 z 3))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))))
(fma.f64 -1 (pow.f64 z 3) (*.f64 (*.f64 z z) (+.f64 (+.f64 3 (log.f64 -1)) (fma.f64 -1 (log.f64 (/.f64 -1 z)) (fma.f64 2 (log.f64 -1) (*.f64 (log.f64 (/.f64 -1 z)) -2))))))
(-.f64 (*.f64 z (*.f64 z (+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) (+.f64 (fma.f64 (log.f64 (/.f64 -1 z)) -2 (*.f64 (log.f64 -1) 2)) 3)))) (pow.f64 z 3))
(*.f64 (*.f64 z z) (-.f64 (+.f64 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -3)) (+.f64 (log.f64 -1) 3)) z))
(*.f64 (*.f64 z z) (-.f64 (+.f64 (log.f64 z) (+.f64 3 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -2)))) z))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))) (*.f64 -1 (*.f64 z (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (*.f64 (+.f64 2 (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z))))) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))))))
(fma.f64 -1 (pow.f64 z 3) (fma.f64 (*.f64 z z) (+.f64 (+.f64 3 (log.f64 -1)) (fma.f64 -1 (log.f64 (/.f64 -1 z)) (fma.f64 2 (log.f64 -1) (*.f64 (log.f64 (/.f64 -1 z)) -2)))) (*.f64 (neg.f64 z) (+.f64 (pow.f64 (+.f64 (+.f64 1 (log.f64 -1)) (neg.f64 (log.f64 (/.f64 -1 z)))) 2) (*.f64 (+.f64 (+.f64 1 (log.f64 -1)) (neg.f64 (log.f64 (/.f64 -1 z)))) (+.f64 2 (fma.f64 2 (log.f64 -1) (*.f64 (log.f64 (/.f64 -1 z)) -2))))))))
(-.f64 (-.f64 (*.f64 z (*.f64 z (+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) (+.f64 (fma.f64 (log.f64 (/.f64 -1 z)) -2 (*.f64 (log.f64 -1) 2)) 3)))) (pow.f64 z 3)) (*.f64 z (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 2 (fma.f64 (log.f64 (/.f64 -1 z)) -2 (*.f64 (log.f64 -1) 2)))))))
(-.f64 (*.f64 (*.f64 z z) (-.f64 (+.f64 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -3)) (+.f64 (log.f64 -1) 3)) z)) (*.f64 z (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 1 (+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) (fma.f64 (log.f64 -1) 2 (fma.f64 (log.f64 (/.f64 -1 z)) -2 2)))))))
(-.f64 (*.f64 z (fma.f64 z (+.f64 (log.f64 z) (+.f64 3 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -2)))) (*.f64 (-.f64 -1 (log.f64 z)) (+.f64 (log.f64 z) (+.f64 3 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -2))))))) (pow.f64 z 3))
(+.f64 (*.f64 -1 (pow.f64 z 3)) (+.f64 (*.f64 (pow.f64 z 2) (+.f64 3 (+.f64 (log.f64 -1) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 z))) (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z)))))))) (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3) (*.f64 -1 (*.f64 z (+.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (*.f64 (+.f64 2 (+.f64 (*.f64 2 (log.f64 -1)) (*.f64 -2 (log.f64 (/.f64 -1 z))))) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))))))
(fma.f64 -1 (pow.f64 z 3) (fma.f64 (*.f64 z z) (+.f64 (+.f64 3 (log.f64 -1)) (fma.f64 -1 (log.f64 (/.f64 -1 z)) (fma.f64 2 (log.f64 -1) (*.f64 (log.f64 (/.f64 -1 z)) -2)))) (+.f64 (*.f64 (neg.f64 z) (+.f64 (pow.f64 (+.f64 (+.f64 1 (log.f64 -1)) (neg.f64 (log.f64 (/.f64 -1 z)))) 2) (*.f64 (+.f64 (+.f64 1 (log.f64 -1)) (neg.f64 (log.f64 (/.f64 -1 z)))) (+.f64 2 (fma.f64 2 (log.f64 -1) (*.f64 (log.f64 (/.f64 -1 z)) -2)))))) (pow.f64 (+.f64 (+.f64 1 (log.f64 -1)) (neg.f64 (log.f64 (/.f64 -1 z)))) 3))))
(-.f64 (-.f64 (fma.f64 (*.f64 z z) (+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) (+.f64 (fma.f64 (log.f64 (/.f64 -1 z)) -2 (*.f64 (log.f64 -1) 2)) 3)) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 3)) (*.f64 z (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 2 (fma.f64 (log.f64 (/.f64 -1 z)) -2 (*.f64 (log.f64 -1) 2))))))) (pow.f64 z 3))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (+.f64 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -3)) (+.f64 (log.f64 -1) 3)) z)) (-.f64 (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 3) (*.f64 z (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (+.f64 1 (+.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) (fma.f64 (log.f64 -1) 2 (fma.f64 (log.f64 (/.f64 -1 z)) -2 2))))))))
(fma.f64 z (fma.f64 z (+.f64 (log.f64 z) (+.f64 3 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -2)))) (*.f64 (-.f64 -1 (log.f64 z)) (+.f64 (log.f64 z) (+.f64 3 (fma.f64 (log.f64 -1) 2 (*.f64 (log.f64 (/.f64 -1 z)) -2)))))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 z 3)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 (neg.f64 z) y)
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 (neg.f64 z) y)
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 y (-.f64 (log.f64 z) (+.f64 z -1)))

localize29.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (-.f64 1 z) (log.f64 z))
0.1b
(sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.2b
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
0.3b
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2)
Compiler

Compiled 66 to 40 computations (39.4% saved)

series34.0ms (0.3%)

Counts
2 → 8
Calls

12 calls:

TimeVariablePointExpression
18.0ms
z
@-inf
(sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
4.0ms
z
@-inf
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2)
3.0ms
z
@inf
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2)
2.0ms
y
@-inf
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2)
2.0ms
y
@0
(pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2)

rewrite74.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
488×log-prod_binary64
382×pow-prod-down_binary64
366×fma-def_binary64
358×exp-prod_binary64
274×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify53.0ms (0.5%)

Algorithm
egg-herbie
Rules
894×fma-def_binary64
619×associate-*l*_binary64
540×associate-*r*_binary64
507×cancel-sign-sub-inv_binary64
378×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
053221
1141218
2402199
31588193
46569193
Stop Event
node limit
Counts
122 → 128
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 y (+.f64 1 (log.f64 z)))) (*.f64 -1/4 (/.f64 y (+.f64 1 (log.f64 z))))) (pow.f64 z 2)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 1/8 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (pow.f64 z 3)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 y (+.f64 1 (log.f64 z)))) (*.f64 -1/4 (/.f64 y (+.f64 1 (log.f64 z))))) (pow.f64 z 2)) (*.f64 (+.f64 1 (log.f64 z)) y))))
(sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 2))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))))
(+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 2))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (*.f64 z y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 y (+.f64 1 (log.f64 z)))) (*.f64 -1/4 (/.f64 y (+.f64 1 (log.f64 z))))) (pow.f64 z 2)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (*.f64 z y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 (+.f64 (*.f64 -1/8 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 1/8 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (pow.f64 z 3)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 (*.f64 (+.f64 (*.f64 1/4 (/.f64 y (+.f64 1 (log.f64 z)))) (*.f64 -1/4 (/.f64 y (+.f64 1 (log.f64 z))))) (pow.f64 z 2)) (*.f64 (+.f64 1 (log.f64 z)) y))))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (*.f64 z y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (fma.f64 (log.f64 z) y y)))
(+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 2))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))))
(fma.f64 -1/8 (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3)))) (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))))
(fma.f64 -1/8 (*.f64 z (*.f64 z (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))))) (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))))
(fma.f64 z (*.f64 -1/2 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (fma.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))) (*.f64 z (*.f64 z -1/8)) (sqrt.f64 (fma.f64 (log.f64 z) y y))))
(fma.f64 z (fma.f64 z (*.f64 -1/8 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3)))) (*.f64 -1/2 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))))) (sqrt.f64 (fma.f64 (log.f64 z) y y)))
(+.f64 (*.f64 -1/16 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5))) (pow.f64 z 3))) (+.f64 (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))) (pow.f64 z 2))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z)))) z)) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))))
(fma.f64 -1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5)))) (fma.f64 -1/8 (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3)))) (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))))
(fma.f64 -1/16 (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5)))) (fma.f64 -1/8 (*.f64 z (*.f64 z (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))))) (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)))))
(fma.f64 (*.f64 z z) (*.f64 -1/8 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3)))) (fma.f64 (pow.f64 z 3) (*.f64 -1/16 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5)))) (fma.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (sqrt.f64 (fma.f64 (log.f64 z) y y)))))
(fma.f64 z (*.f64 -1/2 (sqrt.f64 (/.f64 y (+.f64 1 (log.f64 z))))) (fma.f64 (*.f64 z z) (fma.f64 z (*.f64 -1/16 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 5)))) (*.f64 -1/8 (sqrt.f64 (/.f64 y (pow.f64 (+.f64 1 (log.f64 z)) 3))))) (sqrt.f64 (fma.f64 (log.f64 z) y y))))

eval534.0ms (5%)

Compiler

Compiled 16346 to 10427 computations (36.2% saved)

prune158.0ms (1.5%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New7919800
Fresh617
Picked101
Done134
Total79913812
Error
0b
Counts
812 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.4b
(+.f64 (*.f64 x 1/2) (fma.f64 (*.f64 y (pow.f64 (cbrt.f64 (log.f64 z)) 2)) (cbrt.f64 (log.f64 z)) (*.f64 y (-.f64 1 z))))
20.0b
(+.f64 (*.f64 x 1/2) (*.f64 y (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3))))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
31.6b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)))
14.9b
(+.f64 (*.f64 x 1/2) (+.f64 (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)) (*.f64 y (log.f64 z))))
19.9b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
19.9b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
40.0b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2))
15.4b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)) y) (+.f64 z (+.f64 (log.f64 z) 1))))
0.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (*.f64 y (log.f64 z))))
15.0b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y)))
Compiler

Compiled 421 to 307 computations (27.1% saved)

localize63.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

Compiled 73 to 37 computations (49.3% saved)

series44.0ms (0.4%)

Counts
4 → 72
Calls

18 calls:

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

rewrite139.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
518×log-prod_binary64
361×pow-prod-down_binary64
338×prod-diff_binary64
285×pow2_binary64
202×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify107.0ms (1%)

Algorithm
egg-herbie
Rules
819×fma-neg_binary64
719×fma-def_binary64
529×unsub-neg_binary64
304×unswap-sqr_binary64
250×*-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
064858
1200781
2554772
31631730
44414724
57745724
Stop Event
node limit
Counts
189 → 140
Calls
Call 1
Inputs
(pow.f64 (log.f64 z) 1/3)
(pow.f64 (log.f64 z) 1/3)
(pow.f64 (log.f64 z) 1/3)
(pow.f64 (log.f64 z) 1/3)
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
Outputs
(pow.f64 (log.f64 z) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (log.f64 z) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (log.f64 z) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (log.f64 z) 1/3)
(cbrt.f64 (log.f64 z))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 z))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 z))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 z))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 z))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 z))) (cbrt.f64 -1))
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 1/3)
(cbrt.f64 (log.f64 z))
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (log.f64 z) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (neg.f64 (log.f64 z)) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (neg.f64 (log.f64 z)) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (neg.f64 (log.f64 z)) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (neg.f64 (log.f64 z)) 2)) (pow.f64 (cbrt.f64 -1) 2))
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (pow.f64 (cbrt.f64 -1) 2))
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(pow.f64 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2) 1/3)
(cbrt.f64 (pow.f64 (log.f64 z) 2))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 z) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (log.f64 (/.f64 1 z)) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))) 2)) 1/3) y)
(*.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) z) y)
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) (log.f64 z))) (*.f64 -1 (-.f64 1 z)))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) y)
(fma.f64 1 (*.f64 (log.f64 z) y) y)
(fma.f64 y (log.f64 z) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 y (log.f64 z))) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(+.f64 y (fma.f64 -1 (*.f64 z y) (*.f64 1 (*.f64 y (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1))))))
(+.f64 (-.f64 y (*.f64 z y)) (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 z) (neg.f64 y))))
(+.f64 y (*.f64 y (-.f64 (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1)) z)))
(-.f64 y (*.f64 y (+.f64 (*.f64 (log.f64 z) (cbrt.f64 -1)) z)))
(fma.f64 (neg.f64 y) (fma.f64 (log.f64 z) (cbrt.f64 -1) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(+.f64 y (fma.f64 -1 (*.f64 z y) (*.f64 1 (*.f64 y (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1))))))
(+.f64 (-.f64 y (*.f64 z y)) (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 z) (neg.f64 y))))
(+.f64 y (*.f64 y (-.f64 (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1)) z)))
(-.f64 y (*.f64 y (+.f64 (*.f64 (log.f64 z) (cbrt.f64 -1)) z)))
(fma.f64 (neg.f64 y) (fma.f64 (log.f64 z) (cbrt.f64 -1) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (*.f64 (cbrt.f64 -1) (log.f64 (/.f64 1 z)))))))
(+.f64 y (fma.f64 -1 (*.f64 z y) (*.f64 1 (*.f64 y (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1))))))
(+.f64 (-.f64 y (*.f64 z y)) (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 z) (neg.f64 y))))
(+.f64 y (*.f64 y (-.f64 (*.f64 (neg.f64 (log.f64 z)) (cbrt.f64 -1)) z)))
(-.f64 y (*.f64 y (+.f64 (*.f64 (log.f64 z) (cbrt.f64 -1)) z)))
(fma.f64 (neg.f64 y) (fma.f64 (log.f64 z) (cbrt.f64 -1) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 1 1/3) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(*.f64 y (-.f64 (+.f64 1 (*.f64 (log.f64 z) 1)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
0.0b
(+.f64 1 (log.f64 z))
0.3b
(*.f64 (+.f64 1 (log.f64 z)) y)
Compiler

Compiled 33 to 19 computations (42.4% saved)

series9.0ms (0.1%)

Counts
3 → 52
Calls

18 calls:

TimeVariablePointExpression
2.0ms
x
@0
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
1.0ms
x
@inf
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
1.0ms
z
@0
(*.f64 (+.f64 1 (log.f64 z)) y)
1.0ms
y
@inf
(*.f64 (+.f64 1 (log.f64 z)) y)
1.0ms
z
@-inf
(*.f64 (+.f64 1 (log.f64 z)) y)

rewrite93.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
518×log-prod_binary64
421×fma-def_binary64
351×pow-prod-down_binary64
292×pow2_binary64
200×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify283.0ms (2.6%)

Algorithm
egg-herbie
Rules
1006×distribute-rgt-in_binary64
888×unsub-neg_binary64
792×distribute-lft-in_binary64
477×fma-neg_binary64
434×distribute-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026625
162549
2151467
3406467
4855467
51865467
64263467
75513467
86295467
96760467
106927467
116953467
126959467
136959467
146959467
156991467
166991467
Stop Event
node limit
Counts
203 → 162
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
Outputs
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))
(+.f64 1 (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))

localize61.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)) (*.f64 y (log.f64 z)))
0.2b
(*.f64 y (log.f64 z))
4.5b
(*.f64 (-.f64 1 (*.f64 z z)) y)
9.4b
(/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1))
Compiler

Compiled 82 to 40 computations (51.2% saved)

series17.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
y
@0
(/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1))
2.0ms
y
@inf
(+.f64 (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)) (*.f64 y (log.f64 z)))
1.0ms
z
@inf
(/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1))
1.0ms
y
@inf
(/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1))
1.0ms
z
@0
(/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1))

rewrite125.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
704×log-prod_binary64
602×fma-def_binary64
279×fma-neg_binary64
243×pow1/3_binary64
235×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify130.0ms (1.2%)

Algorithm
egg-herbie
Rules
659×fma-def_binary64
523×fma-neg_binary64
501×unsub-neg_binary64
373×times-frac_binary64
259×associate-/l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048945
1142885
2411876
31495834
45208834
57922834
Stop Event
node limit
Counts
238 → 188
Calls
Call 1
Inputs
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
y
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(*.f64 -1 (*.f64 y (pow.f64 z 2)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(*.f64 -1 (*.f64 y (pow.f64 z 2)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(*.f64 -1 (*.f64 y z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
Outputs
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 y z) y)
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
(/.f64 (*.f64 y (-.f64 1 (pow.f64 z 2))) (+.f64 1 z))
(/.f64 y (/.f64 (+.f64 z 1) (-.f64 1 (*.f64 z z))))
(*.f64 y (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1)))
y
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 -1 (*.f64 y (pow.f64 z 2)))
(*.f64 (neg.f64 y) (*.f64 z z))
(*.f64 y (neg.f64 (*.f64 z z)))
(*.f64 y (*.f64 z (neg.f64 z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 -1 (*.f64 y (pow.f64 z 2)))
(*.f64 (neg.f64 y) (*.f64 z z))
(*.f64 y (neg.f64 (*.f64 z z)))
(*.f64 y (*.f64 z (neg.f64 z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 y (*.f64 -1 (*.f64 y (pow.f64 z 2))))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(*.f64 y (-.f64 1 (pow.f64 z 2)))
(+.f64 y (*.f64 (neg.f64 y) (*.f64 z z)))
(fma.f64 (neg.f64 y) (*.f64 z z) y)
(-.f64 y (*.f64 y (*.f64 z z)))
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(*.f64 (neg.f64 y) z)
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 -1 y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(fma.f64 (neg.f64 y) (-.f64 z (log.f64 z)) y)
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 y (-.f64 (+.f64 (log.f64 z) (/.f64 1 (+.f64 1 z))) (/.f64 (pow.f64 z 2) (+.f64 1 z))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 -1 (/.f64 (-.f64 1 (pow.f64 z 2)) (+.f64 1 z))) (*.f64 -1 (log.f64 z)))))
(*.f64 y (+.f64 (log.f64 z) (/.f64 (-.f64 1 (*.f64 z z)) (+.f64 z 1))))
(*.f64 y (-.f64 (log.f64 z) (/.f64 (fma.f64 z z -1) (+.f64 z 1))))

localize46.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (log.f64 z))
0.1b
(sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))
0.2b
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)
0.3b
(*.f64 (+.f64 1 (log.f64 z)) y)
Compiler

Compiled 53 to 33 computations (37.7% saved)

series9.0ms (0.1%)

Counts
2 → 20
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)
1.0ms
y
@0
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)
1.0ms
z
@0
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)
1.0ms
y
@inf
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)
1.0ms
z
@-inf
(pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2)

rewrite62.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
812×pow1_binary64
754×add-log-exp_binary64
753×log1p-expm1-u_binary64
753×expm1-log1p-u_binary64
738×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify164.0ms (1.5%)

Algorithm
egg-herbie
Rules
3262×fma-neg_binary64
689×fma-def_binary64
588×unsub-neg_binary64
345×distribute-rgt-in_binary64
342×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
022228
151196
2115156
3313156
4625156
51420156
64492156
75644156
86177156
96404156
106472156
116484156
126500156
136500156
Stop Event
node limit
Counts
80 → 66
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))
(sqrt.f64 (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(sqrt.f64 (*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z))))))
(sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(sqrt.f64 (fma.f64 (log.f64 z) y y))

localize27.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (*.f64 y (log.f64 z)))
0.1b
(+.f64 (*.f64 y (-.f64 1 z)) (pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2))
0.2b
(*.f64 y (log.f64 z))
0.3b
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)
Compiler

Compiled 68 to 33 computations (51.5% saved)

series10.0ms (0.1%)

Counts
3 → 35
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@0
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)
1.0ms
y
@-inf
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)
1.0ms
z
@inf
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)
1.0ms
z
@-inf
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)
1.0ms
y
@inf
(pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)

rewrite80.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
533×log-prod_binary64
416×fma-def_binary64
385×pow-prod-down_binary64
286×pow2_binary64
197×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify65.0ms (0.6%)

Algorithm
egg-herbie
Rules
613×fma-neg_binary64
401×distribute-lft-neg-out_binary64
399×sub-neg_binary64
348×distribute-neg-in_binary64
345×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
034370
186353
2202344
3600294
41935294
56283294
Stop Event
node limit
Counts
187 → 168
Calls
Call 1
Inputs
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
Outputs
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))

eval403.0ms (3.8%)

Compiler

Compiled 18355 to 10239 computations (44.2% saved)

prune158.0ms (1.5%)

Pruning

16 alts after pruning (11 fresh and 5 done)

PrunedKeptTotal
New9109919
Fresh325
Picked011
Done347
Total91616932
Error
0b
Counts
932 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) 3) y))
16.3b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
35.4b
(*.f64 1/2 x)
17.0b
(+.f64 (*.f64 x 1/2) (fma.f64 y (neg.f64 z) y))
47.1b
(*.f64 (+.f64 1 (log.f64 z)) y)
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
17.0b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
40.0b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2))
26.6b
(+.f64 (*.f64 x 1/2) (+.f64 (/.f64 (*.f64 y (*.f64 z (neg.f64 z))) (+.f64 z 1)) (*.f64 y (log.f64 z))))
31.6b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2)))
20.5b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (+.f64 1 (pow.f64 (log.f64 z) 3)) y) (+.f64 1 (*.f64 (log.f64 z) (-.f64 (log.f64 z) 1)))))
15.4b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)) y) (+.f64 z (+.f64 (log.f64 z) 1))))
20.0b
(+.f64 (*.f64 x 1/2) (*.f64 (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3)) y))
19.9b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (*.f64 y (log.f64 z))))
15.0b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y)))
Compiler

Compiled 435 to 319 computations (26.7% saved)

localize30.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y)))
0.4b
(*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
0.7b
(cbrt.f64 y)
27.3b
(cbrt.f64 (*.f64 y y))
Compiler

Compiled 74 to 33 computations (55.4% saved)

series14.0ms (0.1%)

Counts
4 → 36
Calls

18 calls:

TimeVariablePointExpression
2.0ms
y
@-inf
(*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
2.0ms
y
@0
(*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
1.0ms
z
@0
(*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y)))
1.0ms
z
@0
(*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y))
1.0ms
y
@-inf
(cbrt.f64 y)

rewrite89.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
854×prod-diff_binary64
574×log-prod_binary64
335×fma-def_binary64
306×pow2_binary64
211×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify68.0ms (0.6%)

Algorithm
egg-herbie
Rules
888×fma-neg_binary64
425×unsub-neg_binary64
338×distribute-rgt-in_binary64
333×associate--r+_binary64
296×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
044639
1131562
2420488
31657480
44217480
Stop Event
node limit
Counts
146 → 129
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (-.f64 (+.f64 1 (log.f64 z)) z) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (cbrt.f64 -1) (neg.f64 (+.f64 (log.f64 z) (-.f64 1 z)))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 z -1) (log.f64 z))))
(*.f64 y (*.f64 (cbrt.f64 -1) (+.f64 -1 (-.f64 z (log.f64 z)))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (-.f64 (+.f64 1 (log.f64 z)) z) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (cbrt.f64 -1) (neg.f64 (+.f64 (log.f64 z) (-.f64 1 z)))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 z -1) (log.f64 z))))
(*.f64 y (*.f64 (cbrt.f64 -1) (+.f64 -1 (-.f64 z (log.f64 z)))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (-.f64 (+.f64 1 (log.f64 z)) z) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (cbrt.f64 -1) (neg.f64 (+.f64 (log.f64 z) (-.f64 1 z)))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 z -1) (log.f64 z))))
(*.f64 y (*.f64 (cbrt.f64 -1) (+.f64 -1 (-.f64 z (log.f64 z)))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (-.f64 (+.f64 1 (log.f64 z)) z) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (cbrt.f64 -1) (neg.f64 (+.f64 (log.f64 z) (-.f64 1 z)))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 z -1) (log.f64 z))))
(*.f64 y (*.f64 (cbrt.f64 -1) (+.f64 -1 (-.f64 z (log.f64 z)))))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3))
(*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z))
(neg.f64 (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 z (neg.f64 (cbrt.f64 (*.f64 y y))))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z))
(neg.f64 (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 z (neg.f64 (cbrt.f64 (*.f64 y y))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) z)) (*.f64 (pow.f64 (*.f64 1 (pow.f64 y 2)) 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (cbrt.f64 (*.f64 y y))) (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (*.f64 z (cbrt.f64 (*.f64 y y))))
(*.f64 (cbrt.f64 (*.f64 y y)) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (cbrt.f64 (*.f64 y y)))

localize4.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (log.f64 z))
0.3b
(*.f64 (+.f64 1 (log.f64 z)) y)
Compiler

Compiled 18 to 10 computations (44.4% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.2b
(*.f64 (log.f64 z) y)
0.3b
(+.f64 (*.f64 (log.f64 z) y) y)
Compiler

Compiled 32 to 12 computations (62.5% saved)

series8.0ms (0.1%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
z
@inf
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.0ms
x
@0
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.0ms
y
@0
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.0ms
z
@0
(+.f64 (*.f64 (log.f64 z) y) y)
0.0ms
z
@-inf
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))

rewrite87.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
609×fma-def_binary64
548×log-prod_binary64
399×pow-prod-down_binary64
320×fma-neg_binary64
297×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify292.0ms (2.7%)

Algorithm
egg-herbie
Rules
1344×distribute-lft-out--_binary64
664×unsub-neg_binary64
563×fma-def_binary64
342×distribute-neg-in_binary64
325×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035675
192675
2216675
3448675
41005675
52814675
64102675
75205675
85857675
96145675
106276675
116375675
126383675
136384675
146384675
156473675
166522675
176542675
186542675
Stop Event
node limit
Counts
258 → 189
Calls
Call 1
Inputs
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
Outputs
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))

localize26.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (log.f64 z))
0.3b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3)) y)
0.5b
(cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3))
0.8b
(pow.f64 (+.f64 1 (log.f64 z)) 3)
Compiler

Compiled 53 to 35 computations (34% saved)

series5.0ms (0%)

Counts
3 → 44
Calls

12 calls:

TimeVariablePointExpression
1.0ms
z
@inf
(pow.f64 (+.f64 1 (log.f64 z)) 3)
1.0ms
z
@0
(pow.f64 (+.f64 1 (log.f64 z)) 3)
1.0ms
z
@-inf
(pow.f64 (+.f64 1 (log.f64 z)) 3)
0.0ms
z
@-inf
(*.f64 (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3)) y)
0.0ms
z
@-inf
(cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3))

rewrite72.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
839×pow1_binary64
785×add-log-exp_binary64
784×log1p-expm1-u_binary64
784×expm1-log1p-u_binary64
768×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify56.0ms (0.5%)

Algorithm
egg-herbie
Rules
636×unsub-neg_binary64
555×distribute-rgt-in_binary64
535×distribute-lft-in_binary64
331×fma-def_binary64
320×distribute-rgt-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
023392
165360
2182312
3791312
44374312
Stop Event
node limit
Counts
129 → 94
Calls
Call 1
Inputs
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
Outputs
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)
(pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 3)
(pow.f64 (+.f64 1 (log.f64 z)) 3)
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(+.f64 1 (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)

eval161.0ms (1.5%)

Compiler

Compiled 8956 to 5000 computations (44.2% saved)

prune127.0ms (1.2%)

Pruning

17 alts after pruning (10 fresh and 7 done)

PrunedKeptTotal
New5395544
Fresh156
Picked101
Done279
Total54317560
Error
0b
Counts
560 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
35.4b
(*.f64 1/2 x)
39.8b
(+.f64 (*.f64 x 1/2) (+.f64 (pow.f64 (sqrt.f64 (*.f64 (log.f64 z) y)) 2) y))
20.5b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (+.f64 1 (pow.f64 (log.f64 z) 3)) y) (+.f64 1 (*.f64 (log.f64 z) (-.f64 (log.f64 z) 1)))))
17.0b
(+.f64 (*.f64 x 1/2) (fma.f64 y (neg.f64 z) y))
47.1b
(*.f64 (+.f64 1 (log.f64 z)) y)
29.2b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
17.0b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
40.0b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) 2))
26.6b
(+.f64 (*.f64 x 1/2) (+.f64 (/.f64 (*.f64 y (*.f64 z (neg.f64 z))) (+.f64 z 1)) (*.f64 y (log.f64 z))))
15.4b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)) y) (+.f64 z (+.f64 (log.f64 z) 1))))
47.1b
(*.f64 (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3)) y)
47.3b
(*.f64 (pow.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) 3) y)
47.1b
(+.f64 (*.f64 (log.f64 z) y) y)
19.9b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (*.f64 y (log.f64 z))))
Compiler

Compiled 252 to 185 computations (26.6% saved)

regimes194.0ms (1.8%)

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

9 calls:

25.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
19.0ms
y
19.0ms
x
18.0ms
z
17.0ms
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.1b1(*.f64 x 1/2)
0.1b1(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
0.1b1(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
0.1b1(+.f64 (-.f64 1 z) (log.f64 z))
0.1b1(+.f64 (-.f64 1 z) (log.f64 z))
Compiler

Compiled 583 to 334 computations (42.7% saved)

regimes131.0ms (1.2%)

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

4 calls:

52.0ms
y
36.0ms
(*.f64 x 1/2)
28.0ms
x
12.0ms
z
Results
ErrorSegmentsBranch
12.4b5x
9.8b5y
1.0b2z
12.4b5(*.f64 x 1/2)
Compiler

Compiled 102 to 61 computations (40.2% saved)

bsearch24.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
0.0008816504976887293
0.3718645983466922
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes97.0ms (0.9%)

Counts
8 → 2
Calls
Call 1
Inputs
(*.f64 1/2 x)
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
(+.f64 (*.f64 (log.f64 z) y) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 x 1/2) (fma.f64 y (neg.f64 z) y))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
Outputs
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
Calls

4 calls:

32.0ms
y
27.0ms
(*.f64 x 1/2)
25.0ms
x
10.0ms
z
Results
ErrorSegmentsBranch
12.4b5x
9.8b5y
1.0b2z
12.4b5(*.f64 x 1/2)
Compiler

Compiled 82 to 49 computations (40.2% saved)

bsearch26.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
0.0008816504976887293
0.3718645983466922
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes138.0ms (1.3%)

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

4 calls:

60.0ms
(*.f64 x 1/2)
32.0ms
z
22.0ms
x
22.0ms
y
Results
ErrorSegmentsBranch
13.7b5x
10.5b5y
10.5b7z
13.7b5(*.f64 x 1/2)
Compiler

Compiled 62 to 41 computations (33.9% saved)

bsearch500.0ms (4.7%)

Algorithm
binary-search
Steps
TimeLeftRight
222.0ms
5.046583936625494e+166
9.816898935387787e+186
179.0ms
2.591329999393259e+56
2.4237400389053915e+60
26.0ms
53794949.68189108
59807133.2025036
72.0ms
-3.1156732247952816e+243
-1.5587298717253032e+209
Compiler

Compiled 681 to 504 computations (26% saved)

regimes430.0ms (4%)

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

4 calls:

167.0ms
x
166.0ms
y
69.0ms
z
26.0ms
(*.f64 x 1/2)
Results
ErrorSegmentsBranch
13.8b5x
10.5b5y
10.6b7z
13.8b5(*.f64 x 1/2)
Compiler

Compiled 47 to 33 computations (29.8% saved)

bsearch956.0ms (8.9%)

Algorithm
binary-search
Steps
TimeLeftRight
258.0ms
5.046583936625494e+166
9.816898935387787e+186
460.0ms
2.591329999393259e+56
2.4237400389053915e+60
46.0ms
53794949.68189108
59807133.2025036
191.0ms
-3.1156732247952816e+243
-1.5587298717253032e+209
Compiler

Compiled 681 to 496 computations (27.2% saved)

regimes64.0ms (0.6%)

Accuracy

Total -19.4b remaining (-119.1%)

Threshold costs -19.4b (-119.1%)

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

4 calls:

38.0ms
z
8.0ms
(*.f64 x 1/2)
8.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
16.3b1x
16.3b1y
16.3b1z
16.3b1(*.f64 x 1/2)
Compiler

Compiled 41 to 30 computations (26.8% saved)

simplify149.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
042250
162236
273236
379236
481236
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
(if (<=.f64 z 16263581093322644/18446744073709551616) (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 z 16263581093322644/18446744073709551616) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y)) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 231047549573687808/4294967296) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (*.f64 (+.f64 1 (log.f64 z)) y) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 (*.f64 (log.f64 z) y) y)))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 231047549573687808/4294967296) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 (*.f64 (log.f64 z) y) y)))))
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(*.f64 1/2 x)
Outputs
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
(if (<=.f64 z 16263581093322644/18446744073709551616) (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 z 4065895273330661/4611686018427387904) (+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (log.f64 z) 1))) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 z 4065895273330661/4611686018427387904) (+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (log.f64 z) 1))) (-.f64 (*.f64 x 1/2) (*.f64 y z)))
(if (<=.f64 z 16263581093322644/18446744073709551616) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y)) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 z 4065895273330661/4611686018427387904) (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 y (log.f64 z)))) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))))
(if (<=.f64 z 4065895273330661/4611686018427387904) (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 y (log.f64 z)))) (-.f64 (*.f64 x 1/2) (*.f64 y z)))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 231047549573687808/4294967296) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (*.f64 (+.f64 1 (log.f64 z)) y) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 (*.f64 (log.f64 z) y) y)))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 451264745261109/8388608) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (*.f64 y (+.f64 (log.f64 z) 1)) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 y (*.f64 y (log.f64 z)))))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 451264745261109/8388608) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (*.f64 y (+.f64 (log.f64 z) 1)) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (+.f64 y (*.f64 y (log.f64 z)))))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 231047549573687808/4294967296) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (+.f64 (*.f64 (log.f64 z) y) y) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 (*.f64 (log.f64 z) y) y)))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 451264745261109/8388608) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y))) (+.f64 y (*.f64 y (log.f64 z)))))))
(if (<=.f64 y -159999999999999997098091172929751711726836387471740571548426796715186209704630799022377610555249549207896713864363141708880453831066285477269019944803154308061772698575758733167316980571719613785167200568475648) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 451264745261109/8388608) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 y 2400000000000000021253893983573633386541344971381697813676032) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 y 51000000000000000397831216868247136936163991783341130802767970979303370466431442075656447520573230531243788644026213633073968536434887255075531924635562956926677417984) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (+.f64 y (*.f64 y (log.f64 z)))))))
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(-.f64 (*.f64 x 1/2) (*.f64 y z))
(*.f64 1/2 x)
(*.f64 x 1/2)
Compiler

Compiled 181 to 109 computations (39.8% saved)

soundness0.0ms (0%)

end177.0ms (1.7%)

Compiler

Compiled 163 to 79 computations (51.5% saved)

Profiling

Loading profile data...