Details

Time bar (total: 11.0s)

analyze139.0ms (1.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%74.9%0.2%25%0%0%3
0%0%74.9%0.2%25%0%0%4
0%0%74.9%0.2%25%0%0%5
0%0%62.4%0.2%37.4%0%0%6
0%0%46.8%0.2%43.7%9.4%0%7
7.1%3.1%40.5%0.2%46.8%9.4%0%8
8.7%3.1%32.7%0.2%46.8%17.2%0%9
14.2%4.7%28.3%0.2%49.7%17.2%0%10
23.4%7%23%0.2%50.3%19.5%0%11
35.8%10.5%18.9%0.2%50.9%19.5%0%12
Compiler

Compiled 16 to 11 computations (31.3% saved)

sample2.1s (19.3%)

Results
1.8s8254×body256valid
301.0ms1454×body256invalid
5.0ms31×body256infinite
0.0msbody1024valid
0.0msbody512valid
Bogosity

preprocess266.0ms (2.4%)

Algorithm
egg-herbie
Rules
3534×fma-neg_binary64
720×sub-neg_binary64
670×fma-def_binary64
662×unsub-neg_binary64
412×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035119
197119
2315119
3945105
42438105
55226105
66899105
77377105
87548105
97583105
107612105
117684105
127684105
137684105
147684105
044
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
Call 2
Inputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
(+.f64 (-.f64 (-.f64 (*.f64 y (log.f64 x)) x) z) (log.f64 t))
(+.f64 (-.f64 (-.f64 (*.f64 z (log.f64 y)) y) x) (log.f64 t))
(+.f64 (-.f64 (-.f64 (*.f64 t (log.f64 y)) y) z) (log.f64 x))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 z)) z) y) (log.f64 t))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 t)) t) z) (log.f64 y))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) t) (log.f64 z))
Outputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
(-.f64 (-.f64 (*.f64 x (log.f64 y)) y) (-.f64 z (log.f64 t)))
(+.f64 (-.f64 (fma.f64 x (log.f64 y) (neg.f64 y)) z) (log.f64 t))
(-.f64 (*.f64 x (log.f64 y)) (+.f64 y (-.f64 z (log.f64 t))))
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) (+.f64 y z))
(+.f64 (-.f64 (-.f64 (*.f64 y (log.f64 x)) x) z) (log.f64 t))
(+.f64 (log.f64 t) (-.f64 (-.f64 (*.f64 y (log.f64 x)) x) z))
(-.f64 (fma.f64 y (log.f64 x) (neg.f64 x)) (-.f64 z (log.f64 t)))
(+.f64 (log.f64 t) (-.f64 (*.f64 y (log.f64 x)) (+.f64 x z)))
(-.f64 (fma.f64 y (log.f64 x) (log.f64 t)) (+.f64 x z))
(+.f64 (-.f64 (-.f64 (*.f64 z (log.f64 y)) y) x) (log.f64 t))
(+.f64 (log.f64 t) (-.f64 (*.f64 (log.f64 y) z) (+.f64 y x)))
(+.f64 (log.f64 t) (-.f64 (fma.f64 (log.f64 y) z (neg.f64 y)) x))
(fma.f64 (log.f64 y) z (-.f64 (neg.f64 y) (-.f64 x (log.f64 t))))
(-.f64 (fma.f64 (log.f64 y) z (log.f64 t)) (+.f64 x y))
(fma.f64 (log.f64 y) z (-.f64 (log.f64 t) (+.f64 x y)))
(+.f64 (-.f64 (-.f64 (*.f64 t (log.f64 y)) y) z) (log.f64 x))
(+.f64 (log.f64 x) (-.f64 (*.f64 (log.f64 y) t) (+.f64 y z)))
(-.f64 (fma.f64 (log.f64 y) t (log.f64 x)) (+.f64 y z))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 z)) z) y) (log.f64 t))
(+.f64 (log.f64 t) (-.f64 (*.f64 x (log.f64 z)) (+.f64 z y)))
(+.f64 (log.f64 t) (-.f64 (*.f64 x (log.f64 z)) (+.f64 y z)))
(-.f64 (fma.f64 x (log.f64 z) (log.f64 t)) (+.f64 y z))
(fma.f64 x (log.f64 z) (-.f64 (log.f64 t) (+.f64 y z)))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 t)) t) z) (log.f64 y))
(+.f64 (log.f64 y) (-.f64 (*.f64 x (log.f64 t)) (+.f64 t z)))
(-.f64 (fma.f64 x (log.f64 t) (neg.f64 t)) (-.f64 z (log.f64 y)))
(+.f64 (log.f64 y) (-.f64 (*.f64 x (log.f64 t)) (+.f64 z t)))
(-.f64 (fma.f64 x (log.f64 t) (log.f64 y)) (+.f64 z t))
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) t) (log.f64 z))
(+.f64 (log.f64 z) (-.f64 (*.f64 x (log.f64 y)) (+.f64 y t)))
(+.f64 (log.f64 z) (-.f64 (fma.f64 x (log.f64 y) (neg.f64 y)) t))
(-.f64 (fma.f64 x (log.f64 y) (log.f64 z)) (+.f64 y t))
Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify262.0ms (2.4%)

Algorithm
egg-herbie
Rules
2537×fma-neg_binary64
490×associate--r-_binary64
462×associate--l-_binary64
401×distribute-rgt-in_binary64
373×unsub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01117
12217
25917
316315
441115
592815
6138115
7183615
8211715
9298715
10479415
11520515
12529715
13530715
14531315
15531515
16540315
17559515
18572515
19581115
20582115
21582115
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
Outputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
(+.f64 (-.f64 (fma.f64 x (log.f64 y) (neg.f64 y)) z) (log.f64 t))
(-.f64 (*.f64 x (log.f64 y)) (+.f64 y (-.f64 z (log.f64 t))))
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) (+.f64 y z))

eval1.0ms (0%)

Compiler

Compiled 25 to 13 computations (48% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 15 to 10 computations (33.3% saved)

localize28.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 41 to 10 computations (75.6% saved)

series118.0ms (1.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
63.0ms
x
@0
(*.f64 x (log.f64 y))
28.0ms
y
@0
(*.f64 x (log.f64 y))
13.0ms
y
@-inf
(*.f64 x (log.f64 y))
10.0ms
y
@inf
(*.f64 x (log.f64 y))
1.0ms
x
@inf
(*.f64 x (log.f64 y))

rewrite61.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
698×pow1_binary64
647×add-log-exp_binary64
647×log1p-expm1-u_binary64
647×expm1-log1p-u_binary64
633×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify192.0ms (1.7%)

Algorithm
egg-herbie
Rules
1135×fma-neg_binary64
559×fma-def_binary64
408×associate--r-_binary64
387×associate--r+_binary64
369×associate--l+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021333
148333
295333
3221333
4495333
51118333
63178333
73865333
84000333
94017333
104027333
114029333
126885333
137581333
147765333
157823333
167835333
177839333
187912333
Stop Event
node limit
Counts
96 → 57
Calls
Call 1
Inputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 -1 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
Outputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)

eval13.0ms (0.1%)

Compiler

Compiled 966 to 359 computations (62.8% saved)

prune17.0ms (0.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New50757
Fresh000
Picked011
Done000
Total50858
Error
0.0b
Counts
58 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3) y) z) (log.f64 t))
28.3b
(+.f64 (-.f64 (/.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 x (log.f64 y)) (neg.f64 y))) z) (log.f64 t))
38.8b
(+.f64 (-.f64 (/.f64 (+.f64 (pow.f64 (*.f64 x (log.f64 y)) 3) (pow.f64 (neg.f64 y) 3)) (+.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (*.f64 (*.f64 x (log.f64 y)) (neg.f64 y))))) z) (log.f64 t))
18.3b
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
28.3b
(+.f64 (-.f64 (/.f64 1 (/.f64 (fma.f64 x (log.f64 y) y) (-.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (*.f64 y y)))) z) (log.f64 t))
0.1b
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
15.6b
(+.f64 (-.f64 (-.f64 (expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))) y) z) (log.f64 t))
22.3b
(+.f64 (-.f64 (-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3)) y) z) (log.f64 t))
Compiler

