Details

Time bar (total: 8.9s)

analyze375.0ms (4.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%87.4%12.6%5
0%74.9%25.1%6
3.1%71.8%25.1%7
7.8%60.8%31.4%8
11.7%50.7%37.6%9
17.6%44.9%37.6%10
22.8%36.5%40.7%11
26.6%29.5%43.8%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample1.6s (17.8%)

Results
1.4s8256×body256valid
148.0ms1068×body256invalid

preprocess126.0ms (1.4%)

Algorithm
egg-herbie
Rules
786×div-sub_binary64
747×sub-neg_binary64
449×associate-/r*_binary64
440×associate-/r/_binary64
369×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02048
14248
26548
312348
435448
583648
6183948
7295948
8411848
9486448
10598848
11668248
12679248
13691648
14698848
15698848
16779548
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 y (log.f64 (/.f64 y x))) z)
(-.f64 (*.f64 z (log.f64 (/.f64 z y))) x)
(-.f64 (*.f64 x (log.f64 (/.f64 x z))) y)
Outputs
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 y (log.f64 (/.f64 y x))) z)
(fma.f64 y (log.f64 (/.f64 y x)) (neg.f64 z))
(neg.f64 (fma.f64 y (log.f64 (/.f64 x y)) z))
(-.f64 (*.f64 z (log.f64 (/.f64 z y))) x)
(fma.f64 z (log.f64 (/.f64 z y)) (neg.f64 x))
(-.f64 (*.f64 x (log.f64 (/.f64 x z))) y)
(fma.f64 x (log.f64 (/.f64 x z)) (neg.f64 y))
(neg.f64 (fma.f64 x (log.f64 (/.f64 z x)) y))
Compiler

Compiled 14 to 10 computations (28.6% saved)

simplify144.0ms (1.6%)

Algorithm
egg-herbie
Rules
2528×fma-neg_binary64
1695×fma-def_binary64
364×distribute-rgt-in_binary64
330×unsub-neg_binary64
315×associate--l+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
11512
22312
33912
49812
523112
647412
789812
8125612
9213312
10363612
11401012
12413612
13417512
14418912
15557112
16678312
17721812
18753612
19762112
20767112
21768112
22777312
23778512
24778512
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
Outputs
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))

eval1.0ms (0%)

Compiler

Compiled 19 to 9 computations (52.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 22 to 14 computations (36.4% saved)

localize11.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
12.5b
(log.f64 (/.f64 x y))
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
0.0b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
0.0b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
12.5b
(log.f64 (/.f64 x y))
Compiler

Compiled 27 to 7 computations (74.1% saved)

series138.0ms (1.6%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
30.0ms
x
@0
(*.f64 x (log.f64 (/.f64 x y)))
25.0ms
x
@-inf
(log.f64 (/.f64 x y))
25.0ms
x
@0
(log.f64 (/.f64 x y))
18.0ms
y
@-inf
(log.f64 (/.f64 x y))
13.0ms
y
@0
(log.f64 (/.f64 x y))

rewrite114.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
989×pow1_binary64
916×add-log-exp_binary64
916×log1p-expm1-u_binary64
916×expm1-log1p-u_binary64
92×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify147.0ms (1.7%)

Algorithm
egg-herbie
Rules
2275×fma-neg_binary64
786×fma-def_binary64
579×associate--r-_binary64
566×unsub-neg_binary64
335×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
044999
196756
2176756
3493756
41354756
53005756
64900756
75731756
85946756
96009756
106019756
116021756
126063756
136079756
146079756
Stop Event
node limit
Counts
159 → 98
Calls
Call 1
Inputs
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(*.f64 (log.f64 (/.f64 x y)) x)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
Outputs
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 1 y)) (log.f64 x))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x)))
(fma.f64 -1 (log.f64 y) (log.f64 x))
(log.f64 (/.f64 x y))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 (log.f64 (/.f64 x y)) x)
(*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(fma.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) x (neg.f64 z))
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
12.5b
(log.f64 (/.f64 x y))
0.1b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
0.1b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
12.5b
(log.f64 (/.f64 x y))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite51.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
773×pow1_binary64
711×add-log-exp_binary64
710×log1p-expm1-u_binary64
710×expm1-log1p-u_binary64
695×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify125.0ms (1.4%)

Algorithm
egg-herbie
Rules
2267×fma-neg_binary64
784×fma-def_binary64
573×associate--r-_binary64
567×unsub-neg_binary64
335×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042507
193396
2173396
3485396
41346396
52990396
64866396
75687396
85902396
95963396
105973396
115975396
126017396
136033396
146033396
Stop Event
node limit
Counts
59 → 37
Calls
Call 1
Inputs
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(*.f64 (log.f64 (/.f64 x y)) x)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
Outputs
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x)
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y))))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (/.f64 1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x)
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y))))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (/.f64 -1 y))) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(-.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) z)
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(*.f64 (log.f64 (/.f64 x y)) x)
(*.f64 x (fma.f64 -1 (neg.f64 (log.f64 x)) (neg.f64 (log.f64 y))))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (log.f64 (/.f64 x y)) x))
(-.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))

eval34.0ms (0.4%)

Compiler

Compiled 2168 to 729 computations (66.4% saved)

prune41.0ms (0.5%)

Pruning

14 alts after pruning (12 fresh and 2 done)

