Details

Time bar (total: 12.4s)

analyze224.0ms (1.8%)

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.2s (10%)

Results
1.1s8256×body256valid
90.0ms659×body256infinite
18.0ms157×body256invalid
Bogosity

preprocess261.0ms (2.1%)

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)

simplify333.0ms (2.7%)

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

Useful iterations: 4 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 25 to 15 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.1b
Counts
3 → 1
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))))
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize18.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
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)

series146.0ms (1.2%)

Counts
3 → 72
Calls

18 calls:

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

rewrite101.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
670×fma-def_binary64
639×log-prod_binary64
358×pow2_binary64
313×fma-neg_binary64
245×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify106.0ms (0.9%)

Algorithm
egg-herbie
Rules
637×sub-neg_binary64
623×unsub-neg_binary64
617×fma-def_binary64
462×fma-neg_binary64
343×associate--r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
040871
1115871
2305867
3881765
42446765
55233765
67124765
Stop Event
node limit
Counts
260 → 212
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))))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.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 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.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 (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 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 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y 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 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 1 (log.f64 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 z))) 1))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(+.f64 (*.f64 -1 z) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 (log.f64 z) (-.f64 1 z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (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/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))

eval109.0ms (0.9%)

Compiler

Compiled 4005 to 2428 computations (39.4% saved)

prune54.0ms (0.4%)

Pruning

17 alts after pruning (16 fresh and 1 done)

PrunedKeptTotal
New19616212
Fresh000
Picked011
Done000
Total19617213
Error
0b
Counts
213 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
30.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z))))
31.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2))
0.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 3))
19.6b
(+.f64 (*.f64 x 1/2) (*.f64 y (neg.f64 z)))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
0.1b
(fma.f64 (+.f64 (-.f64 1 z) (log.f64 z)) y (*.f64 x 1/2))
12.4b
(+.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)))))
34.2b
(*.f64 1/2 x)
15.1b
(+.f64 (*.f64 x 1/2) (*.f64 (+.f64 1 (log.f64 z)) y))
0.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (*.f64 (cbrt.f64 (log.f64 z)) y) (*.f64 y (-.f64 1 z))))
0.7b
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 (-.f64 1 z) (log.f64 z))) (*.f64 x 1/2))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (-.f64 1 z)) (*.f64 y (log.f64 z))))
32.6b
(+.f64 (*.f64 x 1/2) (fma.f64 (*.f64 (log.f64 z) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 y (-.f64 1 z))))
16.7b
(+.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))))
32.7b
(fma.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
26.7b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Compiler

Compiled 611 to 435 computations (28.8% saved)

localize25.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 60 to 32 computations (46.7% saved)

series33.0ms (0.3%)

Counts
3 → 65
Calls

21 calls:

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

rewrite129.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
725×log-prod_binary64
406×fma-neg_binary64
267×pow1/3_binary64
263×expm1-udef_binary64
263×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01545
132039
2444239
Stop Event
node limit
Counts
3 → 141
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 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 y (*.f64 (log.f64 z) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (*.f64 y (log.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.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 y (log.f64 z)) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 z (E.f64)) y)) (cbrt.f64 (pow.f64 (*.f64 z (E.f64)) y)))) (log.f64 (cbrt.f64 (pow.f64 (*.f64 z (E.f64)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (*.f64 z (E.f64)) y))) (log.f64 (sqrt.f64 (pow.f64 (*.f64 z (E.f64)) y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.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 (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 pow.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3) 1/3)))) (#(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 log.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)))))) (#(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 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 (log.f64 z)) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (log1p.f64 (log.f64 z)) (log.f64 y)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 (log.f64 z) y)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 z y) 2) (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))) (/.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2) (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (pow.f64 (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 2) (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (sqrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2)) (/.f64 1 (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y))) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)) (+.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)) (+.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2) (-.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2)) (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2))) (neg.f64 (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2) (pow.f64 (*.f64 z y) 2)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 z y) 2) (*.f64 (+.f64 y (*.f64 (log.f64 z) y)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (+.f64 (pow.f64 (*.f64 z y) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y))) (-.f64 (pow.f64 (*.f64 z y) 2) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (*.f64 z (E.f64)) y) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (*.f64 z (E.f64)) y) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (pow.f64 (exp.f64 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (*.f64 z (E.f64)) y) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (+.f64 1 (expm1.f64 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (pow.f64 (*.f64 z (E.f64)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) z) (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 z y))) (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y (*.f64 (log.f64 z) y)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y (*.f64 (log.f64 z) y)) 1 (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 z y) (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 z y) -1 (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 1 (log.f64 z))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2)) (*.f64 (cbrt.f64 (+.f64 1 (log.f64 z))) y) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 z y)) 2) (cbrt.f64 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) 2) (cbrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (sqrt.f64 (log.f64 z))) (*.f64 (hypot.f64 1 (sqrt.f64 (log.f64 z))) y) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 z y)) (sqrt.f64 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) (sqrt.f64 (+.f64 y (*.f64 (log.f64 z) y))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 y) z (+.f64 y (*.f64 (log.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2))) (cbrt.f64 (+.f64 1 (log.f64 z))) (*.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (hypot.f64 1 (sqrt.f64 (log.f64 z)))) (hypot.f64 1 (sqrt.f64 (log.f64 z))) (*.f64 z y))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (*.f64 x x) 1/4) (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))) (/.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2) (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (pow.f64 (cbrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 2) (cbrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (sqrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3)) (/.f64 1 (+.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (*.f64 x x) 1/4) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2)) (/.f64 1 (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2)))) (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y))) (-.f64 (*.f64 (*.f64 x x) 1/4) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3)) (+.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3)) (+.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2) (-.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) 1/4) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2)) (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3))) (neg.f64 (+.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (*.f64 x x) 1/4) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2))) (neg.f64 (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 x 1/2 (*.f64 z y)) 3) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 3)) (+.f64 (*.f64 (fma.f64 x 1/2 (*.f64 z y)) (fma.f64 x 1/2 (*.f64 z y))) (-.f64 (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2) (*.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2) (*.f64 (*.f64 x x) 1/4)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (fma.f64 x 1/2 (*.f64 z y)) (fma.f64 x 1/2 (*.f64 z y))) (pow.f64 (+.f64 y (*.f64 (log.f64 z) y)) 2)) (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (*.f64 (*.f64 x x) 1/4) (*.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (-.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2)))) (+.f64 (*.f64 (pow.f64 x 3) 1/8) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (fma.f64 x 1/2 (*.f64 z y)) (+.f64 y (*.f64 (log.f64 z) y))) (-.f64 (*.f64 (*.f64 x x) 1/4) (pow.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (*.f64 z (E.f64)) y) (exp.f64 (fma.f64 x 1/2 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (exp.f64 (fma.f64 x 1/2 (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (*.f64 z (E.f64)) y) (*.f64 (pow.f64 (exp.f64 x) 1/2) (pow.f64 (exp.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1)) (*.f64 (pow.f64 (exp.f64 x) 1/2) (pow.f64 (exp.f64 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (pow.f64 (exp.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (+.f64 1 (expm1.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) (+.f64 1 (expm1.f64 (*.f64 x 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x 1/2))) (exp.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) 1/2) (+.f64 1 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x 1/2))) (+.f64 1 (expm1.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 x) 1/2) (pow.f64 (exp.f64 y) z)) (pow.f64 (*.f64 z (E.f64)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x 1/2 (*.f64 z y))) (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 x) 1/2) (pow.f64 (exp.f64 y) z)) (+.f64 1 (-.f64 (pow.f64 (*.f64 z (E.f64)) y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x 1/2) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1/2 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 x (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 x x) 1/4)) (cbrt.f64 (*.f64 x 1/2)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) 2) (cbrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 1/2)) (sqrt.f64 (*.f64 x 1/2)) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (sqrt.f64 (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y))) (*.f64 x 1/2))))))

simplify127.0ms (1%)

Algorithm
egg-herbie
Rules
741×fma-def_binary64
639×unsub-neg_binary64
584×sub-neg_binary64
540×fma-neg_binary64
366×distribute-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041979
1129814
2351794
3995698
42668698
55163698
66794698
77679698
Stop Event
node limit
Counts
206 → 162
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 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 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y 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 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 y (+.f64 1 (log.f64 z)))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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 (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 (*.f64 -1 z) (+.f64 1 (log.f64 z)))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z))))))
(*.f64 y (fma.f64 -1 z (+.f64 1 (log.f64 z))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (+.f64 z (*.f64 -1 (+.f64 1 (log.f64 z)))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (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/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 y z) (*.f64 y (+.f64 1 (log.f64 z)))))
(fma.f64 y (-.f64 (+.f64 1 (log.f64 z)) z) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))