Compiled 337 to 212 computations (37.1% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3) y)
0.3b
(*.f64 x (log.f64 y))
0.5b
(cbrt.f64 (*.f64 x (log.f64 y)))
0.7b
(pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3)
Compiler

Compiled 63 to 23 computations (63.5% saved)

series17.0ms (0.2%)

Counts
3 → 39
Calls

18 calls:

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

rewrite66.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
867×pow1_binary64
812×add-log-exp_binary64
812×log1p-expm1-u_binary64
812×expm1-log1p-u_binary64
793×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify122.0ms (1.1%)

Algorithm
egg-herbie
Rules
1145×fma-neg_binary64
660×fma-def_binary64
418×unswap-sqr_binary64
402×associate--r-_binary64
338×sqr-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
032373
192298
2197298
3409298
4804298
51640298
64067298
75407298
85590298
95773298
106001298
116338298
Stop Event
node limit
Counts
129 → 103
Calls
Call 1
Inputs
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 -1 y)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(*.f64 -1 y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
Outputs
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))) (cbrt.f64 -1))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 -1 y)
(neg.f64 y)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x)))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x))))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)) (*.f64 -1 y))
(fma.f64 -1 y (*.f64 1 (*.f64 (log.f64 y) x)))
(-.f64 (*.f64 (log.f64 y) x) y)
(fma.f64 (log.f64 y) x (neg.f64 y))

localize20.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
Compiler

Compiled 22 to 8 computations (63.6% saved)

series47.0ms (0.4%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
25.0ms
t
@inf
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
9.0ms
t
@-inf
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
7.0ms
t
@0
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
3.0ms
y
@0
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))
1.0ms
z
@0
(+.f64 (-.f64 (neg.f64 y) z) (log.f64 t))

rewrite59.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
993×pow1_binary64
924×add-log-exp_binary64
923×log1p-expm1-u_binary64
923×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify189.0ms (1.7%)

Algorithm
egg-herbie
Rules
1932×fma-neg_binary64
1056×associate--r-_binary64
693×fma-def_binary64
578×associate--l-_binary64
348×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027294
170294
2128294
3355294
4976294
52524294
64624294
75118294
85227294
95262294
105262294
115266294
125266294
Stop Event
node limit
Counts
79 → 55
Calls
Call 1
Inputs
(-.f64 (log.f64 t) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(*.f64 -1 y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(*.f64 -1 y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(*.f64 -1 z)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(*.f64 -1 z)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
Outputs
(-.f64 (log.f64 t) z)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(*.f64 -1 y)
(neg.f64 y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(*.f64 -1 y)
(neg.f64 y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 y) (log.f64 t)) z)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(*.f64 -1 z)
(neg.f64 z)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(*.f64 -1 z)
(neg.f64 z)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (*.f64 -1 z) (log.f64 t)) y)
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (log.f64 t) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) (+.f64 y z))
(-.f64 (log.f64 t) (+.f64 z y))
(-.f64 (-.f64 (log.f64 t) z) y)

localize37.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))) y)
0.0b
(log1p.f64 (*.f64 x (log.f64 y)))
0.3b
(*.f64 x (log.f64 y))
1.6b
(expm1.f64 (log1p.f64 (*.f64 x (log.f64 y))))
Compiler

Compiled 58 to 12 computations (79.3% saved)

series100.0ms (0.9%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
32.0ms
y
@-inf
(log1p.f64 (*.f64 x (log.f64 y)))
28.0ms
y
@0
(log1p.f64 (*.f64 x (log.f64 y)))
28.0ms
y
@inf
(log1p.f64 (*.f64 x (log.f64 y)))
2.0ms
y
@0
(-.f64 (expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))) y)
1.0ms
x
@0
(log1p.f64 (*.f64 x (log.f64 y)))

rewrite87.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
781×pow1_binary64
723×add-log-exp_binary64
723×expm1-log1p-u_binary64
722×log1p-expm1-u_binary64
707×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify106.0ms (1%)

Algorithm
egg-herbie
Rules
607×unsub-neg_binary64
347×*-commutative_binary64
300×unswap-sqr_binary64
280×associate-+l-_binary64
263×+-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
079815
1223791
2631788
32539786
47011773
Stop Event
node limit
Counts
152 → 110
Calls
Call 1
Inputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (log.f64 (log.f64 y))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (log.f64 (log.f64 y)))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (+.f64 (log.f64 (log.f64 y)) (*.f64 1/3 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (*.f64 -1 (log.f64 (/.f64 -1 x))))
(+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (/.f64 1 (*.f64 (log.f64 y) x))))
(-.f64 (+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (/.f64 1 (*.f64 (log.f64 y) x)))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (*.f64 1/3 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
Outputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))))
(fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))
(fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))
(*.f64 x (+.f64 (log.f64 y) (*.f64 x (*.f64 -1/2 (pow.f64 (log.f64 y) 2)))))
(*.f64 (log.f64 y) (+.f64 x (*.f64 -1/2 (*.f64 (log.f64 y) (*.f64 x x)))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(fma.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)) (fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))))
(fma.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)) (fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))))))
(fma.f64 (log.f64 y) x (*.f64 (*.f64 x x) (+.f64 (*.f64 x (*.f64 1/3 (pow.f64 (log.f64 y) 3))) (*.f64 -1/2 (pow.f64 (log.f64 y) 2)))))
(*.f64 x (+.f64 (log.f64 y) (*.f64 x (+.f64 (*.f64 -1/2 (pow.f64 (log.f64 y) 2)) (*.f64 x (*.f64 1/3 (pow.f64 (log.f64 y) 3)))))))
(fma.f64 1/3 (pow.f64 (*.f64 (log.f64 y) x) 3) (*.f64 (log.f64 y) (+.f64 x (*.f64 -1/2 (*.f64 (log.f64 y) (*.f64 x x))))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))))))
(fma.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4)) (fma.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)) (fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))))
(fma.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4)) (fma.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)) (fma.f64 (log.f64 y) x (*.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))))
(fma.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3)) (fma.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4)) (*.f64 x (+.f64 (log.f64 y) (*.f64 x (*.f64 -1/2 (pow.f64 (log.f64 y) 2)))))))
(fma.f64 -1/4 (*.f64 (pow.f64 (log.f64 y) 4) (pow.f64 x 4)) (*.f64 x (+.f64 (log.f64 y) (*.f64 x (+.f64 (*.f64 -1/2 (pow.f64 (log.f64 y) 2)) (*.f64 x (*.f64 1/3 (pow.f64 (log.f64 y) 3))))))))
(fma.f64 1/3 (pow.f64 (*.f64 (log.f64 y) x) 3) (fma.f64 -1/4 (pow.f64 (*.f64 (log.f64 y) x) 4) (*.f64 (log.f64 y) (+.f64 x (*.f64 -1/2 (*.f64 (log.f64 y) (*.f64 x x)))))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 y)))
(fma.f64 -1 (neg.f64 (log.f64 x)) (log.f64 (log.f64 y)))
(+.f64 (log.f64 x) (log.f64 (log.f64 y)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (log.f64 (log.f64 y))))
(fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))))
(+.f64 (log.f64 (log.f64 y)) (+.f64 (log.f64 x) (/.f64 (/.f64 1 x) (log.f64 y))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (log.f64 (log.f64 y)))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x)))) (/.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))))
(+.f64 (log.f64 (log.f64 y)) (+.f64 (log.f64 x) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (+.f64 (log.f64 (log.f64 y)) (*.f64 1/3 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))) (/.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (-.f64 (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (/.f64 1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (/.f64 (/.f64 1/3 (pow.f64 (log.f64 y) 3)) (pow.f64 x 3)))) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1/3 (pow.f64 (*.f64 (log.f64 y) x) 3)) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (*.f64 -1 (log.f64 (/.f64 -1 x))))
(fma.f64 -1 (neg.f64 (log.f64 x)) (log.f64 (log.f64 y)))
(+.f64 (log.f64 x) (log.f64 (log.f64 y)))
(+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (/.f64 1 (*.f64 (log.f64 y) x))))
(fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))))
(+.f64 (log.f64 (log.f64 y)) (+.f64 (log.f64 x) (/.f64 (/.f64 1 x) (log.f64 y))))
(-.f64 (+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (/.f64 1 (*.f64 (log.f64 y) x)))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x)))) (/.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))))
(+.f64 (log.f64 (log.f64 y)) (+.f64 (log.f64 x) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2)))))
(-.f64 (+.f64 (log.f64 (*.f64 -1 (log.f64 y))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (*.f64 1/3 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))))) (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))))) (/.f64 1/2 (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (/.f64 1 (*.f64 (log.f64 y) x))) (-.f64 (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (/.f64 1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))))))
(+.f64 (log.f64 x) (+.f64 (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1 (*.f64 (log.f64 y) x)) (/.f64 (/.f64 1/3 (pow.f64 (log.f64 y) 3)) (pow.f64 x 3)))) (/.f64 -1/2 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1/3 (*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2))))))
(+.f64 (log.f64 x) (+.f64 (log.f64 (log.f64 y)) (+.f64 (/.f64 1/3 (pow.f64 (*.f64 (log.f64 y) x) 3)) (-.f64 (/.f64 (/.f64 1 x) (log.f64 y)) (/.f64 (/.f64 (/.f64 1/2 x) x) (pow.f64 (log.f64 y) 2))))))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (log.f64 y) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(log.f64 (+.f64 1 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)))
(log1p.f64 (*.f64 (log.f64 y) x))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3)) y)
0.2b
(pow.f64 (*.f64 x (log.f64 y)) 3)
0.3b
(*.f64 x (log.f64 y))
40.7b
(cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3))
Compiler