PrunedKeptTotal
New15412166
Fresh000
Picked011
Done011
Total15414168
Error
0.0b
Counts
168 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
12.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
38.0b
(-.f64 (*.f64 x (exp.f64 (log.f64 (log.f64 (/.f64 x y))))) z)
35.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
35.1b
(neg.f64 z)
12.9b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
36.0b
(*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))
12.9b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
32.1b
(-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 3)) z)
36.0b
(*.f64 (log.f64 (/.f64 x y)) x)
38.4b
(pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2)
28.5b
(-.f64 (*.f64 x (/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (log.f64 y) 3)) (+.f64 (*.f64 (log.f64 x) (log.f64 x)) (+.f64 (*.f64 (log.f64 y) (log.f64 y)) (*.f64 (log.f64 x) (log.f64 y)))))) z)
28.4b
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)
13.3b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z)
13.4b
(-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z)
Compiler

Compiled 394 to 252 computations (36% saved)

localize39.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))
0.2b
(*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y)))))
0.0b
(-.f64 (*.f64 x (+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))) z)
0.0b
(log.f64 (cbrt.f64 (/.f64 x y)))
0.3b
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))
0.5b
(pow.f64 (cbrt.f64 (/.f64 x y)) 2)
2.3b
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))
12.9b
(cbrt.f64 (/.f64 x y))
Compiler

Compiled 77 to 27 computations (64.9% saved)

series22.0ms (0.2%)

Counts
4 → 0
Calls

24 calls:

TimeVariablePointExpression
2.0ms
x
@inf
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))
2.0ms
y
@-inf
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))
2.0ms
x
@-inf
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))
1.0ms
x
@-inf
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2)) (log.f64 (cbrt.f64 (/.f64 x y))))
1.0ms
x
@0
(log.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2))

rewrite87.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
702×prod-diff_binary64
469×log-prod_binary64
288×pow-prod-down_binary64
249×pow2_binary64
245×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
234 → 234
Calls
Call 1
Inputs
Outputs

localize3.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize19.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
12.9b
(log.f64 (/.f64 y x))
0.2b
(*.f64 x (neg.f64 (log.f64 (/.f64 y x))))
0.0b
(-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z)
0.0b
(-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z)
0.2b
(*.f64 x (neg.f64 (log.f64 (/.f64 y x))))
12.9b
(log.f64 (/.f64 y x))
Compiler

Compiled 34 to 8 computations (76.5% saved)

series263.0ms (3%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
101.0ms
x
@-inf
(log.f64 (/.f64 y x))
49.0ms
y
@-inf
(log.f64 (/.f64 y x))
30.0ms
y
@inf
(log.f64 (/.f64 y x))
28.0ms
z
@-inf
(-.f64 (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) z)
16.0ms
x
@0
(log.f64 (/.f64 y x))

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
681×prod-diff_binary64
482×log-prod_binary64
294×pow-prod-down_binary64
252×fma-def_binary64
240×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify158.0ms (1.8%)

Algorithm
egg-herbie
Rules
609×fma-neg_binary64
513×div-sub_binary64
484×unsub-neg_binary64
412×distribute-rgt-in_binary64
330×sub-neg_binary64
Iterations

Useful iterations: 10 (0.0ms)

IterNodesCost
0501194
1142870
2367810
3924810
42521810
54728810
65279810
75466810
85571810
95638810
105837756
116182756
126308756
137025756
Stop Event
node limit
Counts
168 → 104
Calls
Call 1
Inputs
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
Outputs
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y))))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 y) (*.f64 -1 (log.f64 x)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 1 x)) (log.f64 y))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))
(+.f64 (neg.f64 (log.f64 x)) (log.f64 y))
(log.f64 (/.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y))))))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(-.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x))) x)) z)
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (log.f64 (/.f64 y x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x)))
(-.f64 (neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y)))) z)
(-.f64 (*.f64 (log.f64 (/.f64 y x)) (neg.f64 x)) z)
(neg.f64 (fma.f64 x (log.f64 (/.f64 y x)) z))
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)

localize15.0ms (0.2%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
0.1b
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
0.0b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
0.0b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
0.1b
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
0.3b
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
Compiler

Compiled 43 to 10 computations (76.7% saved)

series214.0ms (2.4%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
54.0ms
x
@0
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
43.0ms
x
@inf
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
43.0ms
y
@inf
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
26.0ms
y
@0
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
16.0ms
x
@-inf
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))

rewrite120.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
982×prod-diff_binary64
539×log-prod_binary64
411×fma-def_binary64
227×fma-neg_binary64
190×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify276.0ms (3.1%)

Algorithm
egg-herbie
Rules
981×unsub-neg_binary64
777×distribute-rgt-in_binary64
549×distribute-lft-in_binary64
463×distribute-neg-in_binary64
392×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0521515
11261242
22351242
3633918
42059918
54313918
65531918
76086918
86271918
96305918
106312918
116680918
127187918
137423918
147538918
157556918
167560918
177560918
187560918
Stop Event
node limit
Counts
327 → 268
Calls
Call 1
Inputs
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
Outputs
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y)))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y))))
(-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
(-.f64 (log.f64 x) (log.f64 y))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y)))) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(-.f64 (*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x) z)
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))
(+.f64 (*.f64 -1 z) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x))
(fma.f64 -1 z (*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y)))))
(fma.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) (neg.f64 z))
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
(fma.f64 x (-.f64 (log.f64 x) (log.f64 y)) (neg.f64 z))

localize19.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.7b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
0.6b
(cbrt.f64 (*.f64 x (log.f64 (/.f64 x y))))
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
0.0b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z)
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
0.6b
(cbrt.f64 (*.f64 x (log.f64 (/.f64 x y))))
0.7b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
12.5b
(log.f64 (/.f64 x y))
Compiler