localize4.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 19 computations (42.4% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite74.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
990×prod-diff_binary64
512×log-prod_binary64
332×fma-def_binary64
305×pow2_binary64
209×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify285.0ms (2.3%)

Algorithm
egg-herbie
Rules
687×unsub-neg_binary64
577×sub-neg_binary64
551×fma-def_binary64
531×distribute-rgt-in_binary64
401×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035613
196505
2252503
3765443
42121443
54476443
66166443
77113443
87469443
97593443
107620443
117626443
127632443
137632443
147632443
157659443
167659443
Stop Event
node limit
Counts
65 → 41
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
Outputs
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (+.f64 y (*.f64 (log.f64 z) y)))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (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)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (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)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (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)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))

localize38.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 48 to 25 computations (47.9% saved)

series12.0ms (0.1%)

Counts
2 → 37
Calls

15 calls:

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

rewrite79.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
616×log-prod_binary64
430×pow-prod-down_binary64
354×fma-def_binary64
349×pow2_binary64
241×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify76.0ms (0.6%)

Algorithm
egg-herbie
Rules
839×fma-def_binary64
607×sub-neg_binary64
558×fma-neg_binary64
480×unsub-neg_binary64
317×associate--r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
044616
1129535
2366488
31112450
43030450
56219450
Stop Event
node limit
Counts
96 → 79
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(*.f64 -1 (*.f64 (sqrt.f64 y) z))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(*.f64 -1 (*.f64 (sqrt.f64 y) z))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(+.f64 (*.f64 1/2 x) (+.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/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(*.f64 1/2 x)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y))
(fma.f64 (log.f64 z) (sqrt.f64 y) (sqrt.f64 y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 (sqrt.f64 y) z))
(neg.f64 (*.f64 z (sqrt.f64 y)))
(*.f64 z (neg.f64 (sqrt.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 (sqrt.f64 y) z))
(neg.f64 (*.f64 z (sqrt.f64 y)))
(*.f64 z (neg.f64 (sqrt.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 y) z)) (*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 -1 (*.f64 z (sqrt.f64 y)) (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)))
(-.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (*.f64 z (sqrt.f64 y)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (-.f64 z 1)))
(*.f64 (sqrt.f64 y) (-.f64 (log.f64 z) (+.f64 z -1)))
(*.f64 (sqrt.f64 y) (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
(*.f64 y (-.f64 (log.f64 z) (-.f64 z 1)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))

localize55.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 66 to 26 computations (60.6% saved)

series37.0ms (0.3%)

Counts
4 → 43
Calls

24 calls:

TimeVariablePointExpression
22.0ms
y
@-inf
(*.f64 y (log.f64 z))
3.0ms
y
@-inf
(fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z)))
1.0ms
y
@0
(fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z)))
1.0ms
z
@-inf
(fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z)))
1.0ms
z
@inf
(fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) (*.f64 y (-.f64 1 z)))

rewrite76.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
968×pow1_binary64
893×add-log-exp_binary64
893×log1p-expm1-u_binary64
893×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify69.0ms (0.6%)

Algorithm
egg-herbie
Rules
686×fma-neg_binary64
407×distribute-lft-neg-out_binary64
395×sub-neg_binary64
355×distribute-rgt-in_binary64
329×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036454
190437
2208396
3611346
41970346
56428346
Stop Event
node limit
Counts
123 → 100
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(*.f64 y (-.f64 1 z))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(*.f64 -1 (*.f64 y z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(+.f64 y (*.f64 -1 (*.f64 y z)))
Outputs
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(neg.f64 (*.f64 y (neg.f64 (log.f64 z))))
(*.f64 (neg.f64 (log.f64 z)) (neg.f64 y))
(*.f64 y (log.f64 z))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 y (log.f64 (/.f64 1 z))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(fma.f64 y (log.f64 z) (-.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 (log.f64 z) (neg.f64 y))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 (log.f64 z) (neg.f64 y))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 (log.f64 z) (neg.f64 y))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 y (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 -1) (sqrt.f64 (*.f64 (log.f64 z) (neg.f64 y))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))))
(sqrt.f64 (*.f64 y (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))))
(sqrt.f64 (*.f64 y (log.f64 z)))
y
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y z)) y)
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)
(+.f64 y (*.f64 -1 (*.f64 y z)))
(*.f64 y (-.f64 1 z))
(-.f64 y (*.f64 y z))
(fma.f64 y (neg.f64 z) y)

eval292.0ms (2.4%)

Compiler

