Details

Time bar (total: 4.4s)

analyze107.0ms (2.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
25%25%75%0%0%0%0%3
50%50%50%0%0%0%0%4
62.5%62.5%37.5%0%0%0%0%5
68.8%68.7%31.2%0%0%0%0%6
71.9%71.8%28.1%0%0%0%0%7
73.4%73.4%26.5%0%0%0%0%8
74.2%74.2%25.8%0%0%0%0%9
74.6%74.6%25.4%0%0%0%0%10
74.8%74.8%25.2%0%0%0%0%11
74.9%74.9%25.1%0%0%0%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample2.8s (64.9%)

Results
1.4s2566×body1024valid
663.0ms1234×body2048valid
386.0ms3087×body256valid
373.0ms1320×body512valid
33.0ms49×body4096valid
Bogosity

preprocess21.0ms (0.5%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
1-exp_binary64
hypot-1-def_binary64
fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
1139
2149
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Outputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(log.f64 (+.f64 x (sqrt.f64 (fma.f64 x x 1))))
(log.f64 (+.f64 x (hypot.f64 1 x)))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
1-exp_binary64
hypot-1-def_binary64
fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0812
1139
2149
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Outputs
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(log.f64 (+.f64 x (sqrt.f64 (fma.f64 x x 1))))
(log.f64 (+.f64 x (hypot.f64 1 x)))

eval1.0ms (0%)

Compiler

Compiled 16 to 11 computations (31.3% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
46.9b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
46.9b
(log.f64 (+.f64 x (hypot.f64 1 x)))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize9.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 1 x)
1.3b
(+.f64 x (hypot.f64 1 x))
1.5b
(log.f64 (+.f64 x (hypot.f64 1 x)))
Compiler

Compiled 17 to 11 computations (35.3% saved)

series6.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(log.f64 (+.f64 x (hypot.f64 1 x)))
1.0ms
x
@-inf
(log.f64 (+.f64 x (hypot.f64 1 x)))
1.0ms
x
@inf
(log.f64 (+.f64 x (hypot.f64 1 x)))
0.0ms
x
@-inf
(+.f64 x (hypot.f64 1 x))
0.0ms
x
@inf
(+.f64 x (hypot.f64 1 x))

rewrite73.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0620
112120
2155920
Stop Event
node limit
Counts
3 → 73
Calls
Call 1
Inputs
(log.f64 (+.f64 x (hypot.f64 1 x)))
(+.f64 x (hypot.f64 1 x))
(hypot.f64 1 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x))) 2)) (log.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (+.f64 x (hypot.f64 1 x)))) (log.f64 (sqrt.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log.f64 (+.f64 x (hypot.f64 1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (-.f64 (*.f64 x x) (+.f64 1 (*.f64 x x)))) (log.f64 (-.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3))) (log.f64 (fma.f64 x x (*.f64 (hypot.f64 1 x) (-.f64 (hypot.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 x (hypot.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) (pow.f64 (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) 2) (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) (sqrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (+.f64 x (hypot.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (+.f64 x (hypot.f64 1 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (+.f64 x (hypot.f64 1 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (+.f64 x (hypot.f64 1 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (+.f64 x (hypot.f64 1 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 x (hypot.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x x) (-.f64 x (hypot.f64 1 x))) (/.f64 (+.f64 1 (*.f64 x x)) (-.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (hypot.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x))) (pow.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x))) 2) (cbrt.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x (hypot.f64 1 x))) (sqrt.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3)) (/.f64 1 (fma.f64 x x (*.f64 (hypot.f64 1 x) (-.f64 (hypot.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (+.f64 1 (*.f64 x x))) (/.f64 1 (-.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x (*.f64 (hypot.f64 1 x) (-.f64 (hypot.f64 1 x) x))) (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x (hypot.f64 1 x)) (-.f64 (*.f64 x x) (+.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3)) (fma.f64 x x (*.f64 (hypot.f64 1 x) (-.f64 (hypot.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3)) (+.f64 (+.f64 1 (*.f64 x x)) (-.f64 (*.f64 x x) (*.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (+.f64 1 (*.f64 x x))) (-.f64 x (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (hypot.f64 1 x) 3))) (neg.f64 (fma.f64 x x (*.f64 (hypot.f64 1 x) (-.f64 (hypot.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (+.f64 1 (*.f64 x x)))) (neg.f64 (-.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 1 (*.f64 x x)) (*.f64 x x)) (-.f64 (hypot.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (hypot.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (hypot.f64 1 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (hypot.f64 1 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (hypot.f64 1 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))) 2)) (cbrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x))))) (sqrt.f64 (log.f64 (+.f64 x (hypot.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (hypot.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (hypot.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 x (hypot.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (hypot.f64 1 x) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 1 x)) 2) (cbrt.f64 (hypot.f64 1 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (hypot.f64 1 x)) (sqrt.f64 (hypot.f64 1 x)) x)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (hypot.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 1 x)) (pow.f64 (cbrt.f64 (hypot.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 1 x)) 2) (cbrt.f64 (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 1 x)) (sqrt.f64 (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 1 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 1 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 1 x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 1 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 1 x)))))))

simplify71.0ms (1.6%)

Algorithm
egg-herbie
Rules
455×associate-/r*_binary64
407×associate-*l*_binary64
383×fma-def_binary64
320×+-commutative_binary64
318×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0110560
1332540
2882537
32574537
47619537
Stop Event
node limit
Counts
109 → 137
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x)))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (+.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))) (+.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
1
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (pow.f64 x 4)) x)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 2 x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 2 x) (*.f64 1/16 (/.f64 1 (pow.f64 x 5))))) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(/.f64 -1/2 x)
(-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 1/2 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 5/128 (/.f64 1 (pow.f64 x 7)))) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 1/2 (/.f64 1 x))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/8 (pow.f64 x 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/16 (pow.f64 x 6)) (*.f64 -1/8 (pow.f64 x 4)))))
x
(+.f64 (*.f64 1/2 (/.f64 1 x)) x)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) x) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(*.f64 -1 x)
(-.f64 (*.f64 -1 x) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 -1 x)) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 -1 x)) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))))
Outputs
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(fma.f64 -1/6 (pow.f64 x 3) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x)))
(fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) (fma.f64 -5/112 (pow.f64 x 7) x)))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 2) (neg.f64 (neg.f64 (log.f64 x))))
(+.f64 (log.f64 2) (log.f64 x))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 2) (/.f64 1/4 (*.f64 x x))))
(+.f64 (log.f64 2) (+.f64 (/.f64 1/4 (*.f64 x x)) (log.f64 x)))
(+.f64 (log.f64 2) (+.f64 (log.f64 x) (/.f64 1/4 (*.f64 x x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 2) (/.f64 1/4 (*.f64 x x)))) (/.f64 3/32 (pow.f64 x 4)))
(+.f64 (+.f64 (log.f64 2) (/.f64 1/4 (*.f64 x x))) (-.f64 (log.f64 x) (/.f64 3/32 (pow.f64 x 4))))
(+.f64 (log.f64 2) (-.f64 (+.f64 (log.f64 x) (/.f64 1/4 (*.f64 x x))) (/.f64 3/32 (pow.f64 x 4))))
(+.f64 (-.f64 (log.f64 2) (/.f64 3/32 (pow.f64 x 4))) (+.f64 (log.f64 x) (/.f64 1/4 (*.f64 x x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (log.f64 2) (+.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))
(-.f64 (fma.f64 -1 (neg.f64 (log.f64 x)) (+.f64 (log.f64 2) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6))))) (/.f64 3/32 (pow.f64 x 4)))
(+.f64 (log.f64 x) (+.f64 (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6))) (-.f64 (log.f64 2) (/.f64 3/32 (pow.f64 x 4)))))
(+.f64 (+.f64 (log.f64 2) (/.f64 1/4 (*.f64 x x))) (+.f64 (/.f64 5/96 (pow.f64 x 6)) (-.f64 (log.f64 x) (/.f64 3/32 (pow.f64 x 4)))))
(+.f64 (log.f64 2) (+.f64 (/.f64 1/4 (*.f64 x x)) (+.f64 (/.f64 5/96 (pow.f64 x 6)) (-.f64 (log.f64 x) (/.f64 3/32 (pow.f64 x 4))))))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (log.f64 1/2) (/.f64 1/4 (*.f64 x x))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x))))
(-.f64 (log.f64 1/2) (-.f64 (/.f64 1/4 (*.f64 x x)) (log.f64 (/.f64 -1 x))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (/.f64 (/.f64 -1/4 x) x)))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (+.f64 (/.f64 3/32 (pow.f64 x 4)) (log.f64 1/2)) (/.f64 1/4 (*.f64 x x))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 3/32 (pow.f64 x 4)) (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x)))))
(+.f64 (/.f64 3/32 (pow.f64 x 4)) (-.f64 (log.f64 1/2) (-.f64 (/.f64 1/4 (*.f64 x x)) (log.f64 (/.f64 -1 x)))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (+.f64 (/.f64 3/32 (pow.f64 x 4)) (/.f64 (/.f64 -1/4 x) x))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))) (+.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (/.f64 3/32 (pow.f64 x 4)) (log.f64 1/2))) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6))))
(+.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (-.f64 (/.f64 3/32 (pow.f64 x 4)) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6)))))
(+.f64 (/.f64 3/32 (pow.f64 x 4)) (-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6)))))
(+.f64 (/.f64 3/32 (pow.f64 x 4)) (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (+.f64 (/.f64 (/.f64 -1/4 x) x) (/.f64 -5/96 (pow.f64 x 6))))))
(-.f64 (log.f64 (/.f64 -1 x)) (+.f64 (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 5/96 (pow.f64 x 6))) (-.f64 (/.f64 -3/32 (pow.f64 x 4)) (log.f64 1/2))))
1
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) x))
(+.f64 x (fma.f64 (*.f64 x x) 1/2 1))
(+.f64 x (fma.f64 x (*.f64 x 1/2) 1))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (pow.f64 x 4)) x)))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (fma.f64 -1/8 (pow.f64 x 4) x)))
(+.f64 1 (fma.f64 (*.f64 x x) 1/2 (fma.f64 (pow.f64 x 4) -1/8 x)))
(+.f64 x (fma.f64 x (*.f64 x 1/2) (fma.f64 (pow.f64 x 4) -1/8 1)))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(fma.f64 2 x (/.f64 1/2 x))
(fma.f64 x 2 (/.f64 1/2 x))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 2 x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(-.f64 (fma.f64 2 x (/.f64 1/2 x)) (/.f64 1/8 (pow.f64 x 3)))
(-.f64 (fma.f64 x 2 (/.f64 1/2 x)) (/.f64 1/8 (pow.f64 x 3)))
(+.f64 (fma.f64 x 2 (/.f64 1/2 x)) (/.f64 -1/8 (pow.f64 x 3)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 2 x) (*.f64 1/16 (/.f64 1 (pow.f64 x 5))))) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (fma.f64 2 x (/.f64 1/2 x)) (/.f64 1/16 (pow.f64 x 5))) (/.f64 1/8 (pow.f64 x 3)))
(-.f64 (+.f64 (/.f64 1/2 x) (fma.f64 x 2 (/.f64 1/16 (pow.f64 x 5)))) (/.f64 1/8 (pow.f64 x 3)))
(-.f64 (fma.f64 x 2 (/.f64 1/16 (pow.f64 x 5))) (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
(+.f64 (/.f64 1/2 x) (-.f64 (fma.f64 x 2 (/.f64 1/16 (pow.f64 x 5))) (/.f64 1/8 (pow.f64 x 3))))
(/.f64 -1/2 x)
(-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 1/2 x))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))
(-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 1/2 (/.f64 1 x))))
(-.f64 (/.f64 1/8 (pow.f64 x 3)) (+.f64 (/.f64 1/2 x) (/.f64 1/16 (pow.f64 x 5))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (+.f64 (/.f64 -1/2 x) (/.f64 -1/16 (pow.f64 x 5))))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 5/128 (/.f64 1 (pow.f64 x 7)))) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 1/2 (/.f64 1 x))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (-.f64 (/.f64 5/128 (pow.f64 x 7)) (+.f64 (/.f64 1/2 x) (/.f64 1/16 (pow.f64 x 5)))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (+.f64 (/.f64 5/128 (pow.f64 x 7)) (+.f64 (/.f64 -1/2 x) (/.f64 -1/16 (pow.f64 x 5)))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (-.f64 (/.f64 -1/16 (pow.f64 x 5)) (-.f64 (/.f64 1/2 x) (/.f64 5/128 (pow.f64 x 7)))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 1 (*.f64 (*.f64 x x) 1/2))
(fma.f64 (*.f64 x x) 1/2 1)
(fma.f64 x (*.f64 x 1/2) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/8 (pow.f64 x 4))))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (*.f64 (pow.f64 x 4) -1/8)))
(+.f64 1 (fma.f64 (*.f64 x x) 1/2 (*.f64 (pow.f64 x 4) -1/8)))
(fma.f64 x (*.f64 x 1/2) (fma.f64 (pow.f64 x 4) -1/8 1))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/16 (pow.f64 x 6)) (*.f64 -1/8 (pow.f64 x 4)))))
(+.f64 1 (fma.f64 1/2 (*.f64 x x) (fma.f64 1/16 (pow.f64 x 6) (*.f64 (pow.f64 x 4) -1/8))))
(+.f64 1 (fma.f64 (*.f64 x x) 1/2 (fma.f64 (pow.f64 x 4) -1/8 (*.f64 (pow.f64 x 6) 1/16))))
(+.f64 1 (fma.f64 (pow.f64 x 4) -1/8 (fma.f64 (*.f64 x x) 1/2 (*.f64 (pow.f64 x 6) 1/16))))
(+.f64 1 (fma.f64 x (*.f64 x 1/2) (fma.f64 (pow.f64 x 4) -1/8 (*.f64 (pow.f64 x 6) 1/16))))
x
(+.f64 (*.f64 1/2 (/.f64 1 x)) x)
(+.f64 x (/.f64 1/2 x))
(-.f64 x (/.f64 -1/2 x))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) x) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 x (/.f64 1/2 x)) (/.f64 1/8 (pow.f64 x 3)))
(+.f64 x (-.f64 (/.f64 1/2 x) (/.f64 1/8 (pow.f64 x 3))))
(+.f64 x (+.f64 (/.f64 1/2 x) (/.f64 -1/8 (pow.f64 x 3))))
(-.f64 (/.f64 1/2 x) (-.f64 (/.f64 1/8 (pow.f64 x 3)) x))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 1/2 x) (-.f64 (+.f64 x (/.f64 1/16 (pow.f64 x 5))) (/.f64 1/8 (pow.f64 x 3))))
(+.f64 (+.f64 x (/.f64 1/16 (pow.f64 x 5))) (-.f64 (/.f64 1/2 x) (/.f64 1/8 (pow.f64 x 3))))
(+.f64 x (-.f64 (+.f64 (/.f64 1/2 x) (/.f64 1/16 (pow.f64 x 5))) (/.f64 1/8 (pow.f64 x 3))))
(+.f64 x (+.f64 (/.f64 1/2 x) (-.f64 (/.f64 1/16 (pow.f64 x 5)) (/.f64 1/8 (pow.f64 x 3)))))
(*.f64 -1 x)
(neg.f64 x)
(-.f64 (*.f64 -1 x) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (neg.f64 x) (/.f64 1/2 x))
(fma.f64 x -1 (/.f64 -1/2 x))
(-.f64 (/.f64 -1/2 x) x)
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 -1 x)) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (-.f64 (neg.f64 x) (/.f64 1/2 x)))
(+.f64 (-.f64 (/.f64 1/8 (pow.f64 x 3)) x) (/.f64 -1/2 x))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (-.f64 (/.f64 -1/2 x) x))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 -1 x)) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (-.f64 (neg.f64 x) (+.f64 (/.f64 1/2 x) (/.f64 1/16 (pow.f64 x 5)))))
(+.f64 (-.f64 (/.f64 1/8 (pow.f64 x 3)) x) (-.f64 (/.f64 -1/2 x) (/.f64 1/16 (pow.f64 x 5))))
(+.f64 (/.f64 1/8 (pow.f64 x 3)) (+.f64 (-.f64 (/.f64 -1/2 x) x) (/.f64 -1/16 (pow.f64 x 5))))