Compiled 47 to 13 computations (72.3% saved)

series15.0ms (0.2%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
5.0ms
y
@-inf
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
3.0ms
y
@0
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
2.0ms
y
@inf
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
1.0ms
x
@-inf
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
1.0ms
x
@0
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)

rewrite58.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
815×pow1_binary64
763×add-log-exp_binary64
763×log1p-expm1-u_binary64
763×expm1-log1p-u_binary64
745×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify56.0ms (0.6%)

Algorithm
egg-herbie
Rules
891×unsub-neg_binary64
769×fma-neg_binary64
368×distribute-rgt-neg-out_binary64
336×distribute-lft-neg-out_binary64
320×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
034484
189368
2194328
3590328
41998328
54797328
Stop Event
node limit
Counts
78 → 64
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
Outputs
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) (pow.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) 2))) 1/3) x)
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x))
(*.f64 x (cbrt.f64 (*.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) (pow.f64 (fma.f64 -1 (log.f64 y) (log.f64 x)) 2))))
(*.f64 x (cbrt.f64 (pow.f64 (-.f64 (log.f64 x) (log.f64 y)) 3)))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x)
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x)
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x)
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x))
(*.f64 (*.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))) x)
(*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x))))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 1 y)) (log.f64 x)) x) 1/3)
(cbrt.f64 (*.f64 x (fma.f64 -1 (log.f64 y) (log.f64 x))))
(cbrt.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))))
(pow.f64 (*.f64 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (*.f64 -1 x))) x) 1/3)
(cbrt.f64 (*.f64 x (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (neg.f64 x)))))

eval354.0ms (4%)

Compiler

Compiled 14633 to 5611 computations (61.7% saved)

prune244.0ms (2.7%)

Pruning

32 alts after pruning (27 fresh and 5 done)

PrunedKeptTotal
New77223795
Fresh347
Picked011
Done246
Total77732809
Error
0.0b
Counts
809 → 32
Alt Table
Click to see full alt table
StatusErrorProgram
28.4b
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)
49.9b
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z))
12.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
49.4b
(pow.f64 (sqrt.f64 (neg.f64 z)) 2)
48.4b
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z))
38.0b
(-.f64 (*.f64 x (exp.f64 (log.f64 (log.f64 (/.f64 x y))))) z)
38.4b
(pow.f64 (sqrt.f64 (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)) 2)
35.7b
(pow.f64 (cbrt.f64 (neg.f64 z)) 3)
35.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
33.3b
(-.f64 (*.f64 x (-.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))) z)
35.1b
(neg.f64 z)
50.5b
(exp.f64 (log.f64 (neg.f64 z)))
35.4b
(*.f64 -1 (*.f64 (log.f64 (/.f64 y x)) x))
12.9b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
13.3b
(-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y)))) z)
28.4b
(-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z)
41.3b
(-.f64 (*.f64 x (*.f64 1/3 (log.f64 (pow.f64 (/.f64 x y) 3)))) z)
31.9b
(-.f64 (*.f64 x (-.f64 (*.f64 2 (log.f64 (cbrt.f64 x))) (log.f64 (/.f64 y (cbrt.f64 x))))) z)
28.4b
(-.f64 (+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y)))) z)
13.3b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3) z)
3.1b
(-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))) z)
48.7b
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
48.3b
(/.f64 (neg.f64 (*.f64 z z)) z)
48.4b
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z))))
36.0b
(*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))
36.2b
(-.f64 (*.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x)) z)
12.9b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
62.9b
(log.f64 (exp.f64 (neg.f64 z)))
36.0b
(*.f64 (log.f64 (/.f64 x y)) x)
59.5b
(pow.f64 (pow.f64 (neg.f64 z) 3) 1/3)
13.5b
(-.f64 (pow.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (log.f64 (/.f64 x y)))) 3) z)
55.2b
(sqrt.f64 (pow.f64 (neg.f64 z) 2))
Compiler

Compiled 739 to 518 computations (29.9% saved)

localize35.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(/.f64 x (cbrt.f64 y))
0.2b
(*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))))
0.0b
(-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))) z)
0.0b
(log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2)))
0.5b
(pow.f64 (cbrt.f64 y) 2)
0.5b
(+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))
0.6b
(cbrt.f64 y)
2.8b
(log.f64 (/.f64 x (cbrt.f64 y)))
Compiler

Compiled 81 to 40 computations (50.6% saved)

series122.0ms (1.4%)

Counts
4 → 24
Calls

18 calls:

TimeVariablePointExpression
53.0ms
x
@-inf
(log.f64 (/.f64 x (cbrt.f64 y)))
25.0ms
x
@0
(+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))
24.0ms
x
@0
(log.f64 (/.f64 x (cbrt.f64 y)))
8.0ms
x
@inf
(log.f64 (/.f64 x (cbrt.f64 y)))
3.0ms
y
@-inf
(+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y))))

rewrite91.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
621×prod-diff_binary64
531×log-prod_binary64
293×pow2_binary64
235×fma-def_binary64
204×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify47.0ms (0.5%)