Compiled 11036 to 5712 computations (48.2% saved)

prune202.0ms (1.6%)

Pruning

21 alts after pruning (18 fresh and 3 done)

PrunedKeptTotal
New53413547
Fresh6511
Picked101
Done235
Total54321564
Error
0b
Counts
564 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
20.3b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
40.5b
(fma.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
31.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))) 2))
0.4b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (/.f64 (*.f64 (-.f64 1 (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (log.f64 z)))))
0.7b
(+.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 (log.f64 z) y)) (*.f64 z y)))
15.1b
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 x 1/2))
0.4b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (/.f64 (*.f64 (+.f64 1 (pow.f64 (log.f64 z) 3)) y) (+.f64 1 (-.f64 (pow.f64 (log.f64 z) 2) (log.f64 z))))))
0.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
29.2b
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
15.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))
34.2b
(*.f64 1/2 x)
0.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (cbrt.f64 (pow.f64 (log.f64 z) 2)) (*.f64 (cbrt.f64 (log.f64 z)) y) (*.f64 y (-.f64 1 z))))
0.7b
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 (-.f64 1 z) (log.f64 z))) (*.f64 x 1/2))
38.2b
(+.f64 (*.f64 x 1/2) (fma.f64 (sqrt.f64 (*.f64 y (log.f64 z))) (sqrt.f64 (*.f64 y (log.f64 z))) y))
29.2b
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
19.6b
(+.f64 (*.f64 x 1/2) (*.f64 y (neg.f64 z)))
47.7b
(*.f64 z (neg.f64 y))
26.7b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
15.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Compiler

Compiled 646 to 460 computations (28.8% saved)

localize33.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 49 to 14 computations (71.4% saved)

series70.0ms (0.6%)

Counts
4 → 108
Calls

27 calls:

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

rewrite153.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
729×log-prod_binary64
491×fma-neg_binary64
257×expm1-udef_binary64
257×log1p-udef_binary64
241×pow3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify308.0ms (2.5%)

Algorithm
egg-herbie
Rules
987×unsub-neg_binary64
715×fma-def_binary64
418×distribute-neg-in_binary64
413×sub-neg_binary64
342×+-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0551163
11731086
24431086
31186984
43114984
55219984
66625984
77333984
87674984
97800984
107830984
117830984
127901984
137932984
147935984
157935984
Stop Event
node limit
Counts
325 → 244
Calls
Call 1
Inputs
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 -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 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 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 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)))))))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(*.f64 1/2 x)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(*.f64 1/2 x)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
Outputs
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 y (log.f64 z))
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.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 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 y (+.f64 (log.f64 z) 1))
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 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)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x 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 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(-.f64 (fma.f64 y (log.f64 z) (fma.f64 1/2 x y)) (*.f64 y z))
(fma.f64 y (+.f64 (log.f64 z) (-.f64 1 z)) (*.f64 1/2 x))
(fma.f64 y (-.f64 (log.f64 z) z) (fma.f64 1/2 x y))

localize6.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 32 to 12 computations (62.5% saved)

series5.0ms (0%)

Counts
2 → 56
Calls

15 calls:

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

rewrite81.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
563×fma-def_binary64
535×log-prod_binary64
392×pow-prod-down_binary64
302×fma-neg_binary64
294×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify271.0ms (2.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
035549
192503
2216503
3446503
41004503
52812503
64111503
75214503
85857503
96145503
106276503
116375503
126383503
136384503
146384503
156473503
166522503
176542503
186542503
Stop Event
node limit
Counts
207 → 163
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 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) y)
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 y (log.f64 z)) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
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 -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 (*.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)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x 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 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))

localize31.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 67 to 41 computations (38.8% saved)

series31.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite86.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
400×pow-prod-down_binary64
365×fma-def_binary64
282×pow2_binary64
208×pow-to-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify69.0ms (0.6%)