eval47.0ms (1.1%)

Compiler

Compiled 1814 to 1362 computations (24.9% saved)

prune26.0ms (0.6%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1316137
Fresh000
Picked101
Done000
Total1326138
Error
0b
Counts
138 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
46.4b
(log.f64 (/.f64 -1/2 x))
31.6b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
31.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
30.3b
x
48.9b
(log.f64 (*.f64 x 2))
46.4b
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Compiler

Compiled 88 to 69 computations (21.6% saved)

localize22.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 3/40 (pow.f64 x 5))
0.1b
(*.f64 -1/6 (pow.f64 x 3))
17.1b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
Compiler

Compiled 42 to 32 computations (23.8% saved)

series5.0ms (0.1%)

Counts
3 → 6
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
1.0ms
x
@0
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
1.0ms
x
@0
(*.f64 3/40 (pow.f64 x 5))
1.0ms
x
@0
(*.f64 -1/6 (pow.f64 x 3))
1.0ms
x
@inf
(*.f64 -1/6 (pow.f64 x 3))

rewrite81.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
556×log-prod_binary64
547×fma-def_binary64
332×pow2_binary64
319×fma-neg_binary64
228×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01229
127929
2351829
Stop Event
node limit
Counts
3 → 121
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 3/40 (pow.f64 x 5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 x 6) 1/36) (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x)))) (/.f64 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2) (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3)) (/.f64 1 (fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))) (*.f64 (pow.f64 x 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 x 6) 1/36) (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2)) (/.f64 1 (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))) (*.f64 (pow.f64 x 6) 1/36)) (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x))) (-.f64 (*.f64 (pow.f64 x 6) 1/36) (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3)) (fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))) (*.f64 (pow.f64 x 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3)) (+.f64 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2) (-.f64 (*.f64 (pow.f64 x 6) 1/36) (*.f64 -1/6 (*.f64 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 x 6) 1/36) (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2)) (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3))) (neg.f64 (fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))) (*.f64 (pow.f64 x 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 x 6) 1/36) (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2))) (neg.f64 (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) 2) (-.f64 (*.f64 x x) (*.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2) (*.f64 (pow.f64 x 6) 1/36)) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) 2) (*.f64 x x)) (-.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) (-.f64 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3))) (*.f64 (pow.f64 x 6) 1/36)) (fma.f64 (pow.f64 x 9) -1/216 (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 x 3) (neg.f64 (fma.f64 3/40 (pow.f64 x 5) x))) (-.f64 (*.f64 (pow.f64 x 6) 1/36) (pow.f64 (fma.f64 3/40 (pow.f64 x 5) x) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (exp.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (exp.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x) (*.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6) (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x)) (*.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6) (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3)))) (exp.f64 (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6) (+.f64 1 (expm1.f64 (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3)))) (+.f64 1 (expm1.f64 (fma.f64 3/40 (pow.f64 x 5) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 3/40 (pow.f64 x 5) x))) (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 3/40 (pow.f64 x 5) x)) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 3/40 (pow.f64 x 5) x))) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6) (pow.f64 (exp.f64 3/40) (pow.f64 x 5))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6) (pow.f64 (exp.f64 3/40) (pow.f64 x 5))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/6 (pow.f64 x 3) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 1 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (*.f64 x x) -1/6) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) -1/6 (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 x 3)) 1 (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3/40 (pow.f64 x 5) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 5) 3/40 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/40 (pow.f64 x 5)) 1 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3/40 (pow.f64 x 5) x) 1 (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/6 (pow.f64 x 3)) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3/40 (pow.f64 x 5) x) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x -1/6) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) (pow.f64 (cbrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) 2) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) 2) (cbrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 10)) (*.f64 (pow.f64 (cbrt.f64 x) 5) 3/40) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 -1/6)) (pow.f64 (*.f64 x (cbrt.f64 -1/6)) 2) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 -1/6)) 2) (*.f64 x (cbrt.f64 -1/6)) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (pow.f64 (cbrt.f64 x) 2) (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3/40 (pow.f64 x 5))) (cbrt.f64 (*.f64 (pow.f64 x 10) 9/1600)) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 x 10) 9/1600)) (cbrt.f64 (*.f64 3/40 (pow.f64 x 5))) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) (sqrt.f64 (fma.f64 3/40 (pow.f64 x 5) x)) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 x 3/2)) (*.f64 (sqrt.f64 -1/6) (pow.f64 x 3/2)) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 3/40) (pow.f64 x 5/2)) (*.f64 (sqrt.f64 3/40) (pow.f64 x 5/2)) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 x 15) 27/64000 (pow.f64 x 3)) (/.f64 1 (fma.f64 x (-.f64 x (*.f64 3/40 (pow.f64 x 5))) (*.f64 (pow.f64 x 10) 9/1600))) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 x 10) 9/1600 (neg.f64 (*.f64 x x))) (/.f64 1 (-.f64 (*.f64 3/40 (pow.f64 x 5)) x)) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (*.f64 (pow.f64 x 3/2) -1/6) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 5/2) (*.f64 (pow.f64 x 5/2) 3/40) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5))) 1 x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 x) (*.f64 x x) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (*.f64 x x)) x (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 x 3/2)) (pow.f64 x 3/2) (fma.f64 3/40 (pow.f64 x 5) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/40 (cbrt.f64 (pow.f64 x 10))) (pow.f64 (cbrt.f64 x) 5) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3/40 (pow.f64 x 5/2)) (pow.f64 x 5/2) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -1/6 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 6) 1/36) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (cbrt.f64 -1/6)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 9) -1/216) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 6) 1/36))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 x 3)) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 9) -1/216))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 3 (log.f64 x) (log1p.f64 -7/6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 3 (log.f64 x) (log1p.f64 -7/6)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3/40 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 3/40) (pow.f64 x 5))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3/40 (pow.f64 x 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3/40 (pow.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 10) 9/1600) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3/40 (pow.f64 x 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 3/40) (pow.f64 x 5/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 15) 27/64000) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 10) 9/1600))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3/40) (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3/40 (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 15) 27/64000))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3/40 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3/40 (pow.f64 x 5))) 1))))))