Algorithm
egg-herbie
Rules
789×fma-def_binary64
683×sub-neg_binary64
447×associate--l+_binary64
419×unsub-neg_binary64
362×distribute-neg-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
032468
178396
2161360
3443276
41617204
55981204
Stop Event
node limit
Counts
218 → 201
Calls
Call 1
Inputs
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
Outputs
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (log.f64 x))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (log.f64 x))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (log.f64 x))
(fma.f64 (log.f64 y) -1/3 (log.f64 x))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 x)))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (log.f64 (pow.f64 (/.f64 1 y) 1/3)) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 (pow.f64 (/.f64 1 (pow.f64 y 2)) 1/3)) (log.f64 (*.f64 -1 (pow.f64 (/.f64 1 y) 1/3)))))
(+.f64 (log.f64 (cbrt.f64 (/.f64 1 y))) (+.f64 (log.f64 x) (log.f64 (cbrt.f64 (/.f64 1 (*.f64 y y))))))
(fma.f64 1/3 (neg.f64 (log.f64 y)) (fma.f64 1/3 (neg.f64 (log.f64 (*.f64 y y))) (log.f64 x)))
(fma.f64 1/3 (-.f64 (neg.f64 (log.f64 y)) (*.f64 2 (log.f64 y))) (log.f64 x))
(fma.f64 1/3 (*.f64 (log.f64 y) -3) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 y))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
29.1b
(/.f64 (neg.f64 (*.f64 z z)) z)
29.1b
(/.f64 (neg.f64 (*.f64 z z)) z)
Compiler

Compiled 17 to 6 computations (64.7% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
z
@0
(/.f64 (neg.f64 (*.f64 z z)) z)
0.0ms
z
@inf
(/.f64 (neg.f64 (*.f64 z z)) z)
0.0ms
z
@-inf
(/.f64 (neg.f64 (*.f64 z z)) z)

rewrite57.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
345×pow1_binary64
333×add-sqr-sqrt_binary64
326×*-un-lft-identity_binary64
324×add-log-exp_binary64
323×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
sub-neg_binary64
+-commutative_binary64
fma-def_binary64
*-commutative_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0436
1636
2836
3936
41136
51536
61936
72436
Stop Event
saturated
Counts
87 → 75
Calls
Call 1
Inputs
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
Outputs
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
2.8b
(exp.f64 (log.f64 (neg.f64 z)))
2.8b
(exp.f64 (log.f64 (neg.f64 z)))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series45.0ms (0.5%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
45.0ms
z
@-inf
(exp.f64 (log.f64 (neg.f64 z)))
0.0ms
z
@0
(exp.f64 (log.f64 (neg.f64 z)))
0.0ms
z
@inf
(exp.f64 (log.f64 (neg.f64 z)))

rewrite46.0ms (0.5%)

Algorithm
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
289×associate-*r*_binary64
276×pow1_binary64
267×add-sqr-sqrt_binary64
261×*-un-lft-identity_binary64
255×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053
1863
29623
053
Stop Event
iter limit
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(exp.f64 (log.f64 (neg.f64 z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (neg.f64 z)) (cbrt.f64 (neg.f64 z))) (cbrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 z)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 z)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (neg.f64 z) (neg.f64 z)) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (neg.f64 z)))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
sub-neg_binary64
+-commutative_binary64
fma-def_binary64
*-commutative_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0436
1636
2836
3936
41136
51536
61936
72436
Stop Event
saturated
Counts
23 → 11
Calls
Call 1
Inputs
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
(*.f64 -1 z)
Outputs
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)
(*.f64 -1 z)
(neg.f64 z)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
0.1b
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.1b
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.3b
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))
Compiler

Compiled 31 to 9 computations (71% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.0ms
x
@0
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.0ms
x
@inf
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.0ms
y
@inf
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
0.0ms
x
@-inf
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)

rewrite60.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
853×pow1_binary64
792×add-log-exp_binary64
791×log1p-expm1-u_binary64
791×expm1-log1p-u_binary64
777×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify151.0ms (1.7%)

Algorithm
egg-herbie
Rules
2798×fma-neg_binary64
809×fma-def_binary64
609×unsub-neg_binary64
453×distribute-rgt-in_binary64
285×distribute-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
040432
193360
2184360
3506264
41637264
53882264
64637264
74873264
84942264
94962264
104968264
115332264
125926264
136007264
146037264
156063264
166071264
176111264
186135264
196135264
Stop Event
node limit
Counts
43 → 26
Calls
Call 1
Inputs
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
Outputs
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 -1)) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 (neg.f64 y))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (log.f64 y))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 1 y))))))
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (*.f64 -1 (log.f64 (/.f64 -1 y)))) x)
(*.f64 x (-.f64 (+.f64 (log.f64 -1) (log.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
0.2b
(*.f64 (neg.f64 (log.f64 y)) x)
0.2b
(*.f64 (neg.f64 (log.f64 y)) x)
0.3b
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
Compiler

Compiled 38 to 9 computations (76.3% saved)

series95.0ms (1.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
49.0ms
y
@0
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
25.0ms
x
@0
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
8.0ms
y
@-inf
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
8.0ms
x
@-inf
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))
1.0ms
x
@inf
(fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x))

rewrite48.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
661×pow1_binary64
605×add-log-exp_binary64
604×log1p-expm1-u_binary64
604×expm1-log1p-u_binary64
592×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify144.0ms (1.6%)

Algorithm
egg-herbie
Rules
3070×fma-neg_binary64
642×fma-def_binary64
390×unsub-neg_binary64
353×associate--r-_binary64
283×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
039504
199456
2225456
3634456
41523456
53175456
63718456
73889456
83906456
93916456
103916456
116251456
126930456
137021456
147051456
157079456
167083456
177083456
187103456
Stop Event
node limit
Counts
86 → 49
Calls
Call 1
Inputs
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (log.f64 y) x))
Outputs
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (log.f64 x) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 -1 (log.f64 y))) x)
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 y)) x))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 -1 (*.f64 (log.f64 y) x)) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 (log.f64 (/.f64 1 y)) x) (*.f64 x (log.f64 x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(+.f64 (*.f64 x (log.f64 x)) (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 x (+.f64 (log.f64 x) (neg.f64 (log.f64 y))))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 (log.f64 (/.f64 1 y)) x)
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))
(*.f64 -1 (*.f64 (log.f64 y) x))
(*.f64 x (neg.f64 (log.f64 y)))