Compiled 64 to 28 computations (56.3% saved)

series11.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

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

rewrite107.0ms (1%)

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

Useful iterations: 0 (0.0ms)

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

simplify78.0ms (0.7%)

Algorithm
egg-herbie
Rules
434×distribute-rgt-neg-in_binary64
397×associate-+l+_binary64
355×unswap-sqr_binary64
354×distribute-rgt-in_binary64
343×unsub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
034680
1102671
2336671
31409671
44199671
Stop Event
node limit
Counts
163 → 105
Calls
Call 1
Inputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 -1 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
Outputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) x) (neg.f64 (cbrt.f64 -1)))
(*.f64 (log.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) x) (neg.f64 (cbrt.f64 -1)))
(*.f64 (log.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) x) (neg.f64 (cbrt.f64 -1)))
(*.f64 (log.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -1))))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) x) (neg.f64 (cbrt.f64 -1)))
(*.f64 (log.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -1))))
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 3) (pow.f64 x 3)))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 3) (pow.f64 x 3))
(*.f64 (pow.f64 (log.f64 y) 3) (pow.f64 x 3))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) x) (neg.f64 (cbrt.f64 -1)))
(*.f64 (log.f64 y) (*.f64 x (neg.f64 (cbrt.f64 -1))))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(*.f64 -1 (+.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)) y))
(neg.f64 (fma.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1) y))
(neg.f64 (fma.f64 (log.f64 y) (*.f64 x (cbrt.f64 -1)) y))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(*.f64 -1 (+.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)) y))
(neg.f64 (fma.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1) y))
(neg.f64 (fma.f64 (log.f64 y) (*.f64 x (cbrt.f64 -1)) y))
(+.f64 (*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x))) (*.f64 -1 y))
(*.f64 -1 (+.f64 (*.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1)) y))
(neg.f64 (fma.f64 (*.f64 (log.f64 y) x) (cbrt.f64 -1) y))
(neg.f64 (fma.f64 (log.f64 y) (*.f64 x (cbrt.f64 -1)) y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)

localize86.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 x (log.f64 y)) 2)
0.3b
(*.f64 x (log.f64 y))
4.2b
(-.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (*.f64 (neg.f64 y) (neg.f64 y)))
28.9b
(/.f64 (-.f64 (pow.f64 (*.f64 x (log.f64 y)) 2) (*.f64 (neg.f64 y) (neg.f64 y))) (-.f64 (*.f64 x (log.f64 y)) (neg.f64 y)))
Compiler

Compiled 116 to 31 computations (73.3% saved)

series9.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

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

rewrite161.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
576×log-prod_binary64
362×fma-def_binary64
279×pow2_binary64
252×pow-unpow_binary64
238×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify68.0ms (0.6%)

Algorithm
egg-herbie
Rules
851×unswap-sqr_binary64
651×associate-*l*_binary64
570×associate-*r*_binary64
513×fma-neg_binary64
364×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
034873
188855
2198855
3753855
44818855
Stop Event
node limit
Counts
384 → 328
Calls
Call 1
Inputs
(*.f64 -1 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(*.f64 -1 (pow.f64 y 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(*.f64 -1 (pow.f64 y 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(*.f64 -1 (pow.f64 y 2))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
Outputs
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 (pow.f64 y 2))
(neg.f64 (*.f64 y y))
(*.f64 y (neg.f64 y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 -1 (pow.f64 y 2))
(neg.f64 (*.f64 y y))
(*.f64 y (neg.f64 y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 -1 (pow.f64 y 2)) (*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 -1 (pow.f64 y 2))
(neg.f64 (*.f64 y y))
(*.f64 y (neg.f64 y))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(+.f64 (*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2)) (*.f64 -1 (pow.f64 y 2)))
(fma.f64 -1 (*.f64 y y) (*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2))) (*.f64 y y))
(-.f64 (*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2)) (*.f64 y y))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 y) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (log.f64 (/.f64 1 y)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))
(*.f64 (pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (log.f64 y) 2) (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (log.f64 y) 2)))
(*.f64 (*.f64 x x) (pow.f64 (log.f64 y) 2))

eval373.0ms (3.4%)

Compiler

Compiled 16930 to 5774 computations (65.9% saved)

prune163.0ms (1.5%)

Pruning

21 alts after pruning (17 fresh and 4 done)

PrunedKeptTotal
New75417771
Fresh202
Picked101
Done145
Total75821779
Error
0b
Counts
779 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
45.7b
(neg.f64 y)
31.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x)) y) z) (log.f64 t))
18.8b
(+.f64 (-.f64 (pow.f64 (/.f64 1 (fma.f64 x (log.f64 y) y)) -1) z) (log.f64 t))
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 x)) 3) y) z) (log.f64 t))
19.0b
(+.f64 (-.f64 (fma.f64 (cbrt.f64 (pow.f64 (log.f64 y) 2)) (*.f64 (cbrt.f64 (log.f64 y)) x) y) z) (log.f64 t))
36.1b
(-.f64 (+.f64 (log.f64 t) y) z)
16.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x)) y) z) (log.f64 t))
18.3b
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
0.1b
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
32.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 x (sqrt.f64 (log.f64 y))) (sqrt.f64 (log.f64 y))) y) z) (log.f64 t))
0.5b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 x (log.f64 y)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 x (log.f64 y))))) y) z) (log.f64 t))
22.3b
(+.f64 (-.f64 (-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3)) y) z) (log.f64 t))
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x)) y) z) (log.f64 t))
18.3b
(-.f64 (-.f64 (log.f64 t) z) y)
36.3b
(-.f64 (log.f64 t) y)
19.1b
(+.f64 (-.f64 (*.f64 (/.f64 (fma.f64 x (log.f64 y) y) (pow.f64 (cbrt.f64 (fma.f64 x (log.f64 y) y)) 2)) (/.f64 (fma.f64 x (log.f64 y) y) (cbrt.f64 (fma.f64 x (log.f64 y) y)))) z) (log.f64 t))
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3) y) z) (log.f64 t))
45.0b
(neg.f64 z)
35.7b
(-.f64 (log.f64 t) z)
15.6b
(+.f64 (-.f64 (-.f64 (expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))) y) z) (log.f64 t))
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 y))) y) z) (log.f64 t))
Compiler