simplify144.0ms (3.3%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
710×cube-prod_binary64
681×fabs-mul_binary64
660×pow-sqr_binary64
416×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251
13051
26051
313151
426051
571351
6107751
7171951
8182751
9198951
10220251
11253251
12298851
13358651
14433851
15527051
16578051
17627251
18667051
19699051
20715251
Stop Event
node limit
Counts
127 → 127
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
Outputs
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(fma.f64 -1/6 (pow.f64 x 3) x)
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
(fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
(fma.f64 -1/6 (pow.f64 x 3) (*.f64 3/40 (pow.f64 x 5)))

localize6.0ms (0.1%)

Compiler

Compiled 10 to 7 computations (30% saved)

localize6.0ms (0.1%)

Compiler

Compiled 10 to 7 computations (30% saved)

localize11.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -1/6 (pow.f64 x 3))
Compiler

Compiled 19 to 14 computations (26.3% saved)

localize17.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/8 (pow.f64 x 3))
10.2b
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Compiler

Compiled 35 to 27 computations (22.9% saved)

series4.0ms (0.1%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x
@0
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
1.0ms
x
@inf
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
1.0ms
x
@0
(/.f64 1/8 (pow.f64 x 3))
1.0ms
x
@-inf
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
0.0ms
x
@-inf
(/.f64 1/8 (pow.f64 x 3))

rewrite69.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
914×prod-diff_binary64
468×log-prod_binary64
302×fma-def_binary64
277×pow2_binary64
193×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01022
123520
2310420
Stop Event
node limit
Counts
2 → 84
Calls
Call 1
Inputs
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
(/.f64 1/8 (pow.f64 x 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3)))) (log.f64 (/.f64 1 (+.f64 (/.f64 1/64 (pow.f64 x 6)) (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 -1/16 (pow.f64 x 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x))) (log.f64 (/.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) (log.f64 (cbrt.f64 (pow.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) (log.f64 (sqrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 1/4 (*.f64 x x)))) (log.f64 (/.f64 1 (-.f64 (*.f64 1/8 (pow.f64 x -3)) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)) 2))) (log.f64 (cbrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (pow.f64 x 4) (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 x 6)) (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 -1/16 (pow.f64 x 4)))) (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (log.f64 (/.f64 (-.f64 (*.f64 1/8 (pow.f64 x -3)) (/.f64 -1/2 x)) (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 1/4 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3)))) (log.f64 (+.f64 (/.f64 1/64 (pow.f64 x 6)) (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 -1/16 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3)))) (log.f64 (+.f64 (/.f64 1/4 (*.f64 x x)) (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 -1/16 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x))) (*.f64 4 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 1/4 (*.f64 x x)))) (log.f64 (-.f64 (*.f64 1/8 (pow.f64 x -3)) (/.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x)))) (log.f64 (neg.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3))))) (log.f64 (neg.f64 (+.f64 (/.f64 1/64 (pow.f64 x 6)) (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 -1/16 (pow.f64 x 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 1/4 (*.f64 x x))))) (log.f64 (neg.f64 (-.f64 (*.f64 1/8 (pow.f64 x -3)) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 x (*.f64 (*.f64 (pow.f64 x 3) 8) -1/2))) (log.f64 (*.f64 (*.f64 (pow.f64 x 3) 8) x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1/8 x (*.f64 (neg.f64 (pow.f64 x 3)) -1/2))) (log.f64 (*.f64 (neg.f64 (pow.f64 x 3)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/8 (*.f64 x -2) (pow.f64 x 3))) (log.f64 (*.f64 (pow.f64 x 3) (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 x -2 (*.f64 (*.f64 (pow.f64 x 3) 8) 1))) (log.f64 (*.f64 (*.f64 (pow.f64 x 3) 8) (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1/8 (*.f64 x -2) (*.f64 (neg.f64 (pow.f64 x 3)) 1))) (log.f64 (*.f64 (neg.f64 (pow.f64 x 3)) (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/8 (neg.f64 x) (*.f64 (pow.f64 x 3) 1/2))) (log.f64 (*.f64 (pow.f64 x 3) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1 x (*.f64 (*.f64 (pow.f64 x 3) 8) 1/2))) (log.f64 (*.f64 (*.f64 (pow.f64 x 3) 8) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1/8 (neg.f64 x) (*.f64 (neg.f64 (pow.f64 x 3)) 1/2))) (log.f64 (*.f64 (neg.f64 (pow.f64 x 3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 (pow.f64 x 3) (*.f64 (*.f64 x -2) 1/8))) (log.f64 (*.f64 (*.f64 x -2) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/2 (pow.f64 x 3) (*.f64 (neg.f64 x) 1/8))) (log.f64 (*.f64 (neg.f64 x) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1/2 (*.f64 (pow.f64 x 3) 8) x)) (log.f64 (*.f64 x (*.f64 (pow.f64 x 3) 8))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 (pow.f64 x 3) 8 (*.f64 (*.f64 x -2) 1))) (log.f64 (*.f64 (*.f64 x -2) (*.f64 (pow.f64 x 3) 8))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/2 (*.f64 (pow.f64 x 3) 8) (*.f64 (neg.f64 x) 1))) (log.f64 (*.f64 (neg.f64 x) (*.f64 (pow.f64 x 3) 8))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1/2 (neg.f64 (pow.f64 x 3)) (*.f64 x -1/8))) (log.f64 (*.f64 x (neg.f64 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 -1 (pow.f64 x 3) (*.f64 (*.f64 x -2) -1/8))) (log.f64 (*.f64 (*.f64 x -2) (neg.f64 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (fma.f64 1/2 (neg.f64 (pow.f64 x 3)) (*.f64 (neg.f64 x) -1/8))) (log.f64 (*.f64 (neg.f64 x) (neg.f64 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 1/64 (pow.f64 x 6)))) (log.f64 (-.f64 (/.f64 -1/2 x) (*.f64 1/8 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x)) (pow.f64 x 3))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (log.f64 (cbrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) (pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) 2) (cbrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) (sqrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (sqrt.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (*.f64 3 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (pow.f64 x 4) (fma.f64 (pow.f64 x 3) -1/2 (*.f64 1/8 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 x 6)) (-.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 -1/16 (pow.f64 x 4)))) (fma.f64 1/512 (pow.f64 (pow.f64 x -3) 3) (/.f64 -1/8 (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (log.f64 (/.f64 (-.f64 (*.f64 1/8 (pow.f64 x -3)) (/.f64 -1/2 x)) (-.f64 (/.f64 1/64 (pow.f64 x 6)) (/.f64 1/4 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (fma.f64 1/8 (pow.f64 x -3) (/.f64 -1/2 x)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/8 (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/8) (pow.f64 x -3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/8) (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/8) (pow.f64 x -3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/8) (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 1/8 (pow.f64 x -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/8 (pow.f64 x -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/8 (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/8 (/.f64 1 (neg.f64 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (pow.f64 (/.f64 1/2 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1/2 x) 2) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 1/8) (pow.f64 x 3/2)) (/.f64 (sqrt.f64 1/8) (pow.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -3) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/8 (pow.f64 x -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/2 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 1/8) (pow.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/512 (pow.f64 (pow.f64 x -3) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) 8) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (pow.f64 x 3) 8) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1/64 (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/8) (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 1/8 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 1/512 (pow.f64 (pow.f64 x -3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/8 (pow.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/8 (pow.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 1/2 x))) 1))))))

simplify52.0ms (1.2%)

Algorithm
egg-herbie
Rules
836×sub-neg_binary64
636×fma-def_binary64
585×times-frac_binary64
324×associate-+l-_binary64
301×associate-+r+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
059274
1156264
2423262
31459262
45383262
Stop Event
node limit
Counts
96 → 107
Calls
Call 1
Inputs
(+.f64 (*.f64 -3 (log.f64 x)) (log.f64 1/8))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (log.f64 1/8)))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (+.f64 (log.f64 1/8) (*.f64 -8 (pow.f64 x 4)))))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (+.f64 (log.f64 1/8) (+.f64 (*.f64 -8 (pow.f64 x 4)) (*.f64 -64/3 (pow.f64 x 6))))))
(+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x)))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 1/192 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 1/192 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))))
Outputs
(+.f64 (*.f64 -3 (log.f64 x)) (log.f64 1/8))
(fma.f64 -3 (log.f64 x) (log.f64 1/8))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (log.f64 1/8)))
(fma.f64 -3 (log.f64 x) (fma.f64 -4 (*.f64 x x) (log.f64 1/8)))
(fma.f64 -3 (log.f64 x) (fma.f64 x (*.f64 x -4) (log.f64 1/8)))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (+.f64 (log.f64 1/8) (*.f64 -8 (pow.f64 x 4)))))
(fma.f64 -3 (log.f64 x) (+.f64 (fma.f64 -4 (*.f64 x x) (log.f64 1/8)) (*.f64 -8 (pow.f64 x 4))))
(fma.f64 -3 (log.f64 x) (fma.f64 -4 (*.f64 x x) (fma.f64 -8 (pow.f64 x 4) (log.f64 1/8))))
(fma.f64 -3 (log.f64 x) (fma.f64 x (*.f64 x -4) (fma.f64 -8 (pow.f64 x 4) (log.f64 1/8))))
(fma.f64 -4 (*.f64 x x) (fma.f64 -8 (pow.f64 x 4) (fma.f64 -3 (log.f64 x) (log.f64 1/8))))
(+.f64 (*.f64 -3 (log.f64 x)) (+.f64 (*.f64 -4 (pow.f64 x 2)) (+.f64 (log.f64 1/8) (+.f64 (*.f64 -8 (pow.f64 x 4)) (*.f64 -64/3 (pow.f64 x 6))))))
(fma.f64 -3 (log.f64 x) (fma.f64 -4 (*.f64 x x) (+.f64 (log.f64 1/8) (fma.f64 -8 (pow.f64 x 4) (*.f64 -64/3 (pow.f64 x 6))))))
(+.f64 (fma.f64 -3 (log.f64 x) (fma.f64 -4 (*.f64 x x) (log.f64 1/8))) (fma.f64 -8 (pow.f64 x 4) (*.f64 -64/3 (pow.f64 x 6))))
(fma.f64 -3 (log.f64 x) (fma.f64 x (*.f64 x -4) (fma.f64 -8 (pow.f64 x 4) (fma.f64 -64/3 (pow.f64 x 6) (log.f64 1/8)))))
(fma.f64 x (*.f64 x -4) (fma.f64 -64/3 (pow.f64 x 6) (fma.f64 -8 (pow.f64 x 4) (fma.f64 -3 (log.f64 x) (log.f64 1/8)))))
(+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x)))
(+.f64 (log.f64 -1/2) (neg.f64 (log.f64 x)))
(-.f64 (log.f64 -1/2) (log.f64 x))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 -1/2) (-.f64 (neg.f64 (log.f64 x)) (/.f64 1/4 (*.f64 x x))))
(+.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (/.f64 -1/4 (*.f64 x x)))
(-.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (/.f64 (/.f64 1/4 x) x))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (log.f64 -1/2) (neg.f64 (log.f64 x))) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 1/32 (pow.f64 x 4))))
(+.f64 (-.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (/.f64 1/32 (pow.f64 x 4))) (/.f64 -1/4 (*.f64 x x)))
(+.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (+.f64 (/.f64 -1/4 (*.f64 x x)) (/.f64 -1/32 (pow.f64 x 4))))
(+.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (-.f64 (/.f64 -1/32 (pow.f64 x 4)) (/.f64 (/.f64 1/4 x) x)))
(-.f64 (+.f64 (log.f64 -1/2) (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 1/192 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))))
(-.f64 (+.f64 (log.f64 -1/2) (neg.f64 (log.f64 x))) (+.f64 (/.f64 1/32 (pow.f64 x 4)) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 1/192 (pow.f64 x 6)))))
(-.f64 (-.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (+.f64 (/.f64 1/32 (pow.f64 x 4)) (/.f64 1/192 (pow.f64 x 6)))) (/.f64 1/4 (*.f64 x x)))
(+.f64 (+.f64 (-.f64 (log.f64 -1/2) (log.f64 x)) (/.f64 -1/32 (pow.f64 x 4))) (-.f64 (/.f64 -1/4 (*.f64 x x)) (/.f64 1/192 (pow.f64 x 6))))
(+.f64 (log.f64 -1/2) (+.f64 (-.f64 (/.f64 -1/4 (*.f64 x x)) (log.f64 x)) (+.f64 (/.f64 -1/32 (pow.f64 x 4)) (/.f64 -1/192 (pow.f64 x 6)))))
(+.f64 (log.f64 -1/2) (+.f64 (/.f64 -1/4 (*.f64 x x)) (+.f64 (-.f64 (/.f64 -1/32 (pow.f64 x 4)) (log.f64 x)) (/.f64 -1/192 (pow.f64 x 6)))))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (/.f64 1/4 (*.f64 x x)))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x))))
(+.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (/.f64 -1/4 (*.f64 x x)))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (log.f64 1/2) (/.f64 (/.f64 1/4 x) x)))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (log.f64 1/2) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 1/32 (pow.f64 x 4)))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x))) (/.f64 1/32 (pow.f64 x 4))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (+.f64 (log.f64 1/2) (/.f64 -1/32 (pow.f64 x 4))) (/.f64 -1/4 (*.f64 x x))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (-.f64 (log.f64 1/2) (/.f64 1/32 (pow.f64 x 4))) (/.f64 (/.f64 1/4 x) x)))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (*.f64 1/32 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 1/192 (/.f64 1 (pow.f64 x 6))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (log.f64 1/2) (+.f64 (/.f64 1/32 (pow.f64 x 4)) (+.f64 (/.f64 1/4 (*.f64 x x)) (/.f64 1/192 (pow.f64 x 6))))))
(-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (-.f64 (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x))) (/.f64 1/32 (pow.f64 x 4)))) (/.f64 1/192 (pow.f64 x 6)))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (-.f64 (+.f64 (log.f64 1/2) (/.f64 -1/4 (*.f64 x x))) (/.f64 1/192 (pow.f64 x 6))) (/.f64 -1/32 (pow.f64 x 4))))
(+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (-.f64 (/.f64 -1/32 (pow.f64 x 4)) (/.f64 (/.f64 1/4 x) x)) (+.f64 (log.f64 1/2) (/.f64 -1/192 (pow.f64 x 6)))))