eval210.0ms (2.4%)

Compiler

Compiled 8440 to 3974 computations (52.9% saved)

prune148.0ms (1.7%)

Pruning

39 alts after pruning (31 fresh and 8 done)

PrunedKeptTotal
New48519504
Fresh101222
Picked011
Done279
Total49739536
Error
0.0b
Counts
536 → 39
Alt Table
Click to see full alt table
StatusErrorProgram
12.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
62.4b
(pow.f64 (/.f64 1 z) -1)
49.4b
(pow.f64 (sqrt.f64 (neg.f64 z)) 2)
43.8b
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)
47.3b
(*.f64 (exp.f64 (log.f64 (log.f64 (/.f64 x y)))) x)
48.4b
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z))
35.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
33.3b
(-.f64 (*.f64 x (-.f64 (log.f64 (/.f64 x (sqrt.f64 y))) (log.f64 (sqrt.f64 y)))) z)
35.1b
(neg.f64 z)
50.5b
(exp.f64 (log.f64 (neg.f64 z)))
43.8b
(+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y))))
62.5b
(-.f64 (+.f64 1 z) 1)
29.8b
(*.f64 (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) x)
12.9b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
13.3b
(-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 (/.f64 x y)))) z)
28.4b
(-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z)
35.4b
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
63.2b
(exp.f64 (log.f64 z))
62.4b
(pow.f64 (cbrt.f64 z) 3)
48.7b
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
48.3b
(/.f64 (neg.f64 (*.f64 z z)) z)
36.0b
(*.f64 (log.f64 (/.f64 x y)) x)
13.5b
(-.f64 (pow.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 (log.f64 (/.f64 x y)))) 3) z)
48.7b
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
49.8b
(pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2)
62.9b
(pow.f64 (pow.f64 z 3) 1/3)
62.4b
(*.f64 1 z)
48.4b
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z))))
36.0b
(*.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 (/.f64 x y))) 2) (*.f64 z z)) (/.f64 1 (fma.f64 x (log.f64 (/.f64 x y)) z)))
36.4b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
36.2b
(-.f64 (*.f64 (*.f64 (log.f64 (/.f64 x y)) (sqrt.f64 x)) (sqrt.f64 x)) z)
12.9b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
62.6b
(*.f64 (*.f64 z z) (/.f64 1 z))
28.4b
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)
49.9b
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z))
35.7b
(pow.f64 (cbrt.f64 (neg.f64 z)) 3)
47.4b
(*.f64 (+.f64 (log.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1)) (log.f64 (/.f64 (cbrt.f64 x) y))) x)
54.7b
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2))
41.3b
(-.f64 (*.f64 x (*.f64 1/3 (log.f64 (pow.f64 (/.f64 x y) 3)))) z)
Compiler

Compiled 807 to 580 computations (28.1% saved)

localize28.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))
0.2b
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))))
0.0b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
0.0b
(log.f64 (cbrt.f64 (/.f64 x y)))
0.0b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
0.2b
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))))
0.3b
(*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))
12.9b
(cbrt.f64 (/.f64 x y))
Compiler

Compiled 46 to 16 computations (65.2% saved)

series20.0ms (0.2%)

Counts
3 → 13
Calls

21 calls:

TimeVariablePointExpression
8.0ms
z
@0
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
1.0ms
x
@0
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))))
1.0ms
x
@0
(*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))
1.0ms
y
@0
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))))
1.0ms
y
@inf
(*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y)))))

rewrite110.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
799×prod-diff_binary64
596×log-prod_binary64
299×pow2_binary64
299×fma-def_binary64
207×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify44.0ms (0.5%)

Algorithm
egg-herbie
Rules
596×distribute-rgt-neg-in_binary64
543×associate-+l+_binary64
520×distribute-lft-neg-in_binary64
434×distribute-rgt-out_binary64
388×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
015176
131156
262126
3135126
4603126
53510126
Stop Event
node limit
Counts
216 → 210
Calls
Call 1
Inputs
(*.f64 -1 z)
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(*.f64 -1 z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(*.f64 -1 z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
Outputs
(*.f64 -1 z)
(neg.f64 z)
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))
(*.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))))
(*.f64 x (*.f64 1 (log.f64 (/.f64 x y))))
(*.f64 x (log.f64 (/.f64 x y)))
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 -1 z) (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
(+.f64 (*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x)) (*.f64 -1 z))
(fma.f64 3 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) (neg.f64 z))
(-.f64 (*.f64 x (*.f64 1 (log.f64 (/.f64 x y)))) z)
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)

localize4.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
12.9b
(log.f64 (/.f64 y x))
0.2b
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
0.2b
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
12.9b
(log.f64 (/.f64 y x))
Compiler

Compiled 24 to 7 computations (70.8% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
1.0ms
x
@0
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
1.0ms
y
@inf
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
1.0ms
y
@-inf
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
0.0ms
x
@-inf
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)

rewrite46.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
666×pow1_binary64
615×add-log-exp_binary64
614×log1p-expm1-u_binary64
614×expm1-log1p-u_binary64
602×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify146.0ms (1.6%)

