Details

Time bar (total: 8.6s)

analyze266.0ms (3.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
11.1%6.2%49.9%0.1%18.7%25%0%7
16.7%9.4%46.8%0.1%18.7%25%0%8
26.5%14%39%0.1%21.8%25%0%9
38.4%18.7%30%0.1%24.6%26.5%0%10
45%21.8%26.7%0.1%24.8%26.5%0%11
54.3%25.9%21.8%0.1%25.5%26.5%0%12
Compiler

Compiled 16 to 12 computations (25% saved)

sample1.5s (17.7%)

Results
1.4s8256×body256valid
93.0ms624×body256infinite
17.0ms150×body256invalid
Bogosity

preprocess251.0ms (2.9%)

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)

simplify329.0ms (3.8%)

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)

prune2.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
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.1b
(fma.f64 x 1/2 (fma.f64 y (-.f64 (log.f64 z) z) y))
Compiler

Compiled 28 to 19 computations (32.1% saved)

localize20.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.6%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
34.0ms
y
@0
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
9.0ms
z
@0
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
4.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)))

rewrite72.0ms (0.8%)

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

simplify165.0ms (1.9%)

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

localize14.0ms (0.2%)

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)

series4.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
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
y
@inf
(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)

rewrite69.0ms (0.8%)

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

simplify233.0ms (2.7%)

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.8%)

Compiler

Compiled 3759 to 2102 computations (44.1% saved)

prune48.0ms (0.6%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New20313216
Fresh000
Picked101
Done011
Total20414218
Error
0.0b
Counts
218 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
24.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z))))))
31.1b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2))
12.6b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
0.6b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (*.f64 y (+.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))))
11.2b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (+.f64 z (log.f64 z)))))
15.0b
(+.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) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
33.1b
(+.f64 (*.f64 x 1/2) (fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y (-.f64 1 z))))
0.6b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
15.9b
(+.f64 (*.f64 x 1/2) (/.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))))
24.9b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
18.0b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
Compiler

Compiled 499 to 369 computations (26.1% saved)

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 43 to 24 computations (44.2% saved)

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite77.0ms (0.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
0821
117221
2239121
Stop Event
node limit
Counts
2 → 68
Calls
Call 1
Inputs
(*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z))
(-.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 (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))))))

simplify158.0ms (1.8%)

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
104 → 84
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))

localize9.0ms (0.1%)

Compiler

Compiled 24 to 11 computations (54.2% saved)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 53 to 36 computations (32.1% saved)

series76.0ms (0.9%)

Counts
4 → 56
Calls

15 calls:

TimeVariablePointExpression
27.0ms
z
@inf
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
18.0ms
y
@0
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
13.0ms
z
@-inf
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
12.0ms
z
@0
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
1.0ms
z
@-inf
(*.f64 z (exp.f64 (-.f64 1 z)))