Algorithm
egg-herbie
Rules
804×fma-def_binary64
792×fma-neg_binary64
606×distribute-rgt-in_binary64
601×distribute-lft-in_binary64
274×unsub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941157
13191111
214641050
366901042
Stop Event
node limit
Counts
159 → 146
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 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(*.f64 (+.f64 1 (log.f64 z)) 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 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)) (*.f64 2 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)))) (pow.f64 z 2)) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)) (*.f64 2 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)))) (pow.f64 z 2)) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3)))))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)) (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) (*.f64 -2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)))) z)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) (*.f64 -2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)))) z) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)))))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)) (*.f64 2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)))) z)) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)) (*.f64 2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)))) z)) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2)))))
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 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(*.f64 y (-.f64 (+.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 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (neg.f64 (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (-.f64 (log.f64 z) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (neg.f64 (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (-.f64 (log.f64 z) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (neg.f64 (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (-.f64 (log.f64 z) z))))
(*.f64 -1 (*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 (+.f64 1 (log.f64 z)) z))))
(neg.f64 (*.f64 y (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1))))
(*.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 z) z)) (cbrt.f64 -1)) (neg.f64 y))
(*.f64 y (*.f64 (+.f64 (log.f64 z) (-.f64 1 z)) (neg.f64 (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (-.f64 (log.f64 z) z))))
(*.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 (log.f64 z) (-.f64 1 z)))
(+.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 (log.f64 z) (-.f64 1 z)))
(+.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 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.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 (log.f64 z) (-.f64 1 z)))
(+.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 (log.f64 z) (-.f64 1 z)))
(+.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 (log.f64 z) (-.f64 1 z)))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.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 y z) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 y (neg.f64 z)))
(*.f64 y (-.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) z))
(+.f64 y (*.f64 y (-.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 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 y z) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 y (neg.f64 z)))
(*.f64 y (-.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) z))
(+.f64 y (*.f64 y (-.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 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 y z) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 y (neg.f64 z)))
(*.f64 y (-.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) z))
(+.f64 y (*.f64 y (-.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z))) z)))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (+.f64 1 (log.f64 z)) z) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 z) z)) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 (log.f64 z) (-.f64 1 z)) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3)))
(fma.f64 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) -3) z (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3)))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3)))
(*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)) (*.f64 2 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)))) (pow.f64 z 2)) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))))
(fma.f64 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) -3) z (fma.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3))))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (fma.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z))))
(fma.f64 z (*.f64 z (*.f64 (+.f64 1 (log.f64 z)) (*.f64 3 (pow.f64 y 3)))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(+.f64 (*.f64 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3))) (*.f64 -1 (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (pow.f64 y 3)))) z) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)) (*.f64 2 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3)))) (pow.f64 z 2)) (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3)))))
(fma.f64 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) -3) z (fma.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z) (fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3)))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (fma.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z)))) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3)))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(neg.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(*.f64 (pow.f64 y 3) (neg.f64 (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)))
(fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (*.f64 z z) (*.f64 3 (*.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) (pow.f64 y 3)))))
(-.f64 (*.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z)) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)) (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) (*.f64 -2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)))) z)))
(fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (fma.f64 (*.f64 3 (*.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) (pow.f64 y 3))) (*.f64 z z) (*.f64 z (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))) 2)) -3))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (*.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z))) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (*.f64 (pow.f64 y 3) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))) (pow.f64 z 2)) (+.f64 (*.f64 (+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2))) (*.f64 -2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 2)))) z) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3)))))
(fma.f64 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) -3) z (fma.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z) (fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3)))))
(-.f64 (fma.f64 z (*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 (pow.f64 y 3) -3)) (fma.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 3) (*.f64 (*.f64 3 (*.f64 (+.f64 1 (log.f64 z)) (pow.f64 y 3))) (*.f64 z z)))) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3)))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (log.f64 z)) 2)) (+.f64 (+.f64 1 (log.f64 z)) (*.f64 z -3))))
(*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(neg.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(*.f64 (pow.f64 y 3) (neg.f64 (pow.f64 z 3)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2)))
(fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (*.f64 (*.f64 z z) (*.f64 3 (*.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) (pow.f64 y 3)))))
(fma.f64 (*.f64 z z) (*.f64 3 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (pow.f64 y 3))) (*.f64 (pow.f64 y 3) (neg.f64 (pow.f64 z 3))))
(*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3))))
(*.f64 (*.f64 z z) (fma.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3)) (neg.f64 (*.f64 z (pow.f64 y 3)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)) (*.f64 2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)))) z)) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2))))
(fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (fma.f64 -1 (*.f64 z (*.f64 3 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) 2)))) (*.f64 (*.f64 z z) (*.f64 3 (*.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) (pow.f64 y 3))))))
(-.f64 (fma.f64 (*.f64 -3 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2))) z (*.f64 z (*.f64 z (*.f64 3 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (pow.f64 y 3)))))) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(fma.f64 z (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2)) -3) (*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3)))))
(fma.f64 (*.f64 z z) (fma.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3)) (neg.f64 (*.f64 z (pow.f64 y 3)))) (*.f64 -3 (*.f64 z (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3))) (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)) (*.f64 2 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 2)))) z)) (*.f64 (+.f64 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))) (*.f64 2 (*.f64 (pow.f64 y 3) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))) (pow.f64 z 2)))))
(fma.f64 -1 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (fma.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) 3) (fma.f64 -1 (*.f64 z (*.f64 3 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) 2)))) (*.f64 (*.f64 z z) (*.f64 3 (*.f64 (+.f64 1 (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 z))))) (pow.f64 y 3)))))))
(-.f64 (fma.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 3) (fma.f64 (*.f64 -3 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2))) z (*.f64 z (*.f64 z (*.f64 3 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (pow.f64 y 3))))))) (*.f64 (pow.f64 y 3) (pow.f64 z 3)))
(+.f64 (*.f64 (*.f64 z z) (-.f64 (*.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3))) (*.f64 z (pow.f64 y 3)))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2)) (-.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 z 3))))
(+.f64 (*.f64 (*.f64 z z) (fma.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 3 (pow.f64 y 3)) (neg.f64 (*.f64 z (pow.f64 y 3))))) (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) 2)) (-.f64 (+.f64 1 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 z)))) (*.f64 z 3))))

localize26.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x 1/2))
0.2b
(*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y))
Compiler

Compiled 39 to 20 computations (48.7% saved)

series10.0ms (0.1%)

Counts
2 → 33
Calls

15 calls:

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

rewrite189.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
521×log-prod_binary64
399×exp-prod_binary64
341×pow-prod-down_binary64
293×pow2_binary64
225×prod-diff_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify377.0ms (3%)

Algorithm
egg-herbie
Rules
5254×fma-neg_binary64
951×unsub-neg_binary64
585×fma-def_binary64
420×sub-neg_binary64
356×distribute-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
029414
177382
2199338
3574338
41194338
52509338
64831338
76035338
86892338
97434338
107639338
117680338
127686338
137686338
147809338
157845338
167845338
177872338
187872338
197872338
Stop Event
node limit
Counts
113 → 89
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1/2 x)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
Outputs
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(*.f64 (sqrt.f64 y) (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (sqrt.f64 y) (+.f64 1 (neg.f64 (neg.f64 (log.f64 z)))))
(*.f64 (sqrt.f64 y) (+.f64 1 (log.f64 z)))
(fma.f64 (sqrt.f64 y) (log.f64 z) (sqrt.f64 y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(*.f64 (+.f64 1 (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/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 y (+.f64 1 (log.f64 z))))
(fma.f64 y (+.f64 1 (log.f64 z)) (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 y (log.f64 z) y))
(fma.f64 y (log.f64 z) (fma.f64 1/2 x y))

eval1.1s (8.6%)

Compiler

Compiled 15341 to 8020 computations (47.7% saved)

prune358.0ms (2.9%)

Pruning

24 alts after pruning (19 fresh and 5 done)

PrunedKeptTotal
New77214786
Fresh8513
Picked101
Done257
Total78324807
Error
0b
Counts
807 → 24
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(+.f64 (*.f64 x 1/2) (+.f64 (cbrt.f64 (pow.f64 (*.f64 y (log.f64 z)) 3)) y))
0.4b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (/.f64 (*.f64 (+.f64 1 (pow.f64 (log.f64 z) 3)) y) (+.f64 1 (-.f64 (pow.f64 (log.f64 z) 2) (log.f64 z))))))
30.5b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 (+.f64 1 (log.f64 z)) y) 3)))
0.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (cbrt.f64 (+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))) 3))
15.1b
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
15.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))
34.2b
(*.f64 1/2 x)
43.9b
(+.f64 (*.f64 y (log.f64 z)) y)
29.2b
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
32.7b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 (-.f64 1 z) (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y)))
38.2b
(+.f64 (*.f64 x 1/2) (+.f64 (pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2) y))
26.7b
(+.f64 (*.f64 x 1/2) (cbrt.f64 (pow.f64 (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))) 3)))
15.4b
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 z)) 2) (*.f64 (cbrt.f64 (log.f64 z)) y) (+.f64 y (*.f64 x 1/2)))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.4b
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 (*.f64 (+.f64 (log.f64 z) 1) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y)) (*.f64 z y)))
19.6b
(+.f64 (*.f64 x 1/2) (*.f64 z (neg.f64 y)))
20.3b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
0.4b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (/.f64 (*.f64 (-.f64 1 (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (log.f64 z)))))
29.2b
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
31.7b
(+.f64 (*.f64 x 1/2) (pow.f64 (sqrt.f64 (+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))) 2))
43.9b
(*.f64 (+.f64 1 (log.f64 z)) y)
47.7b
(*.f64 z (neg.f64 y))
0.1b
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
15.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
Compiler