Compiled 650 to 418 computations (35.7% saved)

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 y)))
0.4b
(*.f64 (cbrt.f64 x) (log.f64 y))
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.6b
(cbrt.f64 x)
Compiler

Compiled 77 to 29 computations (62.3% saved)

series14.0ms (0.1%)

Counts
4 → 36
Calls

18 calls:

TimeVariablePointExpression
4.0ms
y
@0
(*.f64 (cbrt.f64 x) (log.f64 y))
1.0ms
x
@-inf
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 y)))
1.0ms
x
@-inf
(pow.f64 (cbrt.f64 x) 2)
1.0ms
x
@-inf
(*.f64 (cbrt.f64 x) (log.f64 y))
1.0ms
x
@0
(*.f64 (cbrt.f64 x) (log.f64 y))

rewrite69.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
742×pow1_binary64
683×add-log-exp_binary64
683×log1p-expm1-u_binary64
683×expm1-log1p-u_binary64
667×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify85.0ms (0.8%)

Algorithm
egg-herbie
Rules
546×fma-neg_binary64
537×unsub-neg_binary64
527×fma-def_binary64
347×distribute-rgt-out--_binary64
322×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024240
163240
2164240
3441240
41267240
53218240
65890240
77634240
Stop Event
node limit
Counts
99 → 71
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
Outputs
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 x) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 x) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 x) (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize15.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (log.f64 t) y)
Compiler

Compiled 19 to 7 computations (63.2% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
t
@0
(+.f64 (log.f64 t) y)
1.0ms
t
@inf
(+.f64 (log.f64 t) y)
0.0ms
t
@-inf
(+.f64 (log.f64 t) y)
0.0ms
y
@-inf
(+.f64 (log.f64 t) y)
0.0ms
y
@0
(+.f64 (log.f64 t) y)

rewrite77.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
585×pow1_binary64
544×add-log-exp_binary64
544×log1p-expm1-u_binary64
544×expm1-log1p-u_binary64
532×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify274.0ms (2.5%)

Algorithm
egg-herbie
Rules
3127×fma-neg_binary64
818×distribute-rgt-in_binary64
521×distribute-lft-in_binary64
484×fma-def_binary64
467×distribute-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017131
133131
254131
3121131
4243131
5698131
62125131
74387131
84855131
94978131
105008131
115010131
125010131
135064131
145564131
156207131
166824131
177120131
187210131
197252131
207322131
217386131
227386131
Stop Event
node limit
Counts
57 → 38
Calls
Call 1
Inputs
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(log.f64 t)
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
y
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
y
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
Outputs
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (log.f64 t))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (log.f64 t))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (log.f64 t))
(+.f64 y (*.f64 -1 (log.f64 (/.f64 1 t))))
(+.f64 y (log.f64 t))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (log.f64 t))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (log.f64 t))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (log.f64 t))
(+.f64 y (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))))
(+.f64 y (log.f64 t))
(log.f64 t)
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
y
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
y
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))
(+.f64 y (log.f64 t))

localize37.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x)) y)
0.2b
(*.f64 (log.f64 y) (sqrt.f64 x))
0.2b
(*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x))
Compiler

Compiled 64 to 12 computations (81.3% saved)

series17.0ms (0.2%)

Counts
3 → 56
Calls

18 calls:

TimeVariablePointExpression
2.0ms
y
@-inf
(*.f64 (log.f64 y) (sqrt.f64 x))
2.0ms
x
@-inf
(*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x))
1.0ms
x
@0
(*.f64 (log.f64 y) (sqrt.f64 x))
1.0ms
x
@-inf
(*.f64 (log.f64 y) (sqrt.f64 x))
1.0ms
y
@0
(*.f64 (log.f64 y) (sqrt.f64 x))

rewrite108.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
877×pow1_binary64
812×add-log-exp_binary64
812×log1p-expm1-u_binary64
812×expm1-log1p-u_binary64
793×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify75.0ms (0.7%)

Algorithm
egg-herbie
Rules
621×fma-def_binary64
582×unsub-neg_binary64
572×fma-neg_binary64
300×distribute-rgt-in_binary64
296×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
031429
178429
2201397
3463397
41394397
54203397
67165397
Stop Event
node limit
Counts
118 → 76
Calls
Call 1
Inputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(*.f64 -1 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
Outputs
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) (sqrt.f64 x)))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) (sqrt.f64 x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) (sqrt.f64 x)))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 (sqrt.f64 x)))
(*.f64 (log.f64 y) (sqrt.f64 x))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 y))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x)))
(*.f64 (log.f64 y) x)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)
(+.f64 (*.f64 -1 y) (*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (log.f64 y) x))))
(fma.f64 (log.f64 y) x (neg.f64 y))
(-.f64 (*.f64 (log.f64 y) x) y)

localize31.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (log.f64 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))
0.4b
(*.f64 (log.f64 y) (pow.f64 (cbrt.f64 x) 2))
0.5b
(pow.f64 (cbrt.f64 x) 2)
0.6b
(cbrt.f64 x)
Compiler

Compiled 79 to 35 computations (55.7% saved)

series13.0ms (0.1%)

Counts
2 → 36
Calls

12 calls:

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

rewrite58.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
739×pow1_binary64
680×add-log-exp_binary64
680×log1p-expm1-u_binary64
680×expm1-log1p-u_binary64
664×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify74.0ms (0.7%)

Algorithm
egg-herbie
Rules
574×fma-neg_binary64
558×fma-def_binary64
539×unsub-neg_binary64
331×distribute-rgt-in_binary64
286×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026276
167276
2156276
3441276
41448276
53866276
67100276
Stop Event
node limit
Counts
62 → 34
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
Outputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))

eval154.0ms (1.4%)

Compiler

Compiled 5265 to 2238 computations (57.5% saved)

prune83.0ms (0.8%)

Pruning

19 alts after pruning (11 fresh and 8 done)

PrunedKeptTotal
New2914295
Fresh5712
Picked011
Done178
Total29719316
Error
0b
Counts
316 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
45.0b
(neg.f64 z)
45.2b
(-.f64 y z)
45.7b
(neg.f64 y)
31.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x)) y) z) (log.f64 t))
18.8b
(+.f64 (-.f64 (pow.f64 (/.f64 1 (fma.f64 x (log.f64 y) y)) -1) z) (log.f64 t))
31.9b
(+.f64 (-.f64 (-.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (log.f64 y) (sqrt.f64 x))) 3) (sqrt.f64 x)) y) z) (log.f64 t))
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 x)) 3) y) z) (log.f64 t))
0.1b
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
32.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 x (sqrt.f64 (log.f64 y))) (sqrt.f64 (log.f64 y))) y) z) (log.f64 t))
15.6b
(+.f64 (-.f64 (-.f64 (expm1.f64 (log1p.f64 (*.f64 x (log.f64 y)))) y) z) (log.f64 t))
16.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x)) y) z) (log.f64 t))
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x)) y) z) (log.f64 t))
18.3b
(-.f64 (-.f64 (log.f64 t) z) y)
36.3b
(-.f64 (log.f64 t) y)
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3) y) z) (log.f64 t))
9.6b
(+.f64 (-.f64 (-.f64 (*.f64 (sqrt.f64 (*.f64 x (cbrt.f64 x))) (*.f64 (cbrt.f64 x) (log.f64 y))) y) z) (log.f64 t))
18.3b
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
22.3b
(+.f64 (-.f64 (-.f64 (cbrt.f64 (pow.f64 (*.f64 x (log.f64 y)) 3)) y) z) (log.f64 t))
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 y))) y) z) (log.f64 t))
Compiler

Compiled 467 to 321 computations (31.3% saved)

localize49.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 x))
0.5b
(cbrt.f64 (log.f64 y))
0.6b
(cbrt.f64 x)
0.7b
(pow.f64 (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 x)) 3)
Compiler