rewrite80.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
878×pow1_binary64
810×add-log-exp_binary64
810×log1p-expm1-u_binary64
810×expm1-log1p-u_binary64
794×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0936
117736
2216636
Stop Event
node limit
Counts
4 → 81
Calls
Call 1
Inputs
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(log.f64 (*.f64 z (exp.f64 (-.f64 1 z))))
(exp.f64 (-.f64 1 z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 z (exp.f64 (-.f64 1 z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (E.f64) z) (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (E.f64)) (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (exp.f64 (-.f64 1 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (+.f64 (-.f64 1 z) (log.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 z (exp.f64 (-.f64 1 z))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 z (exp.f64 (-.f64 1 z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 z (exp.f64 (-.f64 1 z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.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 pow.f64 (exp.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 sqrt.f64 (pow.f64 (*.f64 z (exp.f64 (-.f64 1 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 z) (exp.f64 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 z (exp.f64 (-.f64 1 z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (exp.f64 (-.f64 1 z)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (exp.f64 (-.f64 1 z)) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))
((#(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 (log.f64 z)) (*.f64 y (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 1)))) (#(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))) 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 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 cbrt.f64 (pow.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (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) (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 (log.f64 (*.f64 y (+.f64 (-.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 (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 (+.f64 (log.f64 z) 1) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 (-.f64 1 z) (log.f64 z))) 1)))) (#(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 (log.f64 z) 3) (pow.f64 (-.f64 1 z) 3)) (+.f64 (*.f64 (log.f64 z) (log.f64 z)) (-.f64 (pow.f64 (-.f64 1 z) 2) (*.f64 (log.f64 z) (-.f64 1 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (log.f64 z) (log.f64 z)) (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 (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 sqrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 2))))) (#(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 (expm1.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (exp.f64 (-.f64 1 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (E.f64) (exp.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (exp.f64 (-.f64 1 z))) (pow.f64 (cbrt.f64 (exp.f64 (-.f64 1 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 1 z))) 2) (cbrt.f64 (exp.f64 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (exp.f64 (-.f64 1 z))) (sqrt.f64 (exp.f64 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (exp.f64 z) (E.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (E.f64) (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (E.f64)) (neg.f64 (exp.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (-.f64 1 z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (exp.f64 (-.f64 1 z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (exp.f64 (-.f64 1 z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (-.f64 1 z)) 2)) (cbrt.f64 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (-.f64 1 z))) (sqrt.f64 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (exp.f64 (-.f64 1 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (-.f64 1 z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (-.f64 1 z))))))))

simplify67.0ms (0.8%)

Algorithm
egg-herbie
Rules
596×distribute-rgt-neg-in_binary64
565×distribute-rgt-out_binary64
539×associate-*l*_binary64
531×distribute-lft-neg-in_binary64
397×associate-*r*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
066681
1203630
2487606
31482593
44810592
Stop Event
node limit
Counts
137 → 113
Calls
Call 1
Inputs
(*.f64 (E.f64) z)
(+.f64 (*.f64 (E.f64) z) (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2))))
(+.f64 (*.f64 1/2 (*.f64 (E.f64) (pow.f64 z 3))) (+.f64 (*.f64 (E.f64) z) (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2)))))
(+.f64 (*.f64 1/2 (*.f64 (E.f64) (pow.f64 z 3))) (+.f64 (*.f64 (E.f64) z) (+.f64 (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2))) (*.f64 -1/6 (*.f64 (E.f64) (pow.f64 z 4))))))
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 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 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 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 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(exp.f64 1)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (exp.f64 1))
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 1))) (exp.f64 1)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 z 3) (exp.f64 1))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 1))) (exp.f64 1))))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
Outputs
(*.f64 (E.f64) z)
(*.f64 z (E.f64))
(+.f64 (*.f64 (E.f64) z) (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2))))
(fma.f64 (E.f64) z (neg.f64 (*.f64 (*.f64 z z) (E.f64))))
(fma.f64 z (E.f64) (*.f64 (*.f64 z z) (neg.f64 (E.f64))))
(*.f64 z (*.f64 (E.f64) (-.f64 1 z)))
(+.f64 (*.f64 1/2 (*.f64 (E.f64) (pow.f64 z 3))) (+.f64 (*.f64 (E.f64) z) (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 z 3) (E.f64)) (fma.f64 (E.f64) z (neg.f64 (*.f64 (*.f64 z z) (E.f64)))))
(-.f64 (fma.f64 (*.f64 1/2 (E.f64)) (pow.f64 z 3) (*.f64 z (E.f64))) (*.f64 z (*.f64 z (E.f64))))
(fma.f64 z (E.f64) (*.f64 z (*.f64 (E.f64) (*.f64 z (+.f64 -1 (*.f64 z 1/2))))))
(*.f64 z (*.f64 (E.f64) (-.f64 (fma.f64 (*.f64 z z) 1/2 1) z)))
(+.f64 (*.f64 1/2 (*.f64 (E.f64) (pow.f64 z 3))) (+.f64 (*.f64 (E.f64) z) (+.f64 (*.f64 -1 (*.f64 (E.f64) (pow.f64 z 2))) (*.f64 -1/6 (*.f64 (E.f64) (pow.f64 z 4))))))
(fma.f64 1/2 (*.f64 (pow.f64 z 3) (E.f64)) (fma.f64 (E.f64) z (fma.f64 -1 (*.f64 (*.f64 z z) (E.f64)) (*.f64 -1/6 (*.f64 (pow.f64 z 4) (E.f64))))))
(fma.f64 1/2 (*.f64 (pow.f64 z 3) (E.f64)) (fma.f64 z (E.f64) (-.f64 (*.f64 (pow.f64 z 4) (*.f64 -1/6 (E.f64))) (*.f64 z (*.f64 z (E.f64))))))
(+.f64 (*.f64 z (*.f64 (E.f64) (-.f64 1 z))) (*.f64 (E.f64) (+.f64 (*.f64 -1/6 (pow.f64 z 4)) (*.f64 1/2 (pow.f64 z 3)))))
(*.f64 (E.f64) (+.f64 (-.f64 z (*.f64 z z)) (*.f64 (pow.f64 z 3) (+.f64 (*.f64 z -1/6) 1/2))))
(*.f64 (E.f64) (+.f64 (-.f64 z (*.f64 z z)) (*.f64 (pow.f64 z 3) (+.f64 1/2 (*.f64 z -1/6)))))
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 (exp.f64 (-.f64 1 z)) z)
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 z (exp.f64 (+.f64 (*.f64 -1 z) 1)))
(*.f64 z (exp.f64 (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (log.f64 (*.f64 (exp.f64 (-.f64 1 z)) z)))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (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 (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.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))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.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))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 (-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z) y)
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z)))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(-.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) z)
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (log.f64 (*.f64 -1 (exp.f64 (+.f64 (*.f64 -1 z) 1)))) (*.f64 -1 (log.f64 (/.f64 -1 z))))
(+.f64 (-.f64 1 z) (log.f64 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (log.f64 z) (-.f64 1 z))
(exp.f64 1)
(E.f64)
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (exp.f64 1))
(fma.f64 -1 (*.f64 z (E.f64)) (E.f64))
(*.f64 (-.f64 1 z) (E.f64))
(*.f64 (E.f64) (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 1))) (exp.f64 1)))
(fma.f64 -1 (*.f64 z (E.f64)) (fma.f64 1/2 (*.f64 (*.f64 z z) (E.f64)) (E.f64)))
(-.f64 (fma.f64 1/2 (*.f64 z (*.f64 z (E.f64))) (E.f64)) (*.f64 z (E.f64)))
(*.f64 (E.f64) (-.f64 (fma.f64 (*.f64 z z) 1/2 1) z))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 z 3) (exp.f64 1))) (+.f64 (*.f64 -1 (*.f64 z (exp.f64 1))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 z 2) (exp.f64 1))) (exp.f64 1))))
(fma.f64 -1/6 (*.f64 (pow.f64 z 3) (E.f64)) (fma.f64 -1 (*.f64 z (E.f64)) (fma.f64 1/2 (*.f64 (*.f64 z z) (E.f64)) (E.f64))))
(+.f64 (fma.f64 1/2 (*.f64 z (*.f64 z (E.f64))) (E.f64)) (*.f64 (E.f64) (+.f64 (*.f64 (pow.f64 z 3) -1/6) (neg.f64 z))))
(fma.f64 (E.f64) (fma.f64 (pow.f64 z 3) -1/6 (neg.f64 z)) (*.f64 (E.f64) (fma.f64 (*.f64 z z) 1/2 1)))
(*.f64 (E.f64) (+.f64 (fma.f64 (*.f64 z z) 1/2 1) (-.f64 (*.f64 (pow.f64 z 3) -1/6) z)))
(*.f64 (E.f64) (-.f64 (+.f64 1 (*.f64 (*.f64 z z) (+.f64 1/2 (*.f64 z -1/6)))) z))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (-.f64 1 z))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (-.f64 1 z))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (-.f64 1 z))
(exp.f64 (+.f64 (*.f64 -1 z) 1))
(exp.f64 (-.f64 1 z))

localize61.0ms (0.7%)

Local error

Found 4 expressions with local error:

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

Compiled 65 to 41 computations (36.9% saved)

series19.0ms (0.2%)

Counts
3 → 32
Calls

12 calls:

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