Compiled 685 to 488 computations (28.8% saved)

localize21.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 48 to 21 computations (56.3% saved)

series6.0ms (0%)

Counts
2 → 50
Calls

18 calls:

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

rewrite94.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
709×log-prod_binary64
469×fma-neg_binary64
256×pow1/3_binary64
255×expm1-udef_binary64
255×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify132.0ms (1.1%)

Algorithm
egg-herbie
Rules
995×unsub-neg_binary64
706×fma-def_binary64
438×sub-neg_binary64
309×distribute-neg-in_binary64
287×distribute-neg-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
055621
1168579
2452579
31198537
43167537
55319537
66730537
77389537
87859537
Stop Event
node limit
Counts
181 → 154
Calls
Call 1
Inputs
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 y (log.f64 z)) y)
(*.f64 1/2 x)
(*.f64 1/2 x)
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
(*.f64 1/2 x)
(*.f64 1/2 x)
Outputs
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (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 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) 1))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (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 1/2 x)
(*.f64 1/2 x)
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (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)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1))))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (log.f64 z)) (+.f64 (*.f64 -1 z) 1)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1 (*.f64 y z)) y)))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 (*.f64 1/2 x) (+.f64 y (*.f64 -1 (*.f64 y z)))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 z y))
(*.f64 z (neg.f64 y))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(+.f64 (*.f64 1/2 x) (+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))))
(fma.f64 1/2 x (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)))
(fma.f64 y (+.f64 1 (-.f64 (log.f64 z) z)) (*.f64 1/2 x))
(+.f64 (fma.f64 1/2 x y) (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 1/2 x (fma.f64 y (-.f64 (log.f64 z) z) y))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(*.f64 y (+.f64 1 (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 1/2 x)
(*.f64 1/2 x)

localize11.0ms (0.1%)

Compiler

Compiled 24 to 11 computations (54.2% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 26 to 14 computations (46.2% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

9 calls:

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

rewrite126.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
968×pow1_binary64
901×log1p-expm1-u_binary64
901×expm1-log1p-u_binary64
900×add-log-exp_binary64
89×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify162.0ms (1.3%)

Algorithm
egg-herbie
Rules
2588×fma-neg_binary64
808×fma-def_binary64
607×unsub-neg_binary64
388×sub-neg_binary64
255×associate--r+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030267
185249
2218220
3649202
41678202
54534202
66181202
76901202
87001202
97034202
107040202
117048202
127048202
Stop Event
node limit
Counts
89 → 80
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 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 (+.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))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 z)) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 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))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 z y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 z y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(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)))
(fma.f64 -1 (*.f64 z y) (*.f64 (+.f64 1 (log.f64 z)) y))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 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))
(-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 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 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 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 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 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 z y))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.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 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.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 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.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 1 (-.f64 (log.f64 z) 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))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.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 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (+.f64 z -1))
(+.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 1 (-.f64 (log.f64 z) 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))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 1 (-.f64 (log.f64 z) 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))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 1 (-.f64 (log.f64 z) 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))))))
(fma.f64 -1 z (+.f64 1 (log.f64 z)))
(-.f64 (+.f64 1 (log.f64 z)) z)
(+.f64 1 (-.f64 (log.f64 z) z))
(-.f64 (log.f64 z) (+.f64 z -1))

localize29.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 54 to 34 computations (37% saved)

series157.0ms (1.3%)

Counts
3 → 84
Calls

21 calls:

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

rewrite87.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
599×log-prod_binary64
438×fma-def_binary64
419×pow-prod-down_binary64
334×pow2_binary64
229×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify70.0ms (0.6%)