Algorithm
egg-herbie
Rules
3152×fma-neg_binary64
634×fma-def_binary64
303×unsub-neg_binary64
290×associate--r+_binary64
266×associate--r-_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
035360
192312
2265264
3694264
41683264
53374264
63616264
73676264
83692264
93696264
103698264
115689264
125935264
136063264
146259264
156330264
166334264
176432264
186458264
196458264
Stop Event
node limit
Counts
39 → 21
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
Outputs
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 (log.f64 (/.f64 1 y)))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 (/.f64 -1 x)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 y) (*.f64 -1 (log.f64 x))) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 y)) x))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))
(*.f64 -1 (*.f64 x (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 (*.f64 -1 y)))))
(neg.f64 (*.f64 x (+.f64 (neg.f64 (log.f64 x)) (log.f64 y))))
(*.f64 (-.f64 (log.f64 y) (log.f64 x)) (neg.f64 x))
(*.f64 x (-.f64 (log.f64 x) (log.f64 y)))

localize13.0ms (0.1%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.5b
(cbrt.f64 z)
0.3b
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
0.3b
(/.f64 z (cbrt.f64 z))
0.3b
(/.f64 z (cbrt.f64 z))
0.3b
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
0.5b
(cbrt.f64 z)
Compiler

Compiled 17 to 8 computations (52.9% saved)

series9.0ms (0.1%)

Counts
3 → 0
Calls

9 calls:

TimeVariablePointExpression
2.0ms
z
@-inf
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
1.0ms
z
@0
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
1.0ms
z
@inf
(/.f64 z (cbrt.f64 z))
1.0ms
z
@inf
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
1.0ms
z
@0
(cbrt.f64 z)

rewrite73.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
518×pow1_binary64
497×add-log-exp_binary64
497×log1p-expm1-u_binary64
497×expm1-log1p-u_binary64
485×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0618
113010
2164210
Stop Event
node limit
Counts
3 → 77
Calls
Call 1
Inputs
(cbrt.f64 z)
(pow.f64 (/.f64 z (cbrt.f64 z)) 3/2)
(/.f64 z (cbrt.f64 z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 1/6) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 z) 1/3) (pow.f64 (sqrt.f64 z) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 (cbrt.f64 z) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 z) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 z)) (sqrt.f64 (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 z 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (cbrt.f64 z)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 z 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 z)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 3/2) (pow.f64 (/.f64 1 (cbrt.f64 z)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 3/2) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z))) 3/2) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) 3/2) (pow.f64 (cbrt.f64 z) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 z 1/6)) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 z 3))))) (#(struct:change #<rule egg-rr> (2) ((x . z)))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 z))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 z (cbrt.f64 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (/.f64 1 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 z) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (cbrt.f64 (*.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) (*.f64 (cbrt.f64 (cbrt.f64 z)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 z (cbrt.f64 z))) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z 1/6) (*.f64 (pow.f64 z 1/6) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (pow.f64 z 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 z) (*.f64 (sqrt.f64 z) (/.f64 1 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 z) (/.f64 1 (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 z)) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) 1) (/.f64 (cbrt.f64 z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 z) 1) (/.f64 (sqrt.f64 z) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (/.f64 z (cbrt.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 z) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (/.f64 (sqrt.f64 z) (cbrt.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 z 1/6)) (/.f64 z (pow.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 z (cbrt.f64 z)) (pow.f64 z 1/6)) (/.f64 (cbrt.f64 z) (pow.f64 z 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 z) (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2)) (cbrt.f64 (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 z 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 z) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (cbrt.f64 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z z) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 z)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cbrt.f64 z) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 z (neg.f64 (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 z (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 z (cbrt.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 z (cbrt.f64 z))))))))

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
77 → 77
Calls
Call 1
Inputs
Outputs

localize42.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
12.5b
(log.f64 (/.f64 x y))
0.7b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
0.6b
(cbrt.f64 (*.f64 x (log.f64 (/.f64 x y))))
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
0.2b
(*.f64 x (log.f64 (/.f64 x y)))
0.6b
(cbrt.f64 (*.f64 x (log.f64 (/.f64 x y))))
0.7b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 3)
12.5b
(log.f64 (/.f64 x y))
Compiler

Compiled 35 to 10 computations (71.4% saved)

rewrite0.0ms (0%)

Counts
0 → 0

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

eval198.0ms (2.2%)

Compiler

Compiled 7450 to 2964 computations (60.2% saved)

prune142.0ms (1.6%)

Pruning

35 alts after pruning (24 fresh and 11 done)