rewrite120.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
854×prod-diff_binary64
471×log-prod_binary64
356×pow-prod-down_binary64
313×fma-def_binary64
270×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01132
123932
2286632
Stop Event
node limit
Counts
3 → 118
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 3)
(cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))
(*.f64 y (pow.f64 (cbrt.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 (-.f64 1 z) (log.f64 z))) (/.f64 (pow.f64 (log.f64 z) 2) (-.f64 (-.f64 1 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 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) 2) (*.f64 (cbrt.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 (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 (-.f64 1 z) (log.f64 z)) 1/6) (*.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6) (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (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)) (/.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 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 2) 1) (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))) 2) (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 2) (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6)) (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6))))) (#(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 (-.f64 1 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 (-.f64 1 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 (-.f64 1 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 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 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 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) 2) (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6) (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (-.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 (log.f64 z) 2))) (cbrt.f64 (-.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (+.f64 (pow.f64 (-.f64 1 z) 3) (pow.f64 (log.f64 z) 3))) (cbrt.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 pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.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)) 2) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.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/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/3 (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/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (fma.f64 -1 z (log.f64 z)))) 1))))))
((#(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 (-.f64 1 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 (-.f64 1 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)))))))

simplify99.0ms (1.1%)

Algorithm
egg-herbie
Rules
716×associate-*l*_binary64
676×associate-*r*_binary64
616×fma-def_binary64
448×distribute-rgt-out_binary64
273×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01101128
13531049
21207982
36183972
Stop Event
node limit
Counts
150 → 143
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z))
(+.f64 (*.f64 (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (+.f64 (*.f64 2/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z)))
(+.f64 (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9))) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 2/27 (*.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (pow.f64 1 1/9))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)))))))))) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (+.f64 (*.f64 2/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z))))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)))
(+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2)))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (*.f64 (pow.f64 z 3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)))))) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))))))
(*.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 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z))
(+.f64 (+.f64 1 (log.f64 z)) (*.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1)))
(fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1) (+.f64 1 (log.f64 z)))
(+.f64 1 (fma.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) (neg.f64 z) (log.f64 z)))
(+.f64 1 (-.f64 (log.f64 z) (*.f64 z (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (+.f64 (*.f64 2/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z)))
(fma.f64 (fma.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) (fma.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9)))) (*.f64 z z) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1))))
(fma.f64 (+.f64 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 -1/9 (cbrt.f64 (+.f64 1 (log.f64 z))))) (*.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9)) (*.f64 z z) (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1) (+.f64 1 (log.f64 z))))
(+.f64 (fma.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) (neg.f64 z) 1) (fma.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 -1/9 (*.f64 (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)))) (*.f64 z z) (log.f64 z)))
(+.f64 1 (+.f64 (log.f64 z) (*.f64 z (-.f64 (*.f64 z (fma.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 -1/9 (*.f64 (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))))) (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18))))))
(+.f64 (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3))))) (+.f64 (*.f64 -1/3 (*.f64 (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9))) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 2/27 (*.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (pow.f64 1 1/9))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)))))))))) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (+.f64 (*.f64 2/9 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/9)) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) 1) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3)) (*.f64 (+.f64 (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9)) (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1) 1/9))) z))))
(fma.f64 (fma.f64 2/27 (*.f64 1 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (+.f64 (*.f64 -1/3 (fma.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27))) (fma.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 2/27 (/.f64 1 (+.f64 1 (log.f64 z))) (*.f64 (*.f64 -2/3 (cbrt.f64 (/.f64 1 (+.f64 1 (log.f64 z))))) (fma.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)))))))) (pow.f64 z 3) (fma.f64 (fma.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) (fma.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9)))) (*.f64 z z) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1)))))
(fma.f64 (fma.f64 2/27 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (fma.f64 -1/3 (fma.f64 2/9 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (fma.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 -2/3 (*.f64 (fma.f64 2/9 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (cbrt.f64 (/.f64 1 (+.f64 1 (log.f64 z))))) (/.f64 2/27 (+.f64 1 (log.f64 z)))) (*.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))) (*.f64 (*.f64 -1/3 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))))) (pow.f64 z 3) (fma.f64 (+.f64 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 -1/9 (cbrt.f64 (+.f64 1 (log.f64 z))))) (*.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9)) (*.f64 z z) (fma.f64 z (*.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) -1) (+.f64 1 (log.f64 z)))))
(fma.f64 z (*.f64 z (fma.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 -1/9 (*.f64 (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))))) (fma.f64 (fma.f64 2/27 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (fma.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (cbrt.f64 (/.f64 1 (+.f64 1 (log.f64 z))))) (/.f64 2/27 (+.f64 1 (log.f64 z)))) (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))) 1/27)))) (pow.f64 z 3) (+.f64 1 (fma.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)) (neg.f64 z) (log.f64 z)))))
(fma.f64 (fma.f64 2/27 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (+.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (*.f64 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) 1/27) (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (/.f64 2/27 (+.f64 1 (log.f64 z))))) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (+.f64 (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (*.f64 -2/3 (cbrt.f64 (/.f64 1 (+.f64 1 (log.f64 z)))))) -1/3)))) (pow.f64 z 3) (+.f64 1 (+.f64 (log.f64 z) (*.f64 z (-.f64 (*.f64 z (fma.f64 (*.f64 (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 1 (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 -1/9 (*.f64 (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))))) (*.f64 (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18) (pow.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) 1/18)))))))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)))
(+.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (*.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))))
(fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 1 (log.f64 z))))
(+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2)))))
(+.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (*.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))))))
(+.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 (*.f64 (*.f64 -1/3 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) z (*.f64 -1/9 (*.f64 (*.f64 z (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)) (*.f64 z (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))))))
(fma.f64 (*.f64 z z) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 1 (log.f64 z)))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (*.f64 (pow.f64 z 3) (+.f64 (*.f64 2/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (*.f64 -1/27 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)))))) (+.f64 (pow.f64 (+.f64 1 (log.f64 z)) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))))))
(fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (fma.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (pow.f64 z 3))) (+.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (*.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)))))))
(+.f64 (fma.f64 (*.f64 (*.f64 -1/3 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) z (*.f64 -1/9 (*.f64 (*.f64 z (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)) (*.f64 z (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))))) (fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (fma.f64 2/9 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (pow.f64 z 3))) (cbrt.f64 (+.f64 1 (log.f64 z)))))
(fma.f64 -1/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (pow.f64 z 3))) (fma.f64 (*.f64 z z) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 1 (log.f64 z))))))
(fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2))) -5/81) (pow.f64 z 3)) (fma.f64 (*.f64 z z) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 1 (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 1 (log.f64 z))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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 (log.f64 z) z) y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))