Algorithm
egg-herbie
Rules
758×fma-def_binary64
589×unsub-neg_binary64
356×associate-+l+_binary64
348×associate-+r+_binary64
244×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0391061
11101061
2420947
31880947
45150947
Stop Event
node limit
Counts
234 → 163
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.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 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.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 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))) 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.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))
(*.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 (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 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
Outputs
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(*.f64 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(*.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 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 (+.f64 1 (log.f64 z)) (neg.f64 (*.f64 y (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (log.f64 z))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 (+.f64 1 (log.f64 z)) (neg.f64 (*.f64 y (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (log.f64 z))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 (+.f64 1 (log.f64 z)) (neg.f64 (*.f64 y (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (log.f64 z))))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 (+.f64 1 (log.f64 z)) (neg.f64 (*.f64 y (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (log.f64 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 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z)))) 3))
(*.f64 (pow.f64 (+.f64 1 (log.f64 z)) 3) (pow.f64 y 3))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.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))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.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))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.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))
(*.f64 (pow.f64 y 3) (pow.f64 (+.f64 1 (+.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))
(*.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 (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 (+.f64 1 (log.f64 z)) y)
(+.f64 y (*.f64 (log.f64 z) y))
(fma.f64 (log.f64 z) y y)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 y (+.f64 1 (*.f64 -1 (log.f64 (/.f64 1 z))))) (*.f64 1/2 x))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x 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/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(+.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 1/2 x (*.f64 (+.f64 1 (log.f64 z)) y))
(fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 1/2 x))
(fma.f64 1/2 x (fma.f64 (log.f64 z) y y))
(fma.f64 (log.f64 z) y (fma.f64 1/2 x y))
(*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(*.f64 (+.f64 1 (log.f64 z)) (neg.f64 (*.f64 y (cbrt.f64 -1))))
(*.f64 y (*.f64 (cbrt.f64 -1) (-.f64 -1 (log.f64 z))))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(fma.f64 1/2 x (neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(-.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(-.f64 (*.f64 1/2 x) (*.f64 (fma.f64 (log.f64 z) y y) (cbrt.f64 -1)))
(fma.f64 (*.f64 y (cbrt.f64 -1)) (-.f64 -1 (log.f64 z)) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(fma.f64 1/2 x (neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(-.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(-.f64 (*.f64 1/2 x) (*.f64 (fma.f64 (log.f64 z) y y) (cbrt.f64 -1)))
(fma.f64 (*.f64 y (cbrt.f64 -1)) (-.f64 -1 (log.f64 z)) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(fma.f64 1/2 x (neg.f64 (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1)))))
(-.f64 (*.f64 1/2 x) (*.f64 (+.f64 1 (log.f64 z)) (*.f64 y (cbrt.f64 -1))))
(-.f64 (*.f64 1/2 x) (*.f64 (fma.f64 (log.f64 z) y y) (cbrt.f64 -1)))
(fma.f64 (*.f64 y (cbrt.f64 -1)) (-.f64 -1 (log.f64 z)) (*.f64 1/2 x))

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 66 to 19 computations (71.2% saved)

series25.0ms (0.2%)

Counts
4 → 44
Calls

24 calls:

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

rewrite137.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
469×log-prod_binary64
392×fma-def_binary64
337×pow-prod-down_binary64
332×exp-prod_binary64
260×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify93.0ms (0.8%)

Algorithm
egg-herbie
Rules
664×associate-/l*_binary64
415×fma-def_binary64
348×associate-*r*_binary64
323×associate-*l*_binary64
240×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
087677
1251629
2788602
33825550
Stop Event
node limit
Counts
262 → 179
Calls
Call 1
Inputs
(+.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)) (+.f64 y (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y))) (*.f64 1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y)))) (pow.f64 z 2)))))
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 y (+.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y))) (*.f64 1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y)))) (pow.f64 z 2)) (*.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 3) (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 2))) (*.f64 -1/8 (/.f64 (pow.f64 y 3) (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 2)))) (pow.f64 z 3))))))
(*.f64 y (log.f64 z))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z))))))
(+.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 (+.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)))))))
(sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y))))
(+.f64 (*.f64 -1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 5))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y)))))
Outputs
(+.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))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 y (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y))) (*.f64 1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y)))) (pow.f64 z 2)))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) (+.f64 y (+.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y))) (*.f64 1/4 (/.f64 (pow.f64 y 2) (+.f64 (*.f64 y (log.f64 z)) y)))) (pow.f64 z 2)) (*.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 3) (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 2))) (*.f64 -1/8 (/.f64 (pow.f64 y 3) (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 2)))) (pow.f64 z 3))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (log.f64 z))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.f64 (*.f64 y (log.f64 z)) (*.f64 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(*.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 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (*.f64 -1 (*.f64 y z)))
(fma.f64 y (log.f64 z) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.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) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.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) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(+.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) (neg.f64 (*.f64 y z)))
(-.f64 (*.f64 y (log.f64 z)) (*.f64 y z))
(*.f64 y (-.f64 (log.f64 z) z))
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 (-.f64 (log.f64 z) z)) 1)))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) y)
(fma.f64 y (log.f64 z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 -1 (*.f64 y z)) y))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 (*.f64 -1 (*.f64 y (log.f64 (/.f64 1 z)))) (+.f64 y (*.f64 -1 (*.f64 y z))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(*.f64 -1 (*.f64 y z))
(neg.f64 (*.f64 y z))
(*.f64 y (neg.f64 z))
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(+.f64 y (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 z)))))))
(fma.f64 y (log.f64 z) (fma.f64 -1 (*.f64 y z) y))
(*.f64 y (+.f64 (log.f64 z) (-.f64 1 z)))
(+.f64 y (*.f64 y (-.f64 (log.f64 z) z)))
(fma.f64 y (-.f64 (log.f64 z) z) y)
(sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y))
(sqrt.f64 (fma.f64 y (log.f64 z) y))
(+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y)))
(fma.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y)))) (sqrt.f64 (fma.f64 y (log.f64 z) y)))
(fma.f64 -1/2 (*.f64 z (*.f64 y (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))))) (sqrt.f64 (fma.f64 y (log.f64 z) y)))
(fma.f64 y (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))) (*.f64 z -1/2)) (sqrt.f64 (fma.f64 y (log.f64 z) y)))
(fma.f64 y (*.f64 -1/2 (*.f64 z (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))))) (sqrt.f64 (fma.f64 y (log.f64 z) y)))
(+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y))))
(fma.f64 -1/8 (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))))) (fma.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y)))) (sqrt.f64 (fma.f64 y (log.f64 z) y))))
(fma.f64 -1/8 (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))))) (fma.f64 -1/2 (*.f64 z (*.f64 y (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))))) (sqrt.f64 (fma.f64 y (log.f64 z) y))))
(fma.f64 y (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))) (*.f64 z -1/2)) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))) (*.f64 (*.f64 y z) (*.f64 (*.f64 y z) -1/8)) (sqrt.f64 (fma.f64 y (log.f64 z) y))))
(+.f64 (sqrt.f64 (fma.f64 y (log.f64 z) y)) (*.f64 (*.f64 y z) (+.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y)))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3)))) (*.f64 y z)))))
(+.f64 (*.f64 -1/16 (*.f64 (*.f64 (pow.f64 y 3) (pow.f64 z 3)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 5))))) (+.f64 (*.f64 -1/8 (*.f64 (*.f64 (pow.f64 y 2) (pow.f64 z 2)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 (*.f64 y (log.f64 z)) y) 3))))) (+.f64 (*.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (+.f64 (*.f64 y (log.f64 z)) y))))) (sqrt.f64 (+.f64 (*.f64 y (log.f64 z)) y)))))
(fma.f64 -1/16 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 5))))) (fma.f64 -1/8 (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))))) (fma.f64 -1/2 (*.f64 (*.f64 y z) (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y)))) (sqrt.f64 (fma.f64 y (log.f64 z) y)))))
(fma.f64 -1/16 (*.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 5))))) (fma.f64 -1/8 (*.f64 (*.f64 y y) (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))))) (fma.f64 -1/2 (*.f64 z (*.f64 y (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))))) (sqrt.f64 (fma.f64 y (log.f64 z) y)))))
(fma.f64 (*.f64 y y) (*.f64 -1/8 (*.f64 (*.f64 z z) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3))))) (fma.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 5))))) (fma.f64 y (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y))) (*.f64 z -1/2)) (sqrt.f64 (fma.f64 y (log.f64 z) y)))))
(+.f64 (sqrt.f64 (fma.f64 y (log.f64 z) y)) (fma.f64 (pow.f64 y 3) (*.f64 (pow.f64 z 3) (*.f64 -1/16 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 5))))) (*.f64 (*.f64 y z) (+.f64 (*.f64 -1/2 (sqrt.f64 (/.f64 1 (fma.f64 y (log.f64 z) y)))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 y (log.f64 z) y) 3)))) (*.f64 y z))))))

eval429.0ms (3.5%)

Compiler

Compiled 11347 to 5336 computations (53% saved)

prune253.0ms (2%)

Pruning

22 alts after pruning (17 fresh and 5 done)