Compiled 69 to 24 computations (65.2% saved)

series15.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite89.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
744×pow1_binary64
692×add-log-exp_binary64
692×log1p-expm1-u_binary64
692×expm1-log1p-u_binary64
671×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify146.0ms (1.3%)

Algorithm
egg-herbie
Rules
942×fma-neg_binary64
836×unswap-sqr_binary64
723×fma-def_binary64
483×sqr-pow_binary64
303×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
033320
194284
2177284
3355284
4705284
51662284
63531284
75722284
86363284
96714284
107148284
117785284
Stop Event
node limit
Counts
95 → 69
Calls
Call 1
Inputs
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(pow.f64 (log.f64 y) 1/3)
(pow.f64 (log.f64 y) 1/3)
(pow.f64 (log.f64 y) 1/3)
(pow.f64 (log.f64 y) 1/3)
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
Outputs
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 y) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (pow.f64 1 1/3) (*.f64 (log.f64 (/.f64 1 y)) x)))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(*.f64 (pow.f64 1 1/3) (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x))
(*.f64 1 (*.f64 (log.f64 y) x))
(*.f64 (log.f64 y) x)
(pow.f64 (log.f64 y) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (log.f64 y) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (log.f64 y) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (log.f64 y) 1/3)
(cbrt.f64 (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 y))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (log.f64 y))))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 y))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (log.f64 y))))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 y))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (log.f64 y))))
(*.f64 (pow.f64 (*.f64 1 (log.f64 (/.f64 1 y))) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 (neg.f64 (log.f64 y))) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (log.f64 y))))
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) 1/3)
(cbrt.f64 (log.f64 y))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (log.f64 y) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))))
(*.f64 (pow.f64 (*.f64 1 (*.f64 (log.f64 (/.f64 1 y)) x)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 x (neg.f64 (log.f64 y)))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (neg.f64 (*.f64 (log.f64 y) x))))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 (log.f64 y) (neg.f64 x))))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))
(pow.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) 1/3)
(cbrt.f64 (*.f64 (log.f64 y) x))

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (log.f64 t) y)
Compiler

Compiled 12 to 6 computations (50% saved)

series2.0ms (0%)

Counts
1 → 20
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(-.f64 (log.f64 t) y)
0.0ms
t
@-inf
(-.f64 (log.f64 t) y)
0.0ms
t
@0
(-.f64 (log.f64 t) y)
0.0ms
t
@inf
(-.f64 (log.f64 t) y)
0.0ms
y
@0
(-.f64 (log.f64 t) y)

rewrite60.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
595×pow1_binary64
553×add-log-exp_binary64
553×log1p-expm1-u_binary64
553×expm1-log1p-u_binary64
541×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify160.0ms (1.5%)

Algorithm
egg-herbie
Rules
2071×fma-neg_binary64
848×distribute-rgt-in_binary64
579×distribute-lft-in_binary64
465×unsub-neg_binary64
289×distribute-neg-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018179
139111
265111
3157111
4369111
5934111
62456111
74367111
84756111
94880111
104915111
114918111
124918111
136132111
146655111
157291111
167942111
Stop Event
node limit
Counts
55 → 42
Calls
Call 1
Inputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(log.f64 t)
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
(*.f64 -1 y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
(+.f64 (*.f64 -1 y) (log.f64 t))
Outputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 t))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(-.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t)))) y)
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(log.f64 t)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)
(+.f64 (*.f64 -1 y) (log.f64 t))
(-.f64 (neg.f64 (neg.f64 (log.f64 t))) y)
(-.f64 (log.f64 t) y)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 9 computations (71% saved)

series28.0ms (0.3%)

Counts
2 → 56
Calls

18 calls:

TimeVariablePointExpression
10.0ms
y
@0
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
7.0ms
t
@0
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
3.0ms
y
@-inf
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
2.0ms
z
@0
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
2.0ms
x
@0
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))

rewrite76.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
538×log-prod_binary64
523×fma-def_binary64
370×pow-prod-down_binary64
303×fma-neg_binary64
297×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify121.0ms (1.1%)

Algorithm
egg-herbie
Rules
691×unsub-neg_binary64
570×sub-neg_binary64
556×fma-def_binary64
370×distribute-neg-in_binary64
366×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
040625
196625
2205585
3579585
41719585
54702585
66086585
77228585
87839585
97914585
Stop Event
node limit
Counts
166 → 126
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (log.f64 t) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(*.f64 (log.f64 y) x)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(*.f64 (log.f64 y) x)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(+.f64 (*.f64 (log.f64 y) x) (log.f64 t))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(*.f64 -1 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
Outputs
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x)) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (log.f64 t) z)
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(*.f64 (log.f64 y) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(*.f64 (log.f64 y) x)
(neg.f64 (*.f64 (neg.f64 (log.f64 y)) x))
(*.f64 (neg.f64 (log.f64 y)) (neg.f64 x))
(*.f64 x (log.f64 y))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 (log.f64 y) x) (log.f64 t))
(fma.f64 (log.f64 y) x (log.f64 t))
(fma.f64 x (log.f64 y) (log.f64 t))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(*.f64 -1 z)
(neg.f64 z)
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(+.f64 (*.f64 -1 z) (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)))
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (log.f64 t)) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (*.f64 -1 (log.f64 (/.f64 1 t)))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
(-.f64 (+.f64 (*.f64 (log.f64 y) x) (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 t))))) z)
(-.f64 (fma.f64 (log.f64 y) x (log.f64 t)) z)
(-.f64 (fma.f64 x (log.f64 y) (log.f64 t)) z)
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (log.f64 y) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))
0.4b
(*.f64 (log.f64 y) (cbrt.f64 (*.f64 x x)))
0.6b
(cbrt.f64 x)
31.5b
(cbrt.f64 (*.f64 x x))
Compiler

Compiled 81 to 14 computations (82.7% saved)

series9.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite66.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
729×pow1_binary64
670×add-log-exp_binary64
670×log1p-expm1-u_binary64
670×expm1-log1p-u_binary64
651×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify64.0ms (0.6%)

Algorithm
egg-herbie
Rules
707×fma-def_binary64
622×fma-neg_binary64
411×distribute-rgt-in_binary64
400×unsub-neg_binary64
373×distribute-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029304
177304
2194304
3529304
41724304
54679304
Stop Event
node limit
Counts
84 → 58
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 (log.f64 y) x)
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
Outputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 y))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (log.f64 (/.f64 1 y))))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 x 2)) 1/3) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)))
(*.f64 (cbrt.f64 (*.f64 x x)) (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (log.f64 (/.f64 1 y)) x))
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 y))) (log.f64 -1)) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 (log.f64 y) x)
(*.f64 x (log.f64 y))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 x (log.f64 y)) (cbrt.f64 -1)))
(*.f64 (neg.f64 (*.f64 x (log.f64 y))) (cbrt.f64 -1))
(*.f64 x (*.f64 (log.f64 y) (neg.f64 (cbrt.f64 -1))))
(*.f64 (neg.f64 (log.f64 y)) (*.f64 x (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) (neg.f64 x)) (cbrt.f64 -1))
(*.f64 x (*.f64 (neg.f64 (log.f64 y)) (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 x (log.f64 y)) (cbrt.f64 -1)))
(*.f64 (neg.f64 (*.f64 x (log.f64 y))) (cbrt.f64 -1))
(*.f64 x (*.f64 (log.f64 y) (neg.f64 (cbrt.f64 -1))))
(*.f64 (neg.f64 (log.f64 y)) (*.f64 x (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) (neg.f64 x)) (cbrt.f64 -1))
(*.f64 x (*.f64 (neg.f64 (log.f64 y)) (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 x (log.f64 y)) (cbrt.f64 -1)))
(*.f64 (neg.f64 (*.f64 x (log.f64 y))) (cbrt.f64 -1))
(*.f64 x (*.f64 (log.f64 y) (neg.f64 (cbrt.f64 -1))))
(*.f64 (neg.f64 (log.f64 y)) (*.f64 x (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) (neg.f64 x)) (cbrt.f64 -1))
(*.f64 x (*.f64 (neg.f64 (log.f64 y)) (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) (*.f64 (log.f64 y) x)))
(neg.f64 (*.f64 (*.f64 x (log.f64 y)) (cbrt.f64 -1)))
(*.f64 (neg.f64 (*.f64 x (log.f64 y))) (cbrt.f64 -1))
(*.f64 x (*.f64 (log.f64 y) (neg.f64 (cbrt.f64 -1))))
(*.f64 (neg.f64 (log.f64 y)) (*.f64 x (cbrt.f64 -1)))
(*.f64 (*.f64 (log.f64 y) (neg.f64 x)) (cbrt.f64 -1))
(*.f64 x (*.f64 (neg.f64 (log.f64 y)) (cbrt.f64 -1)))