localize39.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 1 z))
0.1b
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y (-.f64 1 z)))
0.2b
(*.f64 (log.f64 z) (sqrt.f64 y))
Compiler

Compiled 58 to 26 computations (55.2% saved)

series39.0ms (0.4%)

Counts
3 → 39
Calls

18 calls:

TimeVariablePointExpression
10.0ms
z
@-inf
(*.f64 (log.f64 z) (sqrt.f64 y))
9.0ms
z
@0
(*.f64 (log.f64 z) (sqrt.f64 y))
6.0ms
z
@inf
(*.f64 (log.f64 z) (sqrt.f64 y))
5.0ms
z
@inf
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y (-.f64 1 z)))
1.0ms
y
@-inf
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y (-.f64 1 z)))

rewrite77.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
979×pow1_binary64
903×add-log-exp_binary64
903×log1p-expm1-u_binary64
903×expm1-log1p-u_binary64
100×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify100.0ms (1.2%)

Algorithm
egg-herbie
Rules
881×unsub-neg_binary64
775×fma-def_binary64
388×fma-neg_binary64
358×sub-neg_binary64
340×distribute-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
033338
192329
2221320
3595302
41528302
54575302
66341302
77611302
87946302
Stop Event
node limit
Counts
95 → 71
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.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 (*.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)))))))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.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 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 -1 (*.f64 (sqrt.f64 y) (log.f64 (/.f64 1 z))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.f64 y) (log.f64 z))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (sqrt.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 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (fma.f64 (neg.f64 y) z y))
(+.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) (fma.f64 (neg.f64 y) z y))
(+.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) (fma.f64 (neg.f64 y) z y))
(+.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 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (fma.f64 (neg.f64 y) z y))
(+.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))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (fma.f64 (neg.f64 y) z y))
(+.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))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (fma.f64 (neg.f64 y) z y))
(+.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) (fma.f64 (neg.f64 y) z y))
(+.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) (fma.f64 (neg.f64 y) z y))
(+.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) (fma.f64 (neg.f64 y) z y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))

eval763.0ms (8.8%)

Compiler

Compiled 9723 to 6411 computations (34.1% saved)

prune92.0ms (1.1%)

Pruning

18 alts after pruning (14 fresh and 4 done)

PrunedKeptTotal
New46613479
Fresh718
Picked101
Done145
Total47518493
Error
0b
Counts
493 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
12.7b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
11.2b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 (pow.f64 (-.f64 1 z) 2) (pow.f64 (log.f64 z) 2)) y) (-.f64 (-.f64 1 z) (log.f64 z))))
24.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z))))))
12.6b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
10.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z))))))
24.9b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 3)))
11.2b
(+.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))))
12.9b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) 3)))
15.9b
(+.f64 (*.f64 x 1/2) (/.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))))))
15.0b
(+.f64 (*.f64 x 1/2) (*.f64 y (cbrt.f64 (pow.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 3))))
0.6b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 3))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
40.4b
(+.f64 (*.f64 x 1/2) (fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y))
18.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
31.1b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2))
37.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) 3)) (sqrt.f64 y) (*.f64 y (-.f64 1 z))))
18.0b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
Compiler

Compiled 617 to 452 computations (26.7% saved)

localize30.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 66 to 40 computations (39.4% saved)

series13.0ms (0.1%)

Counts
3 → 32
Calls

18 calls:

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