PrunedKeptTotal
New61110621
Fresh7714
Picked101
Done459
Total62322645
Error
0b
Counts
645 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
29.7b
(pow.f64 (cbrt.f64 (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))) 3)
15.4b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (+.f64 1 (pow.f64 (log.f64 z) 3)) y) (fma.f64 (log.f64 z) (-.f64 (log.f64 z) 1) 1)))
43.9b
(*.f64 y (log.f64 (/.f64 (*.f64 z (E.f64)) (exp.f64 z))))
29.2b
(-.f64 (+.f64 (*.f64 y (log.f64 z)) y) (*.f64 y z))
15.1b
(+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y))
40.5b
(+.f64 (*.f64 x 1/2) (*.f64 (*.f64 (+.f64 1 (log.f64 z)) (sqrt.f64 y)) (sqrt.f64 y)))
43.9b
(+.f64 (*.f64 y (log.f64 z)) y)
15.3b
(+.f64 (*.f64 x 1/2) (fma.f64 (+.f64 1 (log.f64 z)) y (*.f64 z y)))
34.2b
(*.f64 1/2 x)
37.1b
(*.f64 y (*.f64 (-.f64 (pow.f64 (+.f64 1 (log.f64 z)) 2) (*.f64 z z)) (/.f64 1 (+.f64 1 (+.f64 (log.f64 z) z)))))
0.1b
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
38.2b
(+.f64 (*.f64 x 1/2) (+.f64 (pow.f64 (sqrt.f64 (*.f64 y (log.f64 z))) 2) y))
15.4b
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 z)) 2) (*.f64 (cbrt.f64 (log.f64 z)) y) (+.f64 y (*.f64 x 1/2)))
29.2b
(+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))
19.6b
(-.f64 (*.f64 1/2 x) (*.f64 y z))
20.3b
(+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z)))
45.7b
(pow.f64 (sqrt.f64 (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y))) 2)
15.4b
(+.f64 (*.f64 x 1/2) (/.f64 (*.f64 (-.f64 1 (pow.f64 (log.f64 z) 2)) y) (-.f64 1 (log.f64 z))))
43.9b
(*.f64 (+.f64 1 (log.f64 z)) y)
47.7b
(*.f64 z (neg.f64 y))
15.1b
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y))
0.1b
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Compiler

Compiled 311 to 219 computations (29.6% saved)

regimes417.0ms (3.4%)

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

9 calls:

51.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
49.0ms
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
48.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
47.0ms
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
42.0ms
(*.f64 x 1/2)
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 809 to 436 computations (46.1% saved)

regimes121.0ms (1%)

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

10 calls:

12.0ms
(*.f64 x 1/2)
12.0ms
y
12.0ms
(*.f64 x 1/2)
12.0ms
(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
12.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.1b1(*.f64 x 1/2)
0.1b1(*.f64 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 273 to 147 computations (46.2% saved)

regimes114.0ms (0.9%)

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

7 calls:

45.0ms
z
11.0ms
x
11.0ms
(*.f64 x 1/2)
11.0ms
(+.f64 (-.f64 1 z) (log.f64 z))
10.0ms
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
0.1b1(*.f64 x 1/2)
0.1b1(*.f64 y (+.f64 (-.f64 1 z) (log.f64 z)))
0.1b1(+.f64 (-.f64 1 z) (log.f64 z))
Compiler

Compiled 205 to 108 computations (47.3% saved)

regimes229.0ms (1.9%)

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

5 calls:

61.0ms
(*.f64 x 1/2)
57.0ms
y
49.0ms
(*.f64 x 1/2)
39.0ms
x
18.0ms
z
Results
ErrorSegmentsBranch
6.7b4x
9.1b5y
0.7b2z
6.7b4(*.f64 x 1/2)
6.7b4(*.f64 x 1/2)
Compiler

Compiled 164 to 80 computations (51.2% saved)

bsearch27.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
0.0006746617405501257
16.444761829773046
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes226.0ms (1.8%)

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

5 calls:

70.0ms
y
54.0ms
(*.f64 x 1/2)
48.0ms
(*.f64 x 1/2)
35.0ms
x
15.0ms
z
Results
ErrorSegmentsBranch
6.7b4x
9.1b5y
0.7b2z
6.7b4(*.f64 x 1/2)
6.7b4(*.f64 x 1/2)
Compiler

Compiled 132 to 65 computations (50.8% saved)

bsearch29.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
0.0006746617405501257
16.444761829773046
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes283.0ms (2.3%)

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

5 calls:

95.0ms
z
67.0ms
y
52.0ms
(*.f64 x 1/2)
34.0ms
(*.f64 x 1/2)
31.0ms
x
Results
ErrorSegmentsBranch
7.6b5x
9.3b5y
12.7b8z
7.6b5(*.f64 x 1/2)
7.6b5(*.f64 x 1/2)
Compiler

Compiled 112 to 61 computations (45.5% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
756750.0594940393
3.771104916010677e+19
0.0ms
-1.4895678121662867e-121
-1.441945081063704e-124
0.0ms
-3.520546247063729e-53
-4.820238089009282e-57
0.0ms
-4.189482410771809e-30
-8.20183839821819e-32
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes272.0ms (2.2%)

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

5 calls:

73.0ms
z
66.0ms
y
65.0ms
x
32.0ms
(*.f64 x 1/2)
31.0ms
(*.f64 x 1/2)
Results
ErrorSegmentsBranch
7.6b5x
9.3b5y
12.7b8z
7.6b5(*.f64 x 1/2)
7.6b5(*.f64 x 1/2)
Compiler

Compiled 94 to 56 computations (40.4% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
756750.0594940393
3.771104916010677e+19
0.0ms
-1.4895678121662867e-121
-1.441945081063704e-124
0.0ms
-3.520546247063729e-53
-4.820238089009282e-57
0.0ms
-4.189482410771809e-30
-8.20183839821819e-32
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes365.0ms (3%)

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

5 calls:

89.0ms
z
81.0ms
(*.f64 x 1/2)
78.0ms
x
78.0ms
(*.f64 x 1/2)
34.0ms
y
Results
ErrorSegmentsBranch
12.2b7x
12.6b3y
12.7b8z
12.2b7(*.f64 x 1/2)
12.2b7(*.f64 x 1/2)
Compiler

Compiled 86 to 53 computations (38.4% saved)

bsearch2.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
7.162318414526741e-193
9.606818723637692e-169
0.0ms
9.688326187209567e-219
9.282571084499257e-217
0.0ms
1.8375745360469435e-289
1.8179540610019452e-283
0.0ms
-8.237630694903403e-202
-2.7966664436143493e-208
0.0ms
-3.520546247063729e-53
-4.820238089009282e-57
0.0ms
-4.189482410771809e-30
-8.20183839821819e-32
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes309.0ms (2.5%)

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

5 calls:

74.0ms
z
74.0ms
(*.f64 x 1/2)
74.0ms
(*.f64 x 1/2)
58.0ms
x
25.0ms
y
Results
ErrorSegmentsBranch
12.3b7x
12.6b3y
12.7b8z
12.3b7(*.f64 x 1/2)
12.3b7(*.f64 x 1/2)
Compiler

Compiled 80 to 50 computations (37.5% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
7.162318414526741e-193
9.606818723637692e-169
0.0ms
9.688326187209567e-219
9.282571084499257e-217
0.0ms
1.8375745360469435e-289
1.8179540610019452e-283
0.0ms
-8.237630694903403e-202
-2.7966664436143493e-208
0.0ms
-3.520546247063729e-53
-4.820238089009282e-57
0.0ms
-4.189482410771809e-30
-8.20183839821819e-32
Compiler

Compiled 21 to 16 computations (23.8% saved)

regimes49.0ms (0.4%)

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

5 calls:

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

Compiled 74 to 47 computations (36.5% saved)

regimes55.0ms (0.4%)

Accuracy

Total -35.4b remaining (-132.7%)

Threshold costs -35.4b (-132.7%)

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

3 calls:

24.0ms
z
15.0ms
x
15.0ms
y
Results
ErrorSegmentsBranch
26.6b3x
32.9b3y
26.9b4z
Compiler

Compiled 22 to 16 computations (27.3% saved)

bsearch82.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
41.0ms
5.35809792399716e-44
2.1906768172685593e-42
41.0ms
-2.762612724927467e-6
-8.616381161835148e-7
Compiler

Compiled 21 to 16 computations (23.8% saved)

simplify44.0ms (0.4%)

Algorithm
egg-herbie
Rules
19×+-commutative_binary64
12×*-commutative_binary64
sub-neg_binary64
cancel-sign-sub-inv_binary64
neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
077592
1117590
2132590
3136590
4138590
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 (+.f64 1 (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 (*.f64 y (log.f64 z)) y) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 (*.f64 y (log.f64 z)) y) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))))
(-.f64 (*.f64 1/2 x) (*.f64 y z))
(if (<=.f64 x -1630758717168331/590295810358705651712) (*.f64 1/2 x) (if (<=.f64 x 5381332124335095/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (neg.f64 y)) (*.f64 1/2 x)))
(*.f64 1/2 x)
Outputs
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 (+.f64 1 (log.f64 z)) y)))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 z (neg.f64 y))))
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 y (+.f64 1 (log.f64 z))) (*.f64 y z)))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (*.f64 y z))
(-.f64 (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 x 1/2) y)) (*.f64 y z))
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (-.f64 1 z) (log.f64 z))))
(+.f64 (*.f64 x 1/2) (*.f64 y (+.f64 (log.f64 z) (-.f64 1 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 y (log.f64 z)) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 x 1/2) (+.f64 y (*.f64 y (log.f64 z)))) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 1/2 x) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 z 6222656232125801/9223372036854775808) (+.f64 (*.f64 y (log.f64 z)) (+.f64 (*.f64 x 1/2) y)) (+.f64 (*.f64 x 1/2) (*.f64 y (-.f64 1 z))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 y (-.f64 (+.f64 1 (log.f64 z)) z)) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 y (-.f64 (log.f64 z) z))) (-.f64 (*.f64 x 1/2) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 (-.f64 (log.f64 z) z) y)) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 y (*.f64 y (-.f64 (log.f64 z) z))) (if (<=.f64 (*.f64 x 1/2) -1162941958872971/11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834496) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 1000000) (+.f64 y (*.f64 y (-.f64 (log.f64 z) z))) (-.f64 (*.f64 x 1/2) (*.f64 y z))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 (+.f64 1 (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 (*.f64 y (log.f64 z)) y) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (*.f64 y (+.f64 1 (log.f64 z))) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 y (*.f64 y (log.f64 z))) (-.f64 (*.f64 x 1/2) (*.f64 y z))))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 (*.f64 y (log.f64 z)) y) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 1/2 x) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 (*.f64 y (log.f64 z)) y) (-.f64 (*.f64 1/2 x) (*.f64 y z))))))))
(if (<=.f64 (*.f64 x 1/2) -178405961588245/44601490397061246283071436545296723011960832) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) -8627182933488205/431359146674410236714672241392314090778194310760649159697657763987456) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 (*.f64 x 1/2) -5515652263101987/11031304526203974597457456414861827591216226218170224705794538792432397774848431640257320003887617175667569787102671861633294128382337464639166223001902133228245297232354359845986844033174623155170927185464197384241152) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 4388899255034951/21944496275174754733023745004748837080297570543729328280448007953824789527038691788660702798145451174453138901351488446979832735450978591612896414872982681198457994802840025058142360791167736098566050165049439180766375815715632675961171034001565824849041810386302038359368560295224574744242597208206082048) (+.f64 y (*.f64 y (log.f64 z))) (if (<=.f64 (*.f64 x 1/2) 3974446316289815/397444631628981487398138749046400654145762820381874332451597321734669043887712482900704872660133498355324859058465554740779924491293392484209737542410542371636340473861337575820867913121689201875267327793591416000228568794576910811136) (-.f64 (*.f64 x 1/2) (*.f64 y z)) (if (<=.f64 (*.f64 x 1/2) 2568425733177917/2568425733177916751582514591250062824975751856847252861083144972201529372215371495172688738416791235950675277761805770367685269653410060480042878305982363696267199058168185838960773319279454451792623658074112) (+.f64 y (*.f64 y (log.f64 z))) (-.f64 (*.f64 x 1/2) (*.f64 y z))))))))
(-.f64 (*.f64 1/2 x) (*.f64 y z))
(-.f64 (*.f64 x 1/2) (*.f64 y z))
(if (<=.f64 x -1630758717168331/590295810358705651712) (*.f64 1/2 x) (if (<=.f64 x 5381332124335095/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (neg.f64 y)) (*.f64 1/2 x)))
(if (<=.f64 x -1630758717168331/590295810358705651712) (*.f64 x 1/2) (if (<=.f64 x 5381332124335095/100433627766186892221372630771322662657637687111424552206336) (*.f64 z (neg.f64 y)) (*.f64 x 1/2)))
(*.f64 1/2 x)
(*.f64 x 1/2)
Compiler

Compiled 436 to 276 computations (36.7% saved)

soundness0.0ms (0%)

end474.0ms (3.8%)

Compiler

Compiled 403 to 220 computations (45.4% saved)

Profiling

Loading profile data...