eval81.0ms (0.7%)

Compiler

Compiled 5421 to 2045 computations (62.3% saved)

prune67.0ms (0.6%)

Pruning

23 alts after pruning (12 fresh and 11 done)

PrunedKeptTotal
New3296335
Fresh066
Picked011
Done21012
Total33123354
Error
0b
Counts
354 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (cbrt.f64 (*.f64 x (log.f64 y))) 3) y) z) (log.f64 t))
31.2b
(+.f64 (-.f64 (expm1.f64 (log1p.f64 (*.f64 (log.f64 y) x))) z) (log.f64 t))
45.0b
(neg.f64 z)
45.2b
(-.f64 y z)
45.7b
(neg.f64 y)
31.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (sqrt.f64 x)) (sqrt.f64 x)) y) z) (log.f64 t))
18.8b
(+.f64 (-.f64 (pow.f64 (/.f64 1 (fma.f64 x (log.f64 y) y)) -1) z) (log.f64 t))
31.9b
(+.f64 (-.f64 (-.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (log.f64 y) (sqrt.f64 x))) 3) (sqrt.f64 x)) y) z) (log.f64 t))
0.4b
(+.f64 (-.f64 (-.f64 (pow.f64 (*.f64 (cbrt.f64 (log.f64 y)) (cbrt.f64 x)) 3) y) z) (log.f64 t))
35.9b
(+.f64 (*.f64 (log.f64 y) x) (log.f64 t))
9.6b
(+.f64 (-.f64 (-.f64 (*.f64 (sqrt.f64 (*.f64 x (cbrt.f64 x))) (*.f64 (cbrt.f64 x) (log.f64 y))) y) z) (log.f64 t))
18.5b
(+.f64 (-.f64 (pow.f64 (cbrt.f64 (*.f64 (log.f64 y) x)) 3) z) (log.f64 t))
0.1b
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
32.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 x (sqrt.f64 (log.f64 y))) (sqrt.f64 (log.f64 y))) y) z) (log.f64 t))
18.2b
(fma.f64 x (log.f64 y) (-.f64 (log.f64 t) z))
53.1b
(log.f64 t)
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (log.f64 y))) y) z) (log.f64 t))
0.3b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x)) y) z) (log.f64 t))
18.3b
(-.f64 (-.f64 (log.f64 t) z) y)
36.3b
(-.f64 (log.f64 t) y)
45.4b
(*.f64 (log.f64 y) x)
18.3b
(+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))
16.8b
(+.f64 (-.f64 (-.f64 (*.f64 (*.f64 (log.f64 y) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x)) y) z) (log.f64 t))
Compiler

Compiled 334 to 232 computations (30.5% saved)

regimes241.0ms (2.2%)

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

8 calls:

39.0ms
t
36.0ms
z
36.0ms
x
35.0ms
y
24.0ms
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1t
0.1b1(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
0.1b1(-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z)
0.1b1(-.f64 (*.f64 x (log.f64 y)) y)
0.1b1(log.f64 t)
Compiler

Compiled 534 to 213 computations (60.1% saved)

regimes596.0ms (5.4%)

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

5 calls:

229.0ms
y
157.0ms
z
85.0ms
(log.f64 t)
84.0ms
t
35.0ms
x
Results
ErrorSegmentsBranch
5.1b3x
6.2b2y
12.3b6z
12.0b6t
12.0b6(log.f64 t)
Compiler

Compiled 86 to 41 computations (52.3% saved)

bsearch63.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
7.191480651188808e+83
2.6481899125604566e+84
32.0ms
-2.261404597977201e+20
-3618579072759186000.0
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes108.0ms (1%)

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

5 calls:

36.0ms
y
33.0ms
z
21.0ms
x
8.0ms
(log.f64 t)
7.0ms
t
Results
ErrorSegmentsBranch
7.1b3x
13.9b4y
15.4b5z
18.3b1t
18.3b1(log.f64 t)
Compiler

Compiled 77 to 39 computations (49.4% saved)

bsearch110.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
56.0ms
5.368561610567112e+192
2.1003440078909923e+197
53.0ms
-4.8557743168134363e+114
-2.2997867137467763e+110
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes263.0ms (2.4%)

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

5 calls:

83.0ms
(log.f64 t)
75.0ms
t
37.0ms
z
34.0ms
y
31.0ms
x
Results
ErrorSegmentsBranch
19.0b6x
22.5b5y
20.1b6z
30.6b7t
30.6b7(log.f64 t)
Compiler

Compiled 57 to 35 computations (38.6% saved)

bsearch151.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
5.368561610567112e+192
2.1003440078909923e+197
30.0ms
8.499481573088827e-16
1.5703305243321596e-8
30.0ms
8.404521794597546e-201
4.4029899575007015e-197
30.0ms
-1.1113134890164492e-290
-3.908405487200831e-295
30.0ms
-3618579072759186000.0
-134908496325744770.0
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes176.0ms (1.6%)

Counts
6 → 6
Calls
Call 1
Inputs
(neg.f64 y)
(neg.f64 z)
(-.f64 y z)
(log.f64 t)
(*.f64 (log.f64 y) x)
(-.f64 (log.f64 t) y)
Outputs
(neg.f64 z)
(-.f64 (log.f64 t) y)
(*.f64 (log.f64 y) x)
(neg.f64 y)
(*.f64 (log.f64 y) x)
(neg.f64 z)
Calls

5 calls:

44.0ms
y
41.0ms
t
39.0ms
(log.f64 t)
32.0ms
z
18.0ms
x
Results
ErrorSegmentsBranch
21.2b4x
27.1b9y
20.1b6z
30.5b8t
30.5b8(log.f64 t)
Compiler

Compiled 47 to 32 computations (31.9% saved)

bsearch260.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
58.0ms
8.313665891363955e+82
1.1007935204922219e+83
54.0ms
2.764459183665156e+74
4.788488374754776e+77
55.0ms
2.514114965436963e+47
4.676941153685558e+51
56.0ms
5.430179332096134e-18
1.9112240476579282e-9
37.0ms
-7.470159941709671e+43
-1.0648649289358617e+35
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes278.0ms (2.5%)

Counts
5 → 11
Calls
Call 1
Inputs
(neg.f64 y)
(neg.f64 z)
(-.f64 y z)
(log.f64 t)
(*.f64 (log.f64 y) x)
Outputs
(*.f64 (log.f64 y) x)
(neg.f64 z)
(neg.f64 y)
(log.f64 t)
(neg.f64 y)
(neg.f64 z)
(log.f64 t)
(-.f64 y z)
(neg.f64 y)
(neg.f64 z)
(*.f64 (log.f64 y) x)
Calls

5 calls:

88.0ms
(log.f64 t)
58.0ms
z
54.0ms
t
46.0ms
x
29.0ms
y
Results
ErrorSegmentsBranch
25.3b11x
28.4b6y
26.0b12z
35.1b13t
35.1b13(log.f64 t)
Compiler

Compiled 43 to 31 computations (27.9% saved)

bsearch316.0ms (2.9%)

Algorithm
10×binary-search
Steps
TimeLeftRight
31.0ms
5.368561610567112e+192
2.1003440078909923e+197
32.0ms
8.164223165411411e-7
2.969824291207106e-6
30.0ms
4.4029899575007015e-197
4.095145977113013e-192
31.0ms
4.965744243032282e-244
3.556471285645344e-239
35.0ms
4.001065192217184e-267
8.979069248948905e-266
31.0ms
-1.1113134890164492e-290
-3.908405487200831e-295
30.0ms
-4.226420299713934e-41
-2.2080544482965073e-42
35.0ms
-1.350305810631241e-25
-2.2675798577552216e-29
31.0ms
-3.7059870816866355e-5
-5.025008014117184e-12
31.0ms
-6.415301983820407e+57
-6.870532072918821e+50
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes106.0ms (1%)

Counts
4 → 9
Calls
Call 1
Inputs
(neg.f64 y)
(neg.f64 z)
(-.f64 y z)
(log.f64 t)
Outputs
(neg.f64 z)
(neg.f64 y)
(log.f64 t)
(neg.f64 y)
(log.f64 t)
(neg.f64 y)
(log.f64 t)
(neg.f64 y)
(-.f64 y z)
Calls

5 calls:

34.0ms
z
26.0ms
x
20.0ms
y
12.0ms
t
11.0ms
(log.f64 t)
Results
ErrorSegmentsBranch
39.4b6x
31.9b4y
28.6b9z
42.1b2t
42.1b2(log.f64 t)
Compiler

Compiled 39 to 29 computations (25.6% saved)

bsearch289.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
45.0ms
7.50035277431111e+81
8.313665891363955e+82
34.0ms
7.183965880350874e-137
9.249375418145293e-134
33.0ms
9.575177735515063e-203
1.2130666441297684e-201
34.0ms
-5.946048270717707e-266
-9.782553080653854e-272
43.0ms
-3.0894365090748594e-217
-1.6533733610858064e-222
34.0ms
-1.6852502626636778e-137
-8.698473897472046e-143
33.0ms
-4.146731920389646e-89
-1.5149086774978838e-93
32.0ms
-7.470159941709671e+43
-1.0648649289358617e+35
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes92.0ms (0.8%)

Counts
3 → 3
Calls
Call 1
Inputs
(neg.f64 y)
(neg.f64 z)
(-.f64 y z)
Outputs
(neg.f64 z)
(neg.f64 y)
(-.f64 y z)
Calls

4 calls:

32.0ms
x
20.0ms
y
20.0ms
t
18.0ms
z
Results
ErrorSegmentsBranch
40.9b4x
33.9b2y
31.8b3z
42.1b2t
Compiler

Compiled 31 to 23 computations (25.8% saved)

bsearch102.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
49.0ms
7.50035277431111e+81
8.313665891363955e+82
52.0ms
-7.470159941709671e+43
-1.0648649289358617e+35
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes75.0ms (0.7%)

Accuracy

Total -30.8b remaining (-96.7%)

Threshold costs -30.8b (-96.7%)

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

4 calls:

19.0ms
y
19.0ms
x
18.0ms
t
17.0ms
z
Results
ErrorSegmentsBranch
40.9b4x
33.9b2y
31.8b3z
42.1b2t
Compiler

Compiled 28 to 22 computations (21.4% saved)

bsearch61.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
7.50035277431111e+81
8.313665891363955e+82
31.0ms
-7.470159941709671e+43
-1.0648649289358617e+35
Compiler

Compiled 22 to 16 computations (27.3% saved)

simplify35.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0112444
1129444
2140444
3142444
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
(if (<=.f64 x -226140459797720104960) (+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t)) (if (<=.f64 x 719148065118880771975880281703196269106481656622859262665068569128831792501728739328) (-.f64 (-.f64 (log.f64 t) z) y) (+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))))
(if (<=.f64 x -4855774316813436322568871411842879634993274916547552458088784816076584520682913782654872264622747821845856997343232) (*.f64 (log.f64 y) x) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (-.f64 (log.f64 t) z) y) (*.f64 (log.f64 y) x)))
(if (<=.f64 x -3618579072759185920) (*.f64 (log.f64 y) x) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (-.f64 (log.f64 t) y) (if (<=.f64 x 5794552457082741/689456532887748412341091025928864224451014138635639044112158674527024860928026977516082500242976073479223111693916991352080883023896091539947888937618883326765331077022147490374177752073413947198182949091512336515072) (-.f64 (log.f64 t) z) (if (<=.f64 x 4309749167101931/5070602400912917605986812821504) (-.f64 (log.f64 t) y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (log.f64 t) z) (*.f64 (log.f64 y) x))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 1762193942957719/324518553658426726783156020576256) (-.f64 (log.f64 t) y) (if (<=.f64 z 251411496543696289839097967268796970318520385536) (*.f64 (log.f64 y) x) (if (<=.f64 z 276445918366515608173855713625331213832683108197510403522447083319070818304) (neg.f64 y) (if (<=.f64 z 83136658913639548646946808611317550463867198056434234516572631760260044006723944448) (*.f64 (log.f64 y) x) (neg.f64 z))))))
(if (<=.f64 x -6415301983820406643772831452677435200450603515287001104384) (*.f64 (log.f64 y) x) (if (<=.f64 x -683633952363471/18446744073709551616) (neg.f64 z) (if (<=.f64 x -5881411293551299/43556142965880123323311949751266331066368) (neg.f64 y) (if (<=.f64 x -8290521936814947/196159429230833773869868419475239575503198607639501078528) (log.f64 t) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (neg.f64 y) (if (<=.f64 x 2324082653417525/580865979874134008905493163339804906301273516273200960568660882545289319203282958416081372850061074449140126480544130097833822361540978792105793195743122900696472984549789013258861878841522553464937185852481030158620214338624171909436366773573694563676580119318024965946783339380736) (neg.f64 z) (if (<=.f64 x 3817513827543543/7687697232696013035490465480201479025983241823794691621558168976140934720122093268938148043346259333988919315645138393722043075242293497100043735968399262883880680368733084239192707430286484902215659282347932289182034267181757047930126964620533348010060414976) (log.f64 t) (if (<=.f64 x 1852826043968511/42081087212386988057927919063041029324402718422585390875986247224549857234376646576909332290220707609815863750849425741704155458001470430905022518165215046799641789369027556785533310063074581738170346013886251008) (-.f64 y z) (if (<=.f64 x 7710890767001353/9444732965739290427392) (neg.f64 y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (neg.f64 z) (*.f64 (log.f64 y) x)))))))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z -2972038725092345/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (neg.f64 y) (if (<=.f64 z -3530548724324985/209496998905353079680844140596966345741865090946756146526930647558152562969899171512529285908857866057656747784163844544589904418936665155413025765720064) (log.f64 t) (if (<=.f64 z -1918562430141225/6210072369202835740595917953850010221027544068466786444556208152104203810745507545323513635314585911801950922788524292824686320176459257565777149100164724556817819904083399622201061142526393779301051996774865875003571387415264231424) (neg.f64 y) (if (<=.f64 z -1079330360984169/18152061871066687778296661354368903321914797383537530017770652579540291225102592450502542901564408576535628952517004065557306948798155587253306037366972590646764780767180906664339433713797579795779287057890032192456881698082005372169886461674177955114893128728688280185836979355648) (log.f64 t) (if (<=.f64 z 8450136119439587/88250436209631796779659651318894620729729809745361797646356310339459182198787453122058560031100937405340558296821374893066353027058699717113329784015217065825962377858834878767894752265396985241367417483713579073929216) (neg.f64 y) (if (<=.f64 z 7525096460859805/104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032) (log.f64 t) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (-.f64 y z)))))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (-.f64 y z)))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (neg.f64 z)))
(neg.f64 y)
Outputs
(+.f64 (-.f64 (-.f64 (*.f64 x (log.f64 y)) y) z) (log.f64 t))
(if (<=.f64 x -226140459797720104960) (+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t)) (if (<=.f64 x 719148065118880771975880281703196269106481656622859262665068569128831792501728739328) (-.f64 (-.f64 (log.f64 t) z) y) (+.f64 (-.f64 (*.f64 (log.f64 y) x) z) (log.f64 t))))
(if (<=.f64 x -226140459797720104960) (+.f64 (log.f64 t) (-.f64 (*.f64 x (log.f64 y)) z)) (if (<=.f64 x 719148065118880771975880281703196269106481656622859262665068569128831792501728739328) (-.f64 (-.f64 (log.f64 t) z) y) (+.f64 (log.f64 t) (-.f64 (*.f64 x (log.f64 y)) z))))
(if (<=.f64 x -4855774316813436322568871411842879634993274916547552458088784816076584520682913782654872264622747821845856997343232) (*.f64 (log.f64 y) x) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (-.f64 (log.f64 t) z) y) (*.f64 (log.f64 y) x)))
(if (<=.f64 x -4855774316813436322568871411842879634993274916547552458088784816076584520682913782654872264622747821845856997343232) (*.f64 x (log.f64 y)) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (-.f64 (log.f64 t) z) y) (*.f64 x (log.f64 y))))
(if (<=.f64 x -3618579072759185920) (*.f64 (log.f64 y) x) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (-.f64 (log.f64 t) y) (if (<=.f64 x 5794552457082741/689456532887748412341091025928864224451014138635639044112158674527024860928026977516082500242976073479223111693916991352080883023896091539947888937618883326765331077022147490374177752073413947198182949091512336515072) (-.f64 (log.f64 t) z) (if (<=.f64 x 4309749167101931/5070602400912917605986812821504) (-.f64 (log.f64 t) y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (log.f64 t) z) (*.f64 (log.f64 y) x))))))
(if (<=.f64 x -3618579072759185920) (*.f64 x (log.f64 y)) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (-.f64 (log.f64 t) y) (if (<=.f64 x 5794552457082741/689456532887748412341091025928864224451014138635639044112158674527024860928026977516082500242976073479223111693916991352080883023896091539947888937618883326765331077022147490374177752073413947198182949091512336515072) (-.f64 (log.f64 t) z) (if (<=.f64 x 4309749167101931/5070602400912917605986812821504) (-.f64 (log.f64 t) y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (-.f64 (log.f64 t) z) (*.f64 x (log.f64 y)))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 1762193942957719/324518553658426726783156020576256) (-.f64 (log.f64 t) y) (if (<=.f64 z 251411496543696289839097967268796970318520385536) (*.f64 (log.f64 y) x) (if (<=.f64 z 276445918366515608173855713625331213832683108197510403522447083319070818304) (neg.f64 y) (if (<=.f64 z 83136658913639548646946808611317550463867198056434234516572631760260044006723944448) (*.f64 (log.f64 y) x) (neg.f64 z))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 1762193942957719/324518553658426726783156020576256) (-.f64 (log.f64 t) y) (if (<=.f64 z 251411496543696289839097967268796970318520385536) (*.f64 x (log.f64 y)) (if (<=.f64 z 276445918366515608173855713625331213832683108197510403522447083319070818304) (neg.f64 y) (if (<=.f64 z 83136658913639548646946808611317550463867198056434234516572631760260044006723944448) (*.f64 x (log.f64 y)) (neg.f64 z))))))
(if (<=.f64 x -6415301983820406643772831452677435200450603515287001104384) (*.f64 (log.f64 y) x) (if (<=.f64 x -683633952363471/18446744073709551616) (neg.f64 z) (if (<=.f64 x -5881411293551299/43556142965880123323311949751266331066368) (neg.f64 y) (if (<=.f64 x -8290521936814947/196159429230833773869868419475239575503198607639501078528) (log.f64 t) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (neg.f64 y) (if (<=.f64 x 2324082653417525/580865979874134008905493163339804906301273516273200960568660882545289319203282958416081372850061074449140126480544130097833822361540978792105793195743122900696472984549789013258861878841522553464937185852481030158620214338624171909436366773573694563676580119318024965946783339380736) (neg.f64 z) (if (<=.f64 x 3817513827543543/7687697232696013035490465480201479025983241823794691621558168976140934720122093268938148043346259333988919315645138393722043075242293497100043735968399262883880680368733084239192707430286484902215659282347932289182034267181757047930126964620533348010060414976) (log.f64 t) (if (<=.f64 x 1852826043968511/42081087212386988057927919063041029324402718422585390875986247224549857234376646576909332290220707609815863750849425741704155458001470430905022518165215046799641789369027556785533310063074581738170346013886251008) (-.f64 y z) (if (<=.f64 x 7710890767001353/9444732965739290427392) (neg.f64 y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (neg.f64 z) (*.f64 (log.f64 y) x)))))))))))
(if (<=.f64 x -6415301983820406643772831452677435200450603515287001104384) (*.f64 x (log.f64 y)) (if (<=.f64 x -683633952363471/18446744073709551616) (neg.f64 z) (if (<=.f64 x -5881411293551299/43556142965880123323311949751266331066368) (neg.f64 y) (if (<=.f64 x -8290521936814947/196159429230833773869868419475239575503198607639501078528) (log.f64 t) (if (<=.f64 x -3901954355243669/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (neg.f64 y) (if (<=.f64 x 2324082653417525/580865979874134008905493163339804906301273516273200960568660882545289319203282958416081372850061074449140126480544130097833822361540978792105793195743122900696472984549789013258861878841522553464937185852481030158620214338624171909436366773573694563676580119318024965946783339380736) (neg.f64 z) (if (<=.f64 x 3817513827543543/7687697232696013035490465480201479025983241823794691621558168976140934720122093268938148043346259333988919315645138393722043075242293497100043735968399262883880680368733084239192707430286484902215659282347932289182034267181757047930126964620533348010060414976) (log.f64 t) (if (<=.f64 x 1852826043968511/42081087212386988057927919063041029324402718422585390875986247224549857234376646576909332290220707609815863750849425741704155458001470430905022518165215046799641789369027556785533310063074581738170346013886251008) (-.f64 y z) (if (<=.f64 x 7710890767001353/9444732965739290427392) (neg.f64 y) (if (<=.f64 x 5368561610567111856670052648411377812558528138683142399358442318012692757131645259953756221943145370387353632435537566744639525532140494110904911748023129498574491915834667700241578144051494912) (neg.f64 z) (*.f64 x (log.f64 y))))))))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z -2972038725092345/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (neg.f64 y) (if (<=.f64 z -3530548724324985/209496998905353079680844140596966345741865090946756146526930647558152562969899171512529285908857866057656747784163844544589904418936665155413025765720064) (log.f64 t) (if (<=.f64 z -1918562430141225/6210072369202835740595917953850010221027544068466786444556208152104203810745507545323513635314585911801950922788524292824686320176459257565777149100164724556817819904083399622201061142526393779301051996774865875003571387415264231424) (neg.f64 y) (if (<=.f64 z -1079330360984169/18152061871066687778296661354368903321914797383537530017770652579540291225102592450502542901564408576535628952517004065557306948798155587253306037366972590646764780767180906664339433713797579795779287057890032192456881698082005372169886461674177955114893128728688280185836979355648) (log.f64 t) (if (<=.f64 z 8450136119439587/88250436209631796779659651318894620729729809745361797646356310339459182198787453122058560031100937405340558296821374893066353027058699717113329784015217065825962377858834878767894752265396985241367417483713579073929216) (neg.f64 y) (if (<=.f64 z 7525096460859805/104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032) (log.f64 t) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (-.f64 y z)))))))))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (-.f64 y z)))
(if (<=.f64 z -74701599417096712326216401099109500033433600) (neg.f64 z) (if (<=.f64 z 7500352774311110067960550452873861033077234426240998743017647716112932693186969600) (neg.f64 y) (neg.f64 z)))
(neg.f64 y)
Compiler

Compiled 336 to 193 computations (42.6% saved)

soundness0.0ms (0%)

end214.0ms (1.9%)

Compiler

Compiled 300 to 126 computations (58% saved)

Profiling

Loading profile data...