rewrite82.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
854×prod-diff_binary64
477×log-prod_binary64
352×pow-prod-down_binary64
311×fma-def_binary64
270×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
123938
2287738
Stop Event
node limit
Counts
3 → 107
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 3)
(cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))
(*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)
Outputs
((#(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 1 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) (*.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2)))))) (#(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 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 (-.f64 1 z) (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) (sqrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6) (*.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6) (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 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))) 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 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (pow.f64 (cbrt.f64 y) 2)) (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 (*.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 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) 1) (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z)))) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6)) (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6))))) (#(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 /.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 (-.f64 1 z) (log.f64 z)))))) (#(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)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (-.f64 1 z) (log.f64 z))) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 y) (cbrt.f64 (+.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)) y) 1/6) (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.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/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) 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/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 1))))))
((#(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 (-.f64 1 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 (-.f64 1 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 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 3)))) (#(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 (pow.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y)) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y))) 9)))) (#(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 pow.f64 (pow.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y) 1/6) 6)))) (#(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)))))))

simplify80.0ms (0.9%)

Algorithm
egg-herbie
Rules
663×fma-def_binary64
546×associate-/l*_binary64
365×associate-/r/_binary64
305×*-commutative_binary64
305×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01351318
14521208
214731119
352411111
Stop Event
node limit
Counts
139 → 107
Calls
Call 1
Inputs
(*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)) (*.f64 2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)))) (pow.f64 z 2)) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3))))
(+.f64 (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9))))) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 2/27 (*.f64 (/.f64 (pow.f64 y 2) (+.f64 1 (log.f64 z))) (pow.f64 1 1/9))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (+.f64 1 (log.f64 z)) y)) 1/3) (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))))))))))) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)) (*.f64 2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)))) (pow.f64 z 2)) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3)))))
(pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3)
(+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 11)) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))) (+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z))))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 11)) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))) (+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 2))) 1/3) (*.f64 (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 z 3)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) 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 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))
Outputs
(*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3)))
(fma.f64 (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) -1) z (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) (neg.f64 z)))
(fma.f64 z (neg.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18))) (fma.f64 (log.f64 z) y y))
(-.f64 (fma.f64 (log.f64 z) y y) (*.f64 z (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18))))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)) (*.f64 2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)))) (pow.f64 z 2)) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3))))
(fma.f64 (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) -1) z (fma.f64 (fma.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9) (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) 1/9)) (*.f64 z z) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 z (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) -1) (fma.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 -1/9 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))) (*.f64 z z) (+.f64 y (*.f64 (log.f64 z) y))))
(fma.f64 z (neg.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18))) (fma.f64 z (*.f64 z (fma.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) -1/9) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18))))) (fma.f64 (log.f64 z) y y)))
(+.f64 (fma.f64 (log.f64 z) y y) (*.f64 z (-.f64 (*.f64 z (fma.f64 1/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (*.f64 -1/9 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)))))) (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)))))
(+.f64 (*.f64 (+.f64 (*.f64 2/27 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9))))) (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 2/27 (*.f64 (/.f64 (pow.f64 y 2) (+.f64 1 (log.f64 z))) (pow.f64 1 1/9))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (+.f64 1 (log.f64 z)) y)) 1/3) (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9))))))))))) (pow.f64 z 3)) (+.f64 (*.f64 (+.f64 (*.f64 -2/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9)) (*.f64 -1/3 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (*.f64 1 (pow.f64 y 13))) 1/9))) z) (+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 1 y)) 1/3) (+.f64 (*.f64 -2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)) (*.f64 1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 14)) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/9)))) (+.f64 (*.f64 -1/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)) (*.f64 2/9 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 17)) (+.f64 1 (log.f64 z))) 1/9)))) (pow.f64 z 2)) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) y) (pow.f64 1 1/3)))))
(fma.f64 (fma.f64 2/27 (*.f64 1 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)))) (+.f64 (*.f64 -1/3 (fma.f64 -1/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))))))) (fma.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (*.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (fma.f64 2/27 (*.f64 1 (/.f64 (*.f64 y y) (+.f64 1 (log.f64 z)))) (*.f64 (*.f64 -2/3 (cbrt.f64 (/.f64 1 (*.f64 (+.f64 1 (log.f64 z)) y)))) (fma.f64 -1/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)))))))))))) (pow.f64 z 3) (fma.f64 (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) -1) z (fma.f64 (fma.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9) (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) 1/9)) (*.f64 z z) (*.f64 (+.f64 1 (log.f64 z)) y))))
(fma.f64 (fma.f64 2/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (fma.f64 -1/3 (fma.f64 2/9 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (fma.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) (fma.f64 -2/3 (*.f64 (fma.f64 2/9 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (cbrt.f64 (/.f64 1 (+.f64 y (*.f64 (log.f64 z) y))))) (/.f64 (*.f64 2/27 (*.f64 y y)) (+.f64 1 (log.f64 z)))) (*.f64 -1/3 (*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18))) -1/9))))) (pow.f64 z 3) (fma.f64 z (*.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18)) -1) (fma.f64 (fma.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) 1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 -1/9 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))) (*.f64 z z) (+.f64 y (*.f64 (log.f64 z) y)))))
(fma.f64 (fma.f64 -1/3 (+.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (*.f64 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) -1/9) (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))) (fma.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) (fma.f64 -2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (cbrt.f64 (/.f64 1 (fma.f64 (log.f64 z) y y)))) (/.f64 2/27 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 y y)))) (*.f64 2/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)))))) (pow.f64 z 3) (fma.f64 z (neg.f64 (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18))) (fma.f64 z (*.f64 z (fma.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) -1/9) (*.f64 1/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18))))) (fma.f64 (log.f64 z) y y))))
(+.f64 (fma.f64 (log.f64 z) y y) (fma.f64 (fma.f64 2/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (fma.f64 -1/3 (*.f64 -1/9 (*.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)) (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)))) (+.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (+.f64 -1/3 (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) (*.f64 -2/3 (cbrt.f64 (/.f64 1 (fma.f64 (log.f64 z) y y))))))) (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) (*.f64 2/27 (*.f64 y (/.f64 y (+.f64 1 (log.f64 z))))))))) (pow.f64 z 3) (*.f64 z (-.f64 (*.f64 z (fma.f64 1/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18) (pow.f64 (/.f64 (pow.f64 y 17) (+.f64 1 (log.f64 z))) 1/18)) (*.f64 (cbrt.f64 (fma.f64 (log.f64 z) y y)) (*.f64 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18) (*.f64 -1/9 (pow.f64 (/.f64 (pow.f64 y 14) (pow.f64 (+.f64 1 (log.f64 z)) 4)) 1/18)))))) (*.f64 (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18) (pow.f64 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 4) (pow.f64 y 13)) 1/18))))))
(pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3)
(cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y))
(cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
(cbrt.f64 (fma.f64 (log.f64 z) y y))
(+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)))
(+.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (*.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))))
(fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))))
(fma.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (*.f64 -1/3 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (fma.f64 (log.f64 z) y y)))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 11)) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))) (+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z))))
(fma.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (+.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (*.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))))))
(fma.f64 -1/9 (*.f64 z (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)))) (fma.f64 -1/3 (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))
(fma.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (*.f64 -1/3 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (fma.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (cbrt.f64 (fma.f64 (log.f64 z) y y))))
(fma.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (*.f64 -1/3 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18))) (fma.f64 -1/9 (*.f64 z (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)))) (cbrt.f64 (fma.f64 (log.f64 z) y y))))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 11)) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/9) (pow.f64 z 2))) (+.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 1/3) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 2))) 1/3) (*.f64 (+.f64 (*.f64 -1/27 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3)) (*.f64 2/9 (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/3) (pow.f64 (pow.f64 1 4) 1/9)))) (pow.f64 z 3)))) (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 (*.f64 1 (pow.f64 y 7)) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/9) z)))))
(fma.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (+.f64 (cbrt.f64 (*.f64 (+.f64 1 (log.f64 z)) y)) (*.f64 -1/3 (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 y y)))) (*.f64 (fma.f64 -1/27 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 2/9 (*.f64 1 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)))))) (pow.f64 z 3))) (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))))))
(fma.f64 -1/9 (*.f64 z (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)))) (fma.f64 -1/3 (fma.f64 (*.f64 (fma.f64 2/9 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) -1/27)) (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 y y))))) (pow.f64 z 3) (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)))) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))
(fma.f64 -1/3 (fma.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (*.f64 (pow.f64 z 3) (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 y y))))))) (fma.f64 -1/9 (*.f64 (*.f64 z z) (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18))) (cbrt.f64 (fma.f64 (log.f64 z) y y))))
(fma.f64 -1/3 (fma.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18) (pow.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2)) 1/18)) (*.f64 (pow.f64 z 3) (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 y 7) (pow.f64 (+.f64 1 (log.f64 z)) 2))) 5/27) (cbrt.f64 (/.f64 1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 y y))))))) (fma.f64 -1/9 (*.f64 z (*.f64 z (*.f64 (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18) (pow.f64 (/.f64 (pow.f64 y 11) (pow.f64 (+.f64 1 (log.f64 z)) 7)) 1/18)))) (cbrt.f64 (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 (*.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 z (neg.f64 y))
(*.f64 y (neg.f64 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 (*.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 z (neg.f64 y))
(*.f64 y (neg.f64 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 (*.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 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)))

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 28 to 18 computations (35.7% saved)

localize29.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 52 to 34 computations (34.6% saved)

series11.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

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

rewrite79.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
835×pow1_binary64
781×add-log-exp_binary64
780×log1p-expm1-u_binary64
780×expm1-log1p-u_binary64
764×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify140.0ms (1.6%)

Algorithm
egg-herbie
Rules
680×fma-def_binary64
582×unsub-neg_binary64
393×fma-neg_binary64
364×unswap-sqr_binary64
346×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
028420
187384
2182336
3402336
4748336
51592336
64964336
76810336
87429336
97781336
Stop Event
node limit
Counts
125 → 87
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(*.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)
(*.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))))))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) (pow.f64 1 1/3))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(*.f64 (pow.f64 1 1/3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 1 (log.f64 z))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (log.f64 z)) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(cbrt.f64 (+.f64 1 (log.f64 z)))
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 1/3)
(cbrt.f64 (+.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 (+.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 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)

localize119.0ms (1.4%)

Local error

Found 4 expressions with local error:

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

Compiled 66 to 40 computations (39.4% saved)

series17.0ms (0.2%)

Counts
2 → 8
Calls

12 calls:

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

rewrite77.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
854×prod-diff_binary64
462×log-prod_binary64
340×pow-prod-down_binary64
312×fma-def_binary64
264×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify56.0ms (0.7%)

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
81 → 87
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))))