PrunedKeptTotal
New49410504
Fresh121426
Picked101
Done11112
Total50835543
Error
0.0b
Counts
543 → 35
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z)
63.2b
(exp.f64 (log.f64 z))
12.9b
(fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z))
62.4b
(pow.f64 (/.f64 1 z) -1)
49.4b
(pow.f64 (sqrt.f64 (neg.f64 z)) 2)
43.8b
(*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)
48.4b
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z))
35.9b
(-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z)
36.1b
(*.f64 3 (*.f64 (log.f64 (pow.f64 (/.f64 x y) 1/3)) x))
35.1b
(neg.f64 z)
50.5b
(exp.f64 (log.f64 (neg.f64 z)))
55.8b
(pow.f64 (pow.f64 (*.f64 z z) 1/3) 3/2)
28.4b
(-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z)
43.8b
(+.f64 (*.f64 x (log.f64 x)) (*.f64 x (neg.f64 (log.f64 y))))
62.5b
(-.f64 (+.f64 1 z) 1)
29.8b
(*.f64 (+.f64 (log.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2))) (log.f64 (/.f64 x (cbrt.f64 y)))) x)
12.9b
(fma.f64 (*.f64 x (log.f64 (cbrt.f64 (/.f64 x y)))) 3 (neg.f64 z))
54.7b
(*.f64 (/.f64 -1 (sqrt.f64 z)) (pow.f64 z 3/2))
48.6b
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (log.f64 (/.f64 x y))))
63.2b
(pow.f64 (pow.f64 z 2/3) 3/2)
12.9b
(-.f64 (*.f64 x (*.f64 3 (log.f64 (cbrt.f64 (/.f64 x y))))) z)
28.4b
(-.f64 (fma.f64 (log.f64 x) x (*.f64 (neg.f64 (log.f64 y)) x)) z)
35.4b
(*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)
62.4b
(pow.f64 (cbrt.f64 z) 3)
48.7b
(*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x)
48.3b
(/.f64 (neg.f64 (*.f64 z z)) z)
49.8b
(pow.f64 (sqrt.f64 (*.f64 x (log.f64 (/.f64 x y)))) 2)
62.4b
(*.f64 1 z)
48.4b
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z))))
4.2b
(-.f64 (*.f64 x (+.f64 (log.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1)) (log.f64 (/.f64 (cbrt.f64 x) y)))) z)
36.0b
(*.f64 (log.f64 (/.f64 x y)) x)
12.9b
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
49.9b
(*.f64 (neg.f64 (sqrt.f64 z)) (sqrt.f64 z))
35.7b
(pow.f64 (cbrt.f64 (neg.f64 z)) 3)
62.6b
(*.f64 (*.f64 z z) (/.f64 1 z))
Compiler

Compiled 377 to 277 computations (26.5% saved)

regimes149.0ms (1.7%)

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

6 calls:

48.0ms
(*.f64 x (log.f64 (/.f64 x y)))
20.0ms
y
19.0ms
x
17.0ms
z
16.0ms
(*.f64 x (log.f64 (/.f64 x y)))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1z
0.2b1(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
0.2b1(*.f64 x (log.f64 (/.f64 x y)))
0.2b1(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 316 to 162 computations (48.7% saved)

regimes229.0ms (2.6%)

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

6 calls:

42.0ms
(*.f64 x (log.f64 (/.f64 x y)))
41.0ms
z
38.0ms
(*.f64 x (log.f64 (/.f64 x y)))
37.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
31.0ms
y
Results
ErrorSegmentsBranch
0.3b2x
0.3b2y
11.9b3z
5.1b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
5.1b3(*.f64 x (log.f64 (/.f64 x y)))
5.1b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 272 to 135 computations (50.4% saved)

bsearch3.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
2.0ms
-1.0517761236800395e-297
1.2678281316435087e-308
Compiler

Compiled 45 to 32 computations (28.9% saved)

regimes233.0ms (2.6%)

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

6 calls:

51.0ms
x
39.0ms
(*.f64 x (log.f64 (/.f64 x y)))
39.0ms
z
34.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
34.0ms
(*.f64 x (log.f64 (/.f64 x y)))
Results
ErrorSegmentsBranch
2.3b4x
5.2b2y
11.9b3z
5.1b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
5.1b3(*.f64 x (log.f64 (/.f64 x y)))
5.1b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 220 to 121 computations (45% saved)

bsearch53.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
30.0ms
-9.112745829018235e-304
1.0007386548555715e-307
18.0ms
-2.2985891511052535e-171
-7.811587510703646e-177
4.0ms
-1.8282685123054418e+226
-5.8227592249393186e+225
Compiler

Compiled 375 to 273 computations (27.2% saved)

regimes173.0ms (2%)

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

6 calls:

53.0ms
x
31.0ms
(*.f64 x (log.f64 (/.f64 x y)))
29.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
29.0ms
(*.f64 x (log.f64 (/.f64 x y)))
12.0ms
z
Results
ErrorSegmentsBranch
5.6b5x
12.9b1y
12.9b1z
6.2b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 180 to 103 computations (42.8% saved)

bsearch46.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
3.0ms
2.9652606394705417e+141
1.0806300498142108e+149
20.0ms
6.703773696062297e-153
1.582417663328743e-152
20.0ms
-2.2985891511052535e-171
-7.811587510703646e-177
2.0ms
-1.8282685123054418e+226
-5.8227592249393186e+225
Compiler

Compiled 317 to 228 computations (28.1% saved)

regimes152.0ms (1.7%)

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

6 calls:

40.0ms
x
27.0ms
(*.f64 x (log.f64 (/.f64 x y)))
26.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
26.0ms
(*.f64 x (log.f64 (/.f64 x y)))
14.0ms
y
Results
ErrorSegmentsBranch
7.2b4x
12.9b1y
12.9b1z
6.2b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 171 to 97 computations (43.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.7496476825299264e+306
+inf
0.0ms
-inf
-2.799578606154893e+287
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes140.0ms (1.6%)

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

6 calls:

37.0ms
x
25.0ms
(*.f64 x (log.f64 (/.f64 x y)))
25.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
23.0ms
(*.f64 x (log.f64 (/.f64 x y)))
12.0ms
z
Results
ErrorSegmentsBranch
7.2b4x
12.9b1y
12.9b1z
6.2b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
6.2b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 163 to 96 computations (41.1% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.7496476825299264e+306
+inf
0.0ms
-inf
-2.799578606154893e+287
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes102.0ms (1.1%)

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

5 calls:

28.0ms
x
23.0ms
(*.f64 x (log.f64 (/.f64 x y)))
23.0ms
(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
11.0ms
z
11.0ms
y
Results
ErrorSegmentsBranch
10.2b3x
12.9b1y
12.9b1z
7.7b3(-.f64 (*.f64 x (log.f64 (/.f64 x y))) z)
7.7b3(*.f64 x (log.f64 (/.f64 x y)))
Compiler

Compiled 139 to 81 computations (41.7% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.7496476825299264e+306
+inf
0.0ms
-inf
-2.799578606154893e+287
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes103.0ms (1.2%)

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

3 calls:

45.0ms
z
33.0ms
y
22.0ms
x
Results
ErrorSegmentsBranch
17.5b3x
27.0b5y
18.0b7z
Compiler

Compiled 72 to 42 computations (41.7% saved)

bsearch39.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
1.7931332241302844e-90
3.7312080873712615e-90
22.0ms
-490416034.5919109
-0.0005570752841486735
Compiler

Compiled 272 to 207 computations (23.9% saved)

regimes92.0ms (1%)

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

3 calls:

41.0ms
z
28.0ms
y
19.0ms
x
Results
ErrorSegmentsBranch
18.2b3x
27.1b5y
18.4b7z
Compiler

Compiled 65 to 38 computations (41.5% saved)

bsearch36.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
1.7931332241302844e-90
3.7312080873712615e-90
21.0ms
-490416034.5919109
-0.0005570752841486735
Compiler

Compiled 257 to 192 computations (25.3% saved)

regimes21.0ms (0.2%)

Accuracy

Total -28.0b remaining (-79.6%)

Threshold costs -28.0b (-79.6%)

Counts
8 → 1
Calls
Call 1
Inputs
(neg.f64 z)
(*.f64 1 z)
(-.f64 (+.f64 1 z) 1)
(/.f64 (neg.f64 (*.f64 z z)) z)
(*.f64 (*.f64 z z) (/.f64 1 z))
(/.f64 1 (/.f64 z (neg.f64 (*.f64 z z))))
(*.f64 (neg.f64 (*.f64 z z)) (/.f64 1 z))
(pow.f64 (/.f64 1 z) -1)
Outputs
(neg.f64 z)
Calls

3 calls:

6.0ms
x
5.0ms
y
5.0ms
z
Results
ErrorSegmentsBranch
35.1b1x
35.1b1y
35.1b1z
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify14.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
076423
1104423
2127423
3139423
4142423
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z)
(if (<=.f64 y 0) (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z))))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (neg.f64 z)))
(if (<=.f64 x -490000000) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)))
(if (<=.f64 x -490000000) (*.f64 (log.f64 (/.f64 x y)) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (log.f64 (/.f64 x y)) x)))
(neg.f64 z)
Outputs
(-.f64 (*.f64 x (*.f64 3 (log.f64 (/.f64 (cbrt.f64 x) (cbrt.f64 y))))) z)
(if (<=.f64 y 0) (-.f64 (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z))))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 5060056332682765/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (neg.f64 z) (-.f64 (*.f64 x (-.f64 (log.f64 x) (log.f64 y))) z))))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y))) x) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))))
(if (<=.f64 x -9999999999999999613300728333138614158656013804472910722260188106898877933626732224819925546638620725877678611585164563028980399740553218842096696042786355031638703687528415058284784747112853848287855356936724432692495112994816) (*.f64 x (-.f64 (log.f64 (neg.f64 x)) (log.f64 (neg.f64 y)))) (if (<=.f64 x -2447483870899663/1087770609288739018116276647019455748771006705104961378712461595034426490595025393129804804639189577049885346787832834079429794483512744426310696916513970896780966442670885312576979206144) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (if (<=.f64 x 914006524761467/58968162887836583628774290327941701420576894069006881693378223441337877537377325813845730080900918242835443359855685076558915384842574884883772410178635875682021801984) (neg.f64 z) (if (<=.f64 x 9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))))))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (fma.f64 x (log.f64 (/.f64 x y)) (neg.f64 z)) (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 (-.f64 (log.f64 x) (log.f64 y)) x)))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (*.f64 x (-.f64 (log.f64 x) (log.f64 y)))))
(if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) -inf.0) (neg.f64 z) (if (<=.f64 (*.f64 x (log.f64 (/.f64 x y))) 2000000000000000034432129193472909657662175650026477964657784035784761342489150095975840903750919189137212277723396582120622098451065897041393877611422881300245257029338856920713985249936056659101378448350568693460121432177658428510879389260239589093011024831235964286525341725837632725724238309498254524416) (-.f64 (*.f64 x (log.f64 (/.f64 x y))) z) (neg.f64 z)))
(if (<=.f64 x -490000000) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (neg.f64 (log.f64 (/.f64 y x))) x)))
(if (<=.f64 x -490000000) (*.f64 x (neg.f64 (log.f64 (/.f64 y x)))) (if (<=.f64 x 8485944879163265/2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554624) (neg.f64 z) (*.f64 x (neg.f64 (log.f64 (/.f64 y x))))))
(if (<=.f64 x -490000000) (*.f64 (log.f64 (/.f64 x y)) x) (if (<=.f64 x 33943779516653060/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (neg.f64 z) (*.f64 (log.f64 (/.f64 x y)) x)))
(if (<=.f64 x -490000000) (*.f64 x (log.f64 (/.f64 x y))) (if (<=.f64 x 8485944879163265/2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554624) (neg.f64 z) (*.f64 x (log.f64 (/.f64 x y)))))
(neg.f64 z)

end96.0ms (1.1%)

Stop Event
fuel
Compiler

Compiled 581 to 256 computations (55.9% saved)

Profiling

Loading profile data...