eval115.0ms (2.6%)

Compiler

Compiled 4320 to 3395 computations (21.4% saved)

prune33.0ms (0.8%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New2510251
Fresh011
Picked011
Done044
Total2516257
Error
0b
Counts
257 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
46.4b
(log.f64 (/.f64 -1/2 x))
31.6b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
31.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
30.3b
x
48.9b
(log.f64 (*.f64 x 2))
46.4b
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Compiler

Compiled 45 to 35 computations (22.2% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done055
Total066
Error
0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
46.4b
(log.f64 (/.f64 -1/2 x))
31.6b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
31.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
30.3b
x
48.9b
(log.f64 (*.f64 x 2))
46.4b
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Compiler

Compiled 45 to 35 computations (22.2% saved)

eval1.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done055
Total066
Error
0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
46.4b
(log.f64 (/.f64 -1/2 x))
31.6b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
31.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
30.3b
x
48.9b
(log.f64 (*.f64 x 2))
46.4b
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Compiler

Compiled 45 to 35 computations (22.2% saved)

regimes31.0ms (0.7%)

Counts
8 → 3
Calls
Call 1
Inputs
x
(log.f64 (/.f64 -1/2 x))
(log.f64 (*.f64 x 2))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(log.f64 (+.f64 x (hypot.f64 1 x)))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
Outputs
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(log.f64 (*.f64 x 2))
Calls

3 calls:

16.0ms
x
6.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
6.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Results
ErrorSegmentsBranch
0b3x
7.2b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.2b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 76 to 54 computations (28.9% saved)

bsearch46.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
5.291342491801188e-16
14909333627.096416
23.0ms
-132226.3464932629
-0.0007287819196839851
Compiler

Compiled 14 to 10 computations (28.6% saved)

regimes29.0ms (0.7%)

Counts
7 → 3
Calls
Call 1
Inputs
x
(log.f64 (/.f64 -1/2 x))
(log.f64 (*.f64 x 2))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(log.f64 (+.f64 x (hypot.f64 1 x)))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
Outputs
(log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(log.f64 (*.f64 x 2))
Calls

3 calls:

14.0ms
x
7.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
6.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Results
ErrorSegmentsBranch
0.0b3x
7.3b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.3b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 63 to 44 computations (30.2% saved)

bsearch47.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
5.291342491801188e-16
14909333627.096416
23.0ms
-132226.3464932629
-0.0007287819196839851
Compiler

Compiled 14 to 10 computations (28.6% saved)

regimes27.0ms (0.6%)

Counts
6 → 3
Calls
Call 1
Inputs
x
(log.f64 (/.f64 -1/2 x))
(log.f64 (*.f64 x 2))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(log.f64 (+.f64 x (hypot.f64 1 x)))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Outputs
(log.f64 (/.f64 -1/2 x))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(log.f64 (*.f64 x 2))
Calls

3 calls:

14.0ms
x
6.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
6.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Results
ErrorSegmentsBranch
0.1b3x
7.3b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.3b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 53 to 36 computations (32.1% saved)

bsearch46.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
5.291342491801188e-16
14909333627.096416
22.0ms
-132226.3464932629
-0.0007287819196839851
Compiler

Compiled 14 to 10 computations (28.6% saved)

regimes12.0ms (0.3%)

Counts
3 → 3
Calls
Call 1
Inputs
x
(log.f64 (/.f64 -1/2 x))
(log.f64 (*.f64 x 2))
Outputs
(log.f64 (/.f64 -1/2 x))
x
(log.f64 (*.f64 x 2))
Calls

1 calls:

11.0ms
x
Results
ErrorSegmentsBranch
0.2b3x
Compiler

Compiled 12 to 8 computations (33.3% saved)

bsearch46.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
5.291342491801188e-16
14909333627.096416
23.0ms
-132226.3464932629
-0.0007287819196839851
Compiler

Compiled 14 to 10 computations (28.6% saved)

regimes7.0ms (0.2%)

Accuracy

Total -48.5b remaining (-343.5%)

Threshold costs -48.5b (-343.5%)

Counts
2 → 2
Calls
Call 1
Inputs
x
(log.f64 (/.f64 -1/2 x))
Outputs
(log.f64 (/.f64 -1/2 x))
x
Calls

1 calls:

6.0ms
x
Results
ErrorSegmentsBranch
14.1b2x
Compiler

Compiled 8 to 5 computations (37.5% saved)

bsearch24.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
-132226.3464932629
-0.0007287819196839851
Compiler

Compiled 14 to 10 computations (28.6% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036168
143168
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x)) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) x (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) x)
x
Outputs
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x)) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 x (*.f64 3/40 (pow.f64 x 5)))) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (+.f64 (/.f64 1/8 (pow.f64 x 3)) (/.f64 -1/2 x))) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5366058788595929/10141204801825835211973625643008) x (log.f64 (*.f64 x 2))))
(if (<=.f64 x -1135815667716257/8589934592) (log.f64 (/.f64 -1/2 x)) x)
x
Compiler

Compiled 120 to 90 computations (25% saved)

soundness185.0ms (4.2%)

Algorithm
egg-herbie
Rules
455×associate-/r*_binary64
455×associate-/r*_binary64
407×associate-*l*_binary64
407×associate-*l*_binary64
383×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0812
1139
2149
0110560
1332540
2882537
32574537
47619537
0812
1139
2149
0812
1139
2149
0110560
1332540
2882537
32574537
47619537
Stop Event
node limit
saturated
saturated
node limit
saturated
Compiler

Compiled 193 to 151 computations (21.8% saved)

end75.0ms (1.7%)

Compiler

Compiled 115 to 85 computations (26.1% saved)

Profiling

Loading profile data...