localize17.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (log.f64 z) (sqrt.f64 y))
0.2b
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
Compiler

Compiled 41 to 13 computations (68.3% saved)

series3.0ms (0%)

Counts
1 → 15
Calls

6 calls:

TimeVariablePointExpression
0.0ms
z
@0
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
0.0ms
y
@-inf
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
0.0ms
z
@inf
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
0.0ms
z
@-inf
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
0.0ms
y
@0
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
627×pow1_binary64
575×add-log-exp_binary64
575×log1p-expm1-u_binary64
575×expm1-log1p-u_binary64
560×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0714
11369
215979
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 y (*.f64 (log.f64 z) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (log.f64 z) y) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (log.f64 z) y) 1) 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 (sqrt.f64 y) (+.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.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 (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 (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 (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 (+.f64 (pow.f64 (*.f64 (log.f64 z) y) 3) (pow.f64 y 3)) (+.f64 (*.f64 (*.f64 (log.f64 z) y) (*.f64 (log.f64 z) y)) (-.f64 (*.f64 y y) (*.f64 (*.f64 (log.f64 z) y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (log.f64 z) y) (*.f64 (log.f64 z) y)) (*.f64 y y)) (-.f64 (*.f64 (log.f64 z) y) y))))) (#(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 (exp.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))))) (#(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 (expm1.f64 (+.f64 y (*.f64 (log.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 y (*.f64 (log.f64 z) y))))))))

simplify558.0ms (6.5%)

Algorithm
egg-herbie
Rules
2637×distribute-rgt-in_binary64
571×unsub-neg_binary64
532×sub-neg_binary64
504×fma-neg_binary64
353×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02087
14787
210287
321887
445187
5133587
6378687
7489087
8575087
9634187
10662587
11678087
12678287
13678287
14693287
15701287
16706987
17711187
18713087
19714687
20717187
21719587
22720987
23722787
24724187
25725987
26727387
27729187
28730587
29732387
30733787
31735587
32736987
33738787
34740187
35741987
36743387
37745187
38746587
Stop Event
node limit
Counts
37 → 27
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))))))
y
y
y
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)
y
y
y

eval296.0ms (3.4%)

Compiler

Compiled 10533 to 7057 computations (33% saved)

prune95.0ms (1.1%)

Pruning

18 alts after pruning (12 fresh and 6 done)

PrunedKeptTotal
New49010500
Fresh729
Picked101
Done268
Total50018518
Error
0b
Counts
518 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
12.9b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 3))
24.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z))))))
12.6b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
10.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z))))))
29.6b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)))
13.0b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (log.f64 z))))
18.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
12.7b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
12.9b
(+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))
30.9b
(+.f64 (*.f64 x 1/2) y)
18.0b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
35.6b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2))
33.1b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y)))
12.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3))))
12.9b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) 3)))
27.6b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)))
Compiler

Compiled 499 to 360 computations (27.9% saved)

localize46.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (/.f64 1 (/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)))))
0.2b
(/.f64 1 (/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z))))
0.5b
(pow.f64 (+.f64 (log.f64 z) 1) 2)
10.0b
(/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)))
Compiler

Compiled 125 to 71 computations (43.2% saved)

series12.0ms (0.1%)

Counts
4 → 60
Calls

15 calls:

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

rewrite106.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
765×log-prod_binary64
628×fma-def_binary64
329×fma-neg_binary64
268×log1p-udef_binary64
266×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify77.0ms (0.9%)

Algorithm
egg-herbie
Rules
506×cancel-sign-sub-inv_binary64
298×associate-/r/_binary64
282×fma-def_binary64
272×associate-/l/_binary64
270×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0781124
12441060
28561005
33908815
Stop Event
node limit
Counts
228 → 204
Calls
Call 1
Inputs
(/.f64 1 (+.f64 1 (log.f64 z)))
(+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2)))
(+.f64 (/.f64 (pow.f64 z 2) (pow.f64 (+.f64 1 (log.f64 z)) 3)) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))))
(+.f64 (/.f64 (pow.f64 z 3) (pow.f64 (+.f64 1 (log.f64 z)) 4)) (+.f64 (/.f64 (pow.f64 z 2) (pow.f64 (+.f64 1 (log.f64 z)) 3)) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2)))))
(/.f64 -1 z)
(-.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2))) (/.f64 1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2)))) (/.f64 1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3) (pow.f64 z 4))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2))))) (/.f64 1 z))
(/.f64 -1 z)
(-.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (/.f64 1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (pow.f64 z 3)))) (/.f64 1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3) (pow.f64 z 4))))) (/.f64 1 z))
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(+.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))))))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (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 (+.f64 1 (log.f64 z)))
(+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2)))
(+.f64 (/.f64 (pow.f64 z 2) (pow.f64 (+.f64 1 (log.f64 z)) 3)) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))))
(+.f64 (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))) (/.f64 (*.f64 z z) (pow.f64 (+.f64 1 (log.f64 z)) 3)))
(+.f64 (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))) (/.f64 z (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) z)))
(+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (*.f64 (+.f64 (/.f64 z (+.f64 1 (log.f64 z))) 1) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))))
(+.f64 (/.f64 (pow.f64 z 3) (pow.f64 (+.f64 1 (log.f64 z)) 4)) (+.f64 (/.f64 (pow.f64 z 2) (pow.f64 (+.f64 1 (log.f64 z)) 3)) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2)))))
(+.f64 (+.f64 (/.f64 (pow.f64 z 3) (pow.f64 (+.f64 1 (log.f64 z)) 4)) (/.f64 (*.f64 z z) (pow.f64 (+.f64 1 (log.f64 z)) 3))) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))))
(+.f64 (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))) (+.f64 (/.f64 z (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) z)) (/.f64 (pow.f64 z 3) (pow.f64 (+.f64 1 (log.f64 z)) 4))))
(+.f64 (*.f64 (+.f64 (/.f64 z (+.f64 1 (log.f64 z))) 1) (/.f64 z (pow.f64 (+.f64 1 (log.f64 z)) 2))) (+.f64 (/.f64 1 (+.f64 1 (log.f64 z))) (/.f64 (pow.f64 z 3) (pow.f64 (+.f64 1 (log.f64 z)) 4))))
(/.f64 -1 z)
(-.f64 (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2))) (/.f64 1 z))
(-.f64 (neg.f64 (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z))) (/.f64 1 z))
(fma.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z))
(-.f64 (/.f64 -1 z) (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)))
(+.f64 (/.f64 (-.f64 -1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2)))) (/.f64 1 z))
(-.f64 (*.f64 -1 (+.f64 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 2) (pow.f64 z 3)) (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z)))) (/.f64 1 z))
(fma.f64 -1 (+.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 3))) (/.f64 -1 z))
(+.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (-.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) z))) (/.f64 -1 z))
(+.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (+.f64 -1 (/.f64 (-.f64 -1 (log.f64 z)) z))) (/.f64 -1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3) (pow.f64 z 4))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) (pow.f64 z 2))))) (/.f64 1 z))
(-.f64 (fma.f64 -1 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 3) (pow.f64 z 4)) (*.f64 -1 (+.f64 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 2) (pow.f64 z 3)) (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z))))) (/.f64 1 z))
(+.f64 (-.f64 (-.f64 (neg.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z))) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 3))) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 z 4))) (/.f64 -1 z))
(-.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (-.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) z))) (+.f64 (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 z 4)) (/.f64 1 z)))
(*.f64 (+.f64 (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) 1) (+.f64 (/.f64 (-.f64 -1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z)))
(/.f64 -1 z)
(-.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (/.f64 1 z))
(-.f64 (neg.f64 (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z))) (/.f64 1 z))
(fma.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z))
(-.f64 (/.f64 -1 z) (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)))
(+.f64 (/.f64 (-.f64 -1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (pow.f64 z 3)))) (/.f64 1 z))
(-.f64 (*.f64 -1 (+.f64 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 2) (pow.f64 z 3)) (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z)))) (/.f64 1 z))
(fma.f64 -1 (+.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 3))) (/.f64 -1 z))
(+.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (-.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) z))) (/.f64 -1 z))
(+.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (+.f64 -1 (/.f64 (-.f64 -1 (log.f64 z)) z))) (/.f64 -1 z))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) (pow.f64 z 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2) (pow.f64 z 3))) (*.f64 -1 (/.f64 (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3) (pow.f64 z 4))))) (/.f64 1 z))
(-.f64 (fma.f64 -1 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 3) (pow.f64 z 4)) (*.f64 -1 (+.f64 (/.f64 (pow.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) 2) (pow.f64 z 3)) (/.f64 (fma.f64 -1 (neg.f64 (log.f64 z)) 1) (*.f64 z z))))) (/.f64 1 z))
(+.f64 (-.f64 (-.f64 (neg.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z))) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 3))) (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 z 4))) (/.f64 -1 z))
(-.f64 (*.f64 (/.f64 (+.f64 1 (log.f64 z)) (*.f64 z z)) (-.f64 -1 (/.f64 (+.f64 1 (log.f64 z)) z))) (+.f64 (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 z 4)) (/.f64 1 z)))
(*.f64 (+.f64 (/.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) 1) (+.f64 (/.f64 (-.f64 -1 (log.f64 z)) (*.f64 z z)) (/.f64 -1 z)))
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)
(pow.f64 (+.f64 1 (log.f64 z)) 2)
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 1 (-.f64 (log.f64 z) z))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) z)))
(/.f64 (*.f64 y (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 z 2))) (+.f64 1 (+.f64 (log.f64 z) z)))
(/.f64 y (/.f64 (+.f64 1 (+.f64 z (log.f64 z))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z))))
(*.f64 (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))) (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)))
(*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 y (+.f64 1 (+.f64 z (log.f64 z)))))
(*.f64 (/.f64 y 1) (+.f64 1 (-.f64 (log.f64 z) 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 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.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)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.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)))))))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) 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))
(fma.f64 (+.f64 1 (log.f64 z)) y (neg.f64 (*.f64 z y)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))

localize6.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

localize19.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 33 to 19 computations (42.4% saved)

series3.0ms (0%)

Counts
1 → 8
Calls

6 calls:

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

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
672×pow1_binary64
621×add-log-exp_binary64
621×log1p-expm1-u_binary64
621×expm1-log1p-u_binary64
609×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11389
216999
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.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 (*.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)))))))

simplify154.0ms (1.8%)

Algorithm
egg-herbie
Rules
3262×fma-neg_binary64
693×fma-def_binary64
589×unsub-neg_binary64
349×sub-neg_binary64
345×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017104
14572
210956
330756
461956
5140956
6451156
7567556
8621156
9643856
10650656
11651856
12653456
13653456
Stop Event
node limit
Counts
29 → 24
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))))))
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 y (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 y (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 y (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 y (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 y (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 y (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 y (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 y (log.f64 z)))
(fma.f64 y (log.f64 z) y)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)
0.2b
(+.f64 y (*.f64 (log.f64 z) y))
0.3b
(*.f64 (log.f64 z) y)
37.6b
(cbrt.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3))
Compiler

Compiled 53 to 21 computations (60.4% saved)

series13.0ms (0.2%)

Counts
4 → 96
Calls

24 calls:

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

rewrite79.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
877×pow1_binary64
823×add-log-exp_binary64
822×log1p-expm1-u_binary64
822×expm1-log1p-u_binary64
804×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify63.0ms (0.7%)

Algorithm
egg-herbie
Rules
662×unsub-neg_binary64
593×fma-def_binary64
355×distribute-rgt-neg-in_binary64
295×unswap-sqr_binary64
257×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
036936
1114840
2368720
31963720
44639720
Stop Event
node limit
Counts
228 → 103
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 (+.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 (*.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 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 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 (*.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 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
Outputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (log.f64 z) y)
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (log.f64 z) y)
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (log.f64 z) y)
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 (log.f64 z) y)
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (log.f64 z) y)
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (log.f64 z) y)
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (log.f64 z) y)
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 y (log.f64 z))
(*.f64 (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (*.f64 -1 (log.f64 z)) 1) 3)))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 3)
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(pow.f64 (fma.f64 (log.f64 z) y y) 3)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(+.f64 y (*.f64 (log.f64 z) y))
0.3b
(*.f64 (log.f64 z) y)
0.6b
(cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))
0.7b
(pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 3)
Compiler

Compiled 52 to 18 computations (65.4% saved)

series11.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

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

rewrite71.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
870×pow1_binary64
816×add-log-exp_binary64
815×log1p-expm1-u_binary64
815×expm1-log1p-u_binary64
797×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify99.0ms (1.1%)

Algorithm
egg-herbie
Rules
554×fma-neg_binary64
493×unsub-neg_binary64
474×sub-neg_binary64
364×unswap-sqr_binary64
314×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
028228
190192
2203192
3440192
4829192
51866192
64633192
76401192
87302192
97933192
Stop Event
node limit
Counts
92 → 75
Calls
Call 1
Inputs
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
Outputs
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 y (log.f64 z)) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(*.f64 (pow.f64 1 1/3) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1 (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) y)
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))
(pow.f64 (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) 1/3)
(cbrt.f64 (fma.f64 y (log.f64 z) y))

eval162.0ms (1.9%)

Compiler

Compiled 10294 to 5802 computations (43.6% saved)

prune74.0ms (0.9%)

Pruning

21 alts after pruning (11 fresh and 10 done)

PrunedKeptTotal
New4157422
Fresh347
Picked011
Done1910
Total41921440
Error
0b
Counts
440 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
24.0b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (log.f64 z) 1) (cbrt.f64 (*.f64 y y))) (cbrt.f64 y)))
12.9b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 3))
40.4b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (log.f64 z) 1) (sqrt.f64 y)) (sqrt.f64 y)))
18.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 -1 z))))
24.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (log.f64 (*.f64 z (exp.f64 (-.f64 1 z))))))
12.6b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
29.6b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)))
10.7b
(+.f64 (*.f64 x 1/2) (/.f64 y (/.f64 (+.f64 z (+.f64 (log.f64 z) 1)) (-.f64 (pow.f64 (+.f64 (log.f64 z) 1) 2) (*.f64 z z)))))
12.7b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y))
12.9b
(+.f64 (*.f64 x 1/2) (*.f64 y (pow.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) 3)))
12.9b
(+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y)))))
30.9b
(+.f64 (*.f64 x 1/2) y)
18.0b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
35.6b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2))
13.0b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (log.f64 z))))
12.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3))))
12.7b
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 1 (+.f64 1 (log.f64 z))))))
18.8b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
27.6b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)))
Compiler

Compiled 338 to 248 computations (26.6% saved)

regimes213.0ms (2.5%)

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

9 calls:

24.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
23.0ms
(*.f64 x 1/2)
22.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
21.0ms
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
21.0ms
x
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 770 to 469 computations (39.1% saved)

regimes86.0ms (1%)

Counts
9 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 x 1/2) y)
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 -1 z))))
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) 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))
Outputs
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
Calls

4 calls:

25.0ms
(*.f64 x 1/2)
25.0ms
x
21.0ms
y
11.0ms
z
Results
ErrorSegmentsBranch
8.8b5x
6.8b3y
0.5b2z
8.8b5(*.f64 x 1/2)
Compiler

Compiled 109 to 69 computations (36.7% saved)

bsearch26.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
4.2696806144463906e-5
0.012478125072847764
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes149.0ms (1.7%)

Counts
8 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 x 1/2) y)
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
(+.f64 (*.f64 x 1/2) (*.f64 y (/.f64 1 (/.f64 -1 z))))
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (*.f64 z z)) y) (+.f64 z 1)))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) 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 y (-.f64 1 z)))
Calls

4 calls:

65.0ms
x
41.0ms
y
23.0ms
(*.f64 x 1/2)
17.0ms
z
Results
ErrorSegmentsBranch
8.8b5x
6.8b3y
0.5b2z
8.8b5(*.f64 x 1/2)
Compiler

Compiled 99 to 63 computations (36.4% saved)

bsearch62.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
62.0ms
4.2696806144463906e-5
0.012478125072847764
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes42.0ms (0.5%)

Accuracy

Total -17.8b remaining (-98.6%)

Threshold costs -17.8b (-98.6%)

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

4 calls:

10.0ms
z
9.0ms
(*.f64 x 1/2)
9.0ms
x
9.0ms
y
Results
ErrorSegmentsBranch
18.0b1x
18.0b1y
18.0b1z
18.0b1(*.f64 x 1/2)
Compiler

Compiled 69 to 49 computations (29% saved)

simplify16.0ms (0.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
030105
155103
267103
373103
475103
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 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 x 1/2) y)
Outputs
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 (+.f64 (log.f64 z) 1) z)))
(if (<=.f64 z 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (log.f64 z) 1))) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (log.f64 z) y) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6300936445693721/147573952589676412928) (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 y (log.f64 z)))) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
(-.f64 (*.f64 x 1/2) (*.f64 y z))
(+.f64 (*.f64 x 1/2) y)
Compiler

Compiled 85 to 61 computations (28.2% saved)

soundness0.0ms (0%)

end140.0ms (1.6%)

Compiler

Compiled 73 to 47 computations (35.6% saved)

Profiling

Loading profile data...