Details

Time bar (total: 11.1s)

analyze91.0ms (0.8%)

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)

sample6.5s (58.4%)

Results
4.7s2567×body1024valid
933.0ms1239×body2048valid
435.0ms3124×body256valid
344.0ms1283×body512valid
28.0ms43×body4096valid
Bogosity

preprocess127.0ms (1.1%)

Algorithm
egg-herbie
Rules
1814×rational.json-simplify-35
1350×rational.json-simplify-53
1010×rational.json-simplify-39
864×rational.json-simplify-59
744×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11327
21927
33727
418527
5195727
6589827
7782227
011
Stop Event
saturated
node limit
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))))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify128.0ms (1.2%)

Algorithm
egg-herbie
Rules
1814×rational.json-simplify-35
1350×rational.json-simplify-53
1010×rational.json-simplify-39
864×rational.json-simplify-59
744×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11327
21927
33727
418527
5195727
6589827
7782227
Stop Event
node limit
Counts
1 → 1
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))))

eval1.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
54.6b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
54.6b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Compiler

Compiled 10 to 7 computations (30% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
2.8b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
14.4b
(sqrt.f64 (+.f64 (*.f64 x x) 1))
Compiler

Compiled 34 to 17 computations (50% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite84.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1800×bool.json-1
1800×bool.json-2
1772×rational.json-1
1374×bool.json-3
892×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01067
110567
229567
364567
4193467
5594367
Stop Event
node limit
Counts
3 → 40
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) 1))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (sqrt.f64 (+.f64 (*.f64 x x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (sqrt.f64 (+.f64 (*.f64 x x) 1)) (sqrt.f64 (+.f64 (*.f64 x x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (sqrt.f64 (+.f64 (*.f64 x x) 1)) (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))))))

simplify164.0ms (1.5%)

Algorithm
egg-herbie
Rules
1536×rational.json-simplify-19
1128×rational.json-simplify-1
820×rational.json-simplify-2
668×rational.json-simplify-59
642×rational.json-simplify-35
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01752300
13512284
26612284
314142284
425222284
546082284
659902284
775422284
Stop Event
node limit
Counts
76 → 151
Calls
Call 1
Inputs
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)))))
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))))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) 1)))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) 1)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)
(*.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 1/2)
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)
(/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4))) 16)
(+.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)
(+.f64 0 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))
(-.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)
(*.f64 1 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))
(*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)
(*.f64 2 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))
(*.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 1/2)
(*.f64 1/2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))
(*.f64 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)
(/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)
(/.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)
(/.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4))) 16)
(-.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 0)
(*.f64 1 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)
(*.f64 2 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))
(*.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 1/2)
(*.f64 1/2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))
(*.f64 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)
(/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)
(/.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)
(/.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4))) 16)
Outputs
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)))))
(+.f64 1 (+.f64 (*.f64 1/16 (pow.f64 x 6)) (+.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/8 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 6)))))
(+.f64 1 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/16 (pow.f64 x 6)))))
(+.f64 (+.f64 1 (*.f64 1/2 (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 1/16 (pow.f64 x 6))))
x
(+.f64 (*.f64 1/2 (/.f64 1 x)) x)
(+.f64 x (*.f64 1/2 (/.f64 1 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 (/.f64 1 x))) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(+.f64 x (-.f64 (*.f64 1/2 (/.f64 1 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 (+.f64 x (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))) (-.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (-.f64 (+.f64 x (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))) (*.f64 1/8 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (-.f64 x (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))))
(+.f64 x (+.f64 (*.f64 1/2 (/.f64 1 x)) (-.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))))
(*.f64 -1 x)
(*.f64 x -1)
(neg.f64 x)
(-.f64 (*.f64 -1 x) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (*.f64 x -1) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (neg.f64 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 x -1) (-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (neg.f64 x)) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (-.f64 (neg.f64 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)))))
(+.f64 (*.f64 x -1) (-.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (-.f64 (neg.f64 x) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5))))))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (neg.f64 x)) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))))
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 (pow.f64 x 3) -1/6))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 (pow.f64 x 3) -1/6)))
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 x (*.f64 (pow.f64 x 5) 3/40)))
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40)))
(+.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 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7)))))
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 x (+.f64 (*.f64 -5/112 (pow.f64 x 7)) (*.f64 (pow.f64 x 5) 3/40))))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 -5/112 (pow.f64 x 7)))))
(+.f64 x (+.f64 (*.f64 -5/112 (pow.f64 x 7)) (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))
(+.f64 (log.f64 2) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 2) (neg.f64 (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 (log.f64 2) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 2) (+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.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 (log.f64 2) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 -1 (log.f64 (/.f64 1 x))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (-.f64 (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))))
(+.f64 (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.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 (+.f64 (log.f64 2) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6))))) (-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (-.f64 (+.f64 (log.f64 2) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6))))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (+.f64 (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))) (-.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))))
(+.f64 (log.f64 2) (+.f64 (+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))) (-.f64 (*.f64 5/96 (/.f64 1 (pow.f64 x 6))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))))
(+.f64 (+.f64 (+.f64 (log.f64 2) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 3/32 (/.f64 1 (pow.f64 x 4))))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6))))
(+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (+.f64 (-.f64 (log.f64 2) (*.f64 3/32 (/.f64 1 (pow.f64 x 4)))) (+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 5/96 (/.f64 1 (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 (log.f64 (/.f64 -1 x)) (-.f64 (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 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (log.f64 1/2)) (-.f64 (log.f64 (/.f64 -1 x)) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (-.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (*.f64 1/4 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (log.f64 1/2) (+.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (-.f64 (log.f64 (/.f64 -1 x)) (*.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)))))
(+.f64 (+.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (log.f64 1/2)) (-.f64 (log.f64 (/.f64 -1 x)) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6))))))
(+.f64 (log.f64 1/2) (+.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (-.f64 (log.f64 (/.f64 -1 x)) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6)))))))
(+.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (+.f64 (log.f64 1/2) (-.f64 (log.f64 (/.f64 -1 x)) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6)))))))
(+.f64 (*.f64 3/32 (/.f64 1 (pow.f64 x 4))) (-.f64 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 1/2)) (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 x 2))) (*.f64 5/96 (/.f64 1 (pow.f64 x 6))))))
1
(+.f64 1 x)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 1 (+.f64 x (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 1 x))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (pow.f64 x 4)) x)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (*.f64 -1/8 (pow.f64 x 4)))))
(+.f64 1 (+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/8 (pow.f64 x 4)))))
(+.f64 (+.f64 1 (*.f64 1/2 (pow.f64 x 2))) (+.f64 x (*.f64 -1/8 (pow.f64 x 4))))
(+.f64 (*.f64 -1/8 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 1 x)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (+.f64 1 x)))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 x 2))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 x 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 x 2)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (-.f64 (*.f64 x 2) (*.f64 1/8 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (-.f64 (+.f64 x 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 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 x 2)) (-.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (-.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (*.f64 x 2)) (*.f64 1/8 (/.f64 1 (pow.f64 x 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (-.f64 (*.f64 x 2) (*.f64 1/8 (/.f64 1 (pow.f64 x 3))))))
(+.f64 (*.f64 1/2 (/.f64 1 x)) (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 x 5))) (-.f64 (+.f64 x x) (*.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 1/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (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 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (*.f64 5/128 (/.f64 1 (pow.f64 x 7)))) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5)))))
(+.f64 (*.f64 1/8 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 5/128 (/.f64 1 (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 1 x)) (*.f64 1/16 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(+.f64 0 (sqrt.f64 (+.f64 (*.f64 x x) 1)))
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(-.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 0)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 1 (sqrt.f64 (+.f64 (*.f64 x x) 1)))
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 2 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 1/2)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2))
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(*.f64 (/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(/.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 1)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 2) 2)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(/.f64 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4) 4)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) 8)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4)) (*.f64 2 (*.f64 (sqrt.f64 (+.f64 (*.f64 x x) 1)) 4))) 16)
(sqrt.f64 (+.f64 1 (*.f64 x x)))
(+.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(+.f64 0 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(-.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 0)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 1 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 2 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 1/2)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 1/2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2))
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(*.f64 (/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(/.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 1)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(/.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 2) 2)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(/.f64 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4) 4)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) 8)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4)) (*.f64 2 (*.f64 (log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))) 4))) 16)
(log.f64 (+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x)))))
(-.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 0)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 1 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 2 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 1/2)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 1/2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2))
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(*.f64 (/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(/.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 1)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(/.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 2) 2)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(/.f64 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4) 4)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) 8)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4)) (*.f64 2 (*.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))) 4))) 16)
(+.f64 x (sqrt.f64 (+.f64 1 (*.f64 x x))))

eval78.0ms (0.7%)

Compiler

Compiled 2585 to 2046 computations (20.9% saved)

prune27.0ms (0.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1447151
Fresh000
Picked011
Done000
Total1448152
Error
0.0b
Counts
152 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
28.6b
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
28.8b
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7)))))
28.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
48.8b
(log.f64 (/.f64 -1/2 x))
49.3b
(log.f64 (+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x))))
54.6b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
49.9b
(log.f64 (+.f64 x x))
56.9b
(log.f64 (+.f64 x 1))
Compiler

Compiled 146 to 113 computations (22.6% saved)

localize17.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 42 to 32 computations (23.8% saved)

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite95.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1598×bool.json-1
1598×bool.json-2
1548×rational.json-1
1548×rational.json-2
1548×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01382
112682
230282
360982
4132182
5313082
6624082
Stop Event
node limit
Counts
4 → 54
Calls
Call 1
Inputs
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
(*.f64 (pow.f64 x 3) -1/6)
(*.f64 (pow.f64 x 5) 3/40)
(+.f64 x (*.f64 (pow.f64 x 3) -1/6))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) -1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 3) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 3) -1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (pow.f64 x 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 3) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 3) -1/6))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 5) 3/40) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 5) 3/40))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 5) 3/80) (*.f64 (pow.f64 x 5) 3/80))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 5) 3/40) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 3/40) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 3/20) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 3/10) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (pow.f64 x 5) 3/40)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (pow.f64 x 5) 3/40) (*.f64 (pow.f64 x 5) 3/40))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 x 5) 3/40) (*.f64 (pow.f64 x 5) 3/40))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 (pow.f64 x 3) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))))))

simplify254.0ms (2.3%)

Algorithm
egg-herbie
Rules
3424×rational.json-simplify-41
2272×rational.json-simplify-49
2122×rational.json-simplify-35
1308×rational.json-simplify-2
808×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01162052
12372052
26002052
315032052
425952052
531902052
633362052
734632052
835782052
936912052
1038052052
1139672052
1239672052
1340812052
Stop Event
node limit
Counts
102 → 62
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)) x))
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
(+.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)) x))
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5)))
(+.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)) x))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(-.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 0)
(*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)
(*.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)
(/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)))) 32)
(+.f64 (*.f64 (pow.f64 x 3) -1/6) 0)
(+.f64 0 (*.f64 (pow.f64 x 3) -1/6))
(+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))
(-.f64 (*.f64 (pow.f64 x 3) -1/6) 0)
(/.f64 (*.f64 (pow.f64 x 3) -1/6) 1)
(/.f64 (*.f64 (pow.f64 x 3) -1/3) 2)
(/.f64 (*.f64 (pow.f64 x 3) -2/3) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)))) 32)
(+.f64 (*.f64 (pow.f64 x 5) 3/40) 0)
(+.f64 0 (*.f64 (pow.f64 x 5) 3/40))
(+.f64 (*.f64 (pow.f64 x 5) 3/80) (*.f64 (pow.f64 x 5) 3/80))
(-.f64 (*.f64 (pow.f64 x 5) 3/40) 0)
(/.f64 (*.f64 (pow.f64 x 5) 3/40) 1)
(/.f64 (*.f64 (pow.f64 x 5) 3/20) 2)
(/.f64 (*.f64 (pow.f64 x 5) 3/10) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)))) 32)
(-.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 0)
(*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)
(*.f64 1 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2))
(*.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)
(*.f64 4 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 1/4)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))
(*.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))
(*.f64 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)
(/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)))) 32)
Outputs
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.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)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.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)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 3/40 (pow.f64 x 5)) x))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
(*.f64 3/40 (pow.f64 x 5))
x
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(-.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 0)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 1/2)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 1/4)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1/2) 2)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 1)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 2) 2)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4) 4)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)) 8)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) 16)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 3) -1/6) (*.f64 (pow.f64 x 5) 3/40))) 4)))) 32)
(+.f64 x (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 3/40 (pow.f64 x 5))))
(+.f64 (*.f64 (pow.f64 x 3) -1/6) 0)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 0 (*.f64 (pow.f64 x 3) -1/6))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))
(*.f64 -1/6 (pow.f64 x 3))
(-.f64 (*.f64 (pow.f64 x 3) -1/6) 0)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -1/6) 1)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -1/3) 2)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -2/3) 4)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)) 8)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) 16)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -2/3)))) 32)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 5) 3/40) 0)
(*.f64 3/40 (pow.f64 x 5))
(+.f64 0 (*.f64 (pow.f64 x 5) 3/40))
(*.f64 3/40 (pow.f64 x 5))
(+.f64 (*.f64 (pow.f64 x 5) 3/80) (*.f64 (pow.f64 x 5) 3/80))
(*.f64 3/40 (pow.f64 x 5))
(-.f64 (*.f64 (pow.f64 x 5) 3/40) 0)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 3/40) 1)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 3/20) 2)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 3/10) 4)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)) 8)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) 16)
(*.f64 3/40 (pow.f64 x 5))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 3/10)))) 32)
(*.f64 3/40 (pow.f64 x 5))
(-.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 0)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 4 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 1/4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1/2) 2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 1)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4) 4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)) 8)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) 16)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) 4)))) 32)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.8b
(log.f64 (+.f64 x 1))
Compiler

Compiled 10 to 7 computations (30% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite95.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1672×bool.json-1
1672×bool.json-2
1630×rational.json-1
1630×rational.json-2
1126×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
17611
222911
345511
489411
5191111
6403011
7658511
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(log.f64 (+.f64 x 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) (*.f64 (log.f64 (+.f64 x 1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (log.f64 (+.f64 x 1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (log.f64 (+.f64 x 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (log.f64 (+.f64 x 1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (log.f64 (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 x 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (log.f64 (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (log.f64 (+.f64 x 1)) (log.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (+.f64 x 1)) (log.f64 (+.f64 x 1)))))))

simplify565.0ms (5.1%)

Algorithm
egg-herbie
Rules
1950×rational.json-simplify-2
1804×rational.json-simplify-35
1328×rational.json-simplify-46
1292×rational.json-simplify-1
1042×rational.json-simplify-49
Iterations

Useful iterations: 18 (0.0ms)

IterNodesCost
089757
1184741
2432741
3945741
41488741
52818741
63537741
73601741
83647741
93688741
103729741
113770741
123837741
133878741
143919741
153960741
164001741
174042741
184083725
194833725
205236725
215289725
225342725
235398725
245467725
255589725
265989725
277266725
Stop Event
node limit
Counts
35 → 76
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 (+.f64 x 1)) 0)
(+.f64 0 (log.f64 (+.f64 x 1)))
(+.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) (*.f64 (log.f64 (+.f64 x 1)) 1/2))
(-.f64 (log.f64 (+.f64 x 1)) 0)
(*.f64 1 (log.f64 (+.f64 x 1)))
(*.f64 (log.f64 (+.f64 x 1)) 1)
(*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 1/2))
(*.f64 4 (/.f64 (log.f64 (+.f64 x 1)) 4))
(*.f64 4 (*.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 1))
(*.f64 4 (*.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 1/2))
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 1/2)
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 1/4)
(*.f64 1/2 (*.f64 (log.f64 (+.f64 x 1)) 2))
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 2)
(*.f64 1/4 (*.f64 (log.f64 (+.f64 x 1)) 4))
(*.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 4)
(/.f64 (log.f64 (+.f64 x 1)) 1)
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 2)
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 4)
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)))) 64)
Outputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 x (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x (*.f64 -1/4 (pow.f64 x 4)))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (+.f64 (*.f64 -1/4 (pow.f64 x 4)) (*.f64 1/3 (pow.f64 x 3)))))
(+.f64 x (+.f64 (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))) (*.f64 -1/4 (pow.f64 x 4))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 -1/4 (pow.f64 x 4)))))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(neg.f64 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(+.f64 (/.f64 1 x) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (/.f64 1 x) (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 x) (*.f64 -1 (log.f64 (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 1 x))))
(+.f64 (/.f64 1 x) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 1 x)))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 1 x)))))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 1 x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1)))
(+.f64 (/.f64 1 x) (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (neg.f64 (log.f64 (/.f64 -1 x)))) (-.f64 (log.f64 -1) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 -1 x)))))
(+.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 -1 x)))))
(+.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 -1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (log.f64 -1))) (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (+.f64 (log.f64 -1) (*.f64 1/3 (/.f64 1 (pow.f64 x 3))))) (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (+.f64 (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (log.f64 -1)) (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 1 x) (+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (log.f64 -1))))
(+.f64 (/.f64 1 x) (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (-.f64 (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (log.f64 -1)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 -1 x))))))
(+.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 -1 x))))))
(+.f64 (log.f64 -1) (+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (-.f64 (*.f64 -1/2 (/.f64 1 (pow.f64 x 2))) (log.f64 (/.f64 -1 x)))))
(+.f64 (log.f64 (+.f64 x 1)) 0)
(log.f64 (+.f64 x 1))
(+.f64 0 (log.f64 (+.f64 x 1)))
(log.f64 (+.f64 x 1))
(+.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) (*.f64 (log.f64 (+.f64 x 1)) 1/2))
(log.f64 (+.f64 x 1))
(-.f64 (log.f64 (+.f64 x 1)) 0)
(log.f64 (+.f64 x 1))
(*.f64 1 (log.f64 (+.f64 x 1)))
(log.f64 (+.f64 x 1))
(*.f64 (log.f64 (+.f64 x 1)) 1)
(log.f64 (+.f64 x 1))
(*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 1/2))
(log.f64 (+.f64 x 1))
(*.f64 4 (/.f64 (log.f64 (+.f64 x 1)) 4))
(log.f64 (+.f64 x 1))
(*.f64 4 (*.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 1))
(log.f64 (+.f64 x 1))
(*.f64 4 (*.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 1/2))
(log.f64 (+.f64 x 1))
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 1/2)
(log.f64 (+.f64 x 1))
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 1/4)
(log.f64 (+.f64 x 1))
(*.f64 1/2 (*.f64 (log.f64 (+.f64 x 1)) 2))
(log.f64 (+.f64 x 1))
(*.f64 (*.f64 (log.f64 (+.f64 x 1)) 1/2) 2)
(log.f64 (+.f64 x 1))
(*.f64 1/4 (*.f64 (log.f64 (+.f64 x 1)) 4))
(log.f64 (+.f64 x 1))
(*.f64 (/.f64 (log.f64 (+.f64 x 1)) 4) 4)
(log.f64 (+.f64 x 1))
(/.f64 (log.f64 (+.f64 x 1)) 1)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 2) 2)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 4) 4)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 x 1)) 8) 8)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)) 16)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) 32)
(log.f64 (+.f64 x 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (log.f64 (+.f64 x 1)) 8)))) 64)
(log.f64 (+.f64 x 1))

localize4.0ms (0%)

Compiler

Compiled 9 to 3 computations (66.7% saved)

localize15.0ms (0.1%)

Compiler

Compiled 10 to 7 computations (30% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 14 computations (26.3% saved)

series0.0ms (0%)

Counts
2 → 3
Calls

6 calls:

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

rewrite108.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1728×bool.json-1
1728×bool.json-2
1672×rational.json-1
1146×rational.json-simplify-35
1082×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
17932
220832
342232
486632
5186832
6422132
7701132
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -4/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/6 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/6 (pow.f64 x 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 -1/6 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))))))

simplify721.0ms (6.5%)

Algorithm
egg-herbie
Rules
3318×rational.json-simplify-35
2756×rational.json-simplify-2
2640×rational.json-simplify-51
1358×rational.json-simplify-49
1120×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075581
1156581
2387581
31072581
42119581
52759581
62876581
72962581
83027581
93091581
103155581
113220581
123285581
133350581
143415581
153480581
163545581
173610581
183675581
194646581
206454581
216542581
226550581
236550581
246550581
256580581
266647581
276710581
286772581
296834581
306896581
316958581
327020581
337082581
347144581
Stop Event
node limit
Counts
35 → 35
Calls
Call 1
Inputs
x
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)
(+.f64 0 (*.f64 -1/6 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))
(-.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)
(/.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
(/.f64 (*.f64 (pow.f64 x 3) -1/3) 2)
(/.f64 (*.f64 (pow.f64 x 3) -2/3) 4)
(/.f64 (*.f64 (pow.f64 x 3) -4/3) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)
(-.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 0)
(*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)
(*.f64 1 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))
(*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 x 1/2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(/.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)))) 64)
Outputs
x
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 0 (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 3) -1/12))
(*.f64 -1/6 (pow.f64 x 3))
(-.f64 (*.f64 -1/6 (pow.f64 x 3)) 0)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -1/3) 2)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -2/3) 4)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -4/3) 8)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)) 16)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) 32)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)
(*.f64 -1/6 (pow.f64 x 3))
(-.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 0)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 x 1/2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 1/2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 1/8)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (+.f64 x x)))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/2) 2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4))
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) -1/3))) 2)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8) 8)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)) 16)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) 32)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/6 (pow.f64 x 3))) 8)))) 64)
(+.f64 x (*.f64 -1/6 (pow.f64 x 3)))

eval59.0ms (0.5%)

Compiler

Compiled 2562 to 2111 computations (17.6% saved)

prune28.0ms (0.2%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1721173
Fresh022
Picked011
Done145
Total1738181
Error
0.0b
Counts
181 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
28.6b
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
28.8b
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7)))))
28.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
48.8b
(log.f64 (/.f64 -1/2 x))
49.3b
(log.f64 (+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x))))
54.6b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
49.9b
(log.f64 (+.f64 x x))
27.9b
x
Compiler

Compiled 75 to 57 computations (24% saved)

localize17.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
Compiler

Compiled 35 to 27 computations (22.9% saved)

series1.0ms (0%)

Counts
1 → 3
Calls

3 calls:

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

rewrite67.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1238×rational.json-simplify-35
1116×bool.json-1
1116×bool.json-2
1072×rational.json-1
1072×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01025
110825
229525
357519
4125319
5341419
Stop Event
node limit
Counts
1 → 26
Calls
Call 1
Inputs
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (/.f64 1/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 x 1/2) (/.f64 1/4 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1 (/.f64 2 (*.f64 (*.f64 x x) 8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 x x) (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 x 1/2) (/.f64 (/.f64 1 x) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (/.f64 (/.f64 1 x) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 4 (/.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 x 8) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (/.f64 1/4 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (+.f64 x x) (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (+.f64 x x) (/.f64 1/2 x)) (+.f64 (+.f64 x x) (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (+.f64 x x) (/.f64 1/2 x)) (+.f64 (+.f64 x x) (/.f64 1/2 x)))))))

simplify85.0ms (0.8%)

Algorithm
egg-herbie
Rules
1492×rational.json-simplify-35
1246×rational.json-simplify-46
1212×rational.json-simplify-53
1016×rational.json-simplify-41
744×rational.json-simplify-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
071635
1151629
2274629
3714629
42381629
56147629
Stop Event
node limit
Counts
29 → 38
Calls
Call 1
Inputs
(/.f64 1/2 x)
(*.f64 2 x)
(*.f64 2 x)
(-.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 0)
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 x 1/2) (/.f64 1/4 x))))
(*.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 2 (*.f64 (*.f64 x x) 8))))
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 1 (+.f64 (+.f64 x x) (/.f64 1/2 x)))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)
(*.f64 4 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4))
(*.f64 4 (+.f64 (*.f64 x 1/2) (/.f64 (/.f64 1 x) 8)))
(*.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 1/2)
(*.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 1/4)
(*.f64 (*.f64 x 1/2) (+.f64 (/.f64 (/.f64 1 x) x) 4))
(*.f64 (*.f64 x 1/2) (+.f64 4 (/.f64 (/.f64 1 x) x)))
(*.f64 1/4 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))))
(*.f64 1/4 (+.f64 (*.f64 x 8) (/.f64 2 x)))
(*.f64 (+.f64 x (/.f64 1/4 x)) 2)
(*.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))
(*.f64 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4) 4)
(/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)
(/.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 2)
(/.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 4)
(/.f64 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8))) 32)
Outputs
(/.f64 1/2 x)
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(-.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 0)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (+.f64 (*.f64 x 1/2) (/.f64 1/4 x))))
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 2 (*.f64 (*.f64 x x) 8))))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 1/4 (*.f64 x x))))
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 1 (+.f64 (+.f64 x x) (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(*.f64 4 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(*.f64 4 (+.f64 (*.f64 x 1/2) (/.f64 (/.f64 1 x) 8)))
(*.f64 4 (+.f64 (*.f64 1/2 x) (/.f64 1/8 x)))
(*.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 1/2)
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 1/4)
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 (*.f64 x 1/2) (+.f64 (/.f64 (/.f64 1 x) x) 4))
(*.f64 (*.f64 1/2 x) (+.f64 4 (/.f64 1 (*.f64 x x))))
(*.f64 1/2 (*.f64 x (+.f64 4 (/.f64 1 (*.f64 x x)))))
(*.f64 x (*.f64 1/2 (+.f64 4 (/.f64 1 (*.f64 x x)))))
(*.f64 1/2 (*.f64 x (+.f64 4 (/.f64 (/.f64 1 x) x))))
(*.f64 (*.f64 x 1/2) (+.f64 4 (/.f64 (/.f64 1 x) x)))
(*.f64 (*.f64 1/2 x) (+.f64 4 (/.f64 1 (*.f64 x x))))
(*.f64 1/2 (*.f64 x (+.f64 4 (/.f64 1 (*.f64 x x)))))
(*.f64 x (*.f64 1/2 (+.f64 4 (/.f64 1 (*.f64 x x)))))
(*.f64 1/2 (*.f64 x (+.f64 4 (/.f64 (/.f64 1 x) x))))
(*.f64 1/4 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))))
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 1/4 (+.f64 (*.f64 x 8) (/.f64 2 x)))
(*.f64 (+.f64 x (/.f64 1/4 x)) 2)
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 4) 4)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(/.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 1)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(/.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 2)
(/.f64 (*.f64 2 (+.f64 (/.f64 1 x) (*.f64 x 4))) 4)
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(/.f64 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8) 8)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) 16)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8)) (*.f64 2 (*.f64 (+.f64 (+.f64 x x) (/.f64 1/2 x)) 8))) 32)
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(+.f64 x (+.f64 x (/.f64 1/2 x)))

localize37.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 x 5) 3/40)
0.1b
(*.f64 (pow.f64 x 3) -1/6)
0.2b
(*.f64 -5/112 (pow.f64 x 7))
22.0b
(+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
Compiler

Compiled 71 to 55 computations (22.5% saved)

series3.0ms (0%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
0.0ms
x
@0
(*.f64 -5/112 (pow.f64 x 7))
0.0ms
x
@inf
(*.f64 -5/112 (pow.f64 x 7))
0.0ms
x
@-inf
(*.f64 -5/112 (pow.f64 x 7))
0.0ms
x
@0
(+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))

rewrite87.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1672×bool.json-1
1672×bool.json-2
1620×rational.json-1
1620×rational.json-2
992×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
112850
231450
362950
4136650
5322250
6650450
Stop Event
node limit
Counts
2 → 27
Calls
Call 1
Inputs
(+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 -5/112 (pow.f64 x 7))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -5/112 (pow.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 7) -5/224) (*.f64 (pow.f64 x 7) -5/224))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -5/112 (pow.f64 x 7)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) -5/56) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) -5/28) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -5/112 (pow.f64 x 7))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -5/112 (pow.f64 x 7)) (*.f64 -5/112 (pow.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -5/112 (pow.f64 x 7)) (*.f64 -5/112 (pow.f64 x 7)))))))

simplify614.0ms (5.5%)

Algorithm
egg-herbie
Rules
3220×rational.json-simplify-51
2740×rational.json-simplify-2
2698×rational.json-simplify-35
1664×rational.json-simplify-1
646×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0701089
11401089
23601089
38451089
422541089
530601089
632121089
733121089
833981089
934731089
1035471089
1136191089
1236901089
1337611089
1438321089
1539031089
1639741089
1740451089
1840451089
1965131089
2065381089
2165431089
2266141089
2366821089
2467501089
2577491089
2678201089
2778911089
2879591089
Stop Event
node limit
Counts
39 → 35
Calls
Call 1
Inputs
x
(+.f64 (*.f64 3/40 (pow.f64 x 5)) x)
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7)))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7)))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(-.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 0)
(*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)
(*.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)
(/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)))) 32)
(+.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)
(+.f64 0 (*.f64 -5/112 (pow.f64 x 7)))
(+.f64 (*.f64 (pow.f64 x 7) -5/224) (*.f64 (pow.f64 x 7) -5/224))
(-.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)
(/.f64 (*.f64 -5/112 (pow.f64 x 7)) 1)
(/.f64 (*.f64 (pow.f64 x 7) -5/56) 2)
(/.f64 (*.f64 (pow.f64 x 7) -5/28) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)))) 32)
Outputs
x
(+.f64 (*.f64 3/40 (pow.f64 x 5)) x)
(+.f64 x (*.f64 3/40 (pow.f64 x 5)))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7)))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7)))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 (*.f64 -5/112 (pow.f64 x 7)) x))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(-.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 0)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 1 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 1/2)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 1/4)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1/2) 2)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 1)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 2) 2)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4) 4)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)) 8)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) 16)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (pow.f64 x 5) 3/40) (*.f64 -5/112 (pow.f64 x 7)))) 4)))) 32)
(+.f64 x (+.f64 (*.f64 3/40 (pow.f64 x 5)) (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 3/40 (pow.f64 x 5)) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))
(+.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 0 (*.f64 -5/112 (pow.f64 x 7)))
(*.f64 -5/112 (pow.f64 x 7))
(+.f64 (*.f64 (pow.f64 x 7) -5/224) (*.f64 (pow.f64 x 7) -5/224))
(*.f64 -5/112 (pow.f64 x 7))
(-.f64 (*.f64 -5/112 (pow.f64 x 7)) 0)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (*.f64 -5/112 (pow.f64 x 7)) 1)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) -5/56) 2)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) -5/28) 4)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)) 8)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) 16)
(*.f64 -5/112 (pow.f64 x 7))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -5/28)))) 32)
(*.f64 -5/112 (pow.f64 x 7))

eval35.0ms (0.3%)

Compiler

Compiled 1661 to 1316 computations (20.8% saved)

prune18.0ms (0.2%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New93194
Fresh011
Picked011
Done156
Total948102
Error
0.0b
Counts
102 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
28.6b
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
28.8b
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7)))))
28.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
48.8b
(log.f64 (/.f64 -1/2 x))
49.3b
(log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))
54.6b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
49.9b
(log.f64 (+.f64 x x))
27.9b
x
Compiler

Compiled 73 to 54 computations (26% saved)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 1/2 x) (+.f64 x x))
Compiler

Compiled 24 to 12 computations (50% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite57.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
968×rational.json-simplify-35
952×bool.json-1
952×bool.json-2
912×rational.json-1
912×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
17319
221619
350919
4115319
5299119
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(+.f64 (/.f64 1/2 x) (+.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 4) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (/.f64 1/2 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1 (/.f64 1/4 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (/.f64 1/4 (*.f64 x x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (/.f64 1/4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 1/2 x) (/.f64 (+.f64 x (/.f64 1/2 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (+.f64 1/2 (/.f64 (/.f64 1/8 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 1/2 x) (/.f64 1/8 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (/.f64 2 x) (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (/.f64 1/4 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 x (/.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 x (/.f64 1/2 x))) (+.f64 x (+.f64 x (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 x (/.f64 1/2 x))) (+.f64 x (+.f64 x (/.f64 1/2 x))))))))

simplify80.0ms (0.7%)

Algorithm
egg-herbie
Rules
1170×rational.json-simplify-61
1040×rational.json-simplify-35
896×rational.json-simplify-19
772×rational.json-simplify-46
682×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076879
1151879
2283879
3791879
42169879
55899879
Stop Event
node limit
Counts
39 → 38
Calls
Call 1
Inputs
(/.f64 1/2 x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 0)
(*.f64 1/2 (+.f64 (*.f64 x 4) (/.f64 1 x)))
(*.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))
(*.f64 x (+.f64 (/.f64 1/2 (*.f64 x x)) 2))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 1/4 (*.f64 x x))))
(*.f64 (+.f64 x x) (+.f64 (/.f64 1/4 (*.f64 x x)) 1))
(*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)
(*.f64 1 (+.f64 x (+.f64 x (/.f64 1/2 x))))
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 2 (+.f64 (*.f64 1/2 x) (/.f64 (+.f64 x (/.f64 1/2 x)) 2)))
(*.f64 (*.f64 x 4) (+.f64 1/2 (/.f64 (/.f64 1/8 x) x)))
(*.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))
(*.f64 4 (+.f64 (*.f64 1/2 x) (/.f64 1/8 x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))
(*.f64 1/4 (+.f64 (/.f64 2 x) (*.f64 x 8)))
(*.f64 (+.f64 x (/.f64 1/4 x)) 2)
(*.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))
(*.f64 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)
(/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)
(/.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)
(/.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8))) 32)
Outputs
(/.f64 1/2 x)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(+.f64 (*.f64 x 2) (*.f64 1/2 (/.f64 1 x)))
(-.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 0)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 1/2 (+.f64 (*.f64 x 4) (/.f64 1 x)))
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))
(*.f64 x (+.f64 (/.f64 1/2 (*.f64 x x)) 2))
(*.f64 x (+.f64 2 (/.f64 1/2 (*.f64 x x))))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 1/4 (*.f64 x x))))
(*.f64 (+.f64 x x) (+.f64 (/.f64 1/4 (*.f64 x x)) 1))
(*.f64 (+.f64 x x) (+.f64 1 (/.f64 1/4 (*.f64 x x))))
(*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 1 (+.f64 x (+.f64 x (/.f64 1/2 x))))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 2 (+.f64 (*.f64 1/2 x) (/.f64 (+.f64 x (/.f64 1/2 x)) 2)))
(*.f64 (*.f64 x 4) (+.f64 1/2 (/.f64 (/.f64 1/8 x) x)))
(*.f64 (*.f64 x 4) (+.f64 1/2 (/.f64 1/8 (*.f64 x x))))
(*.f64 x (*.f64 4 (+.f64 1/2 (/.f64 1/8 (*.f64 x x)))))
(*.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 1/2)
(*.f64 1/2 (+.f64 (/.f64 1 x) (*.f64 x 4)))
(*.f64 4 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 4 (+.f64 (*.f64 1/2 x) (/.f64 1/8 x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 1/4)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4))
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(*.f64 1/4 (+.f64 (/.f64 2 x) (*.f64 x 8)))
(*.f64 (+.f64 x (/.f64 1/4 x)) 2)
(*.f64 2 (+.f64 x (/.f64 1/4 x)))
(*.f64 (+.f64 1 (*.f64 x (*.f64 x 4))) (/.f64 1/2 x))
(*.f64 (/.f64 1/2 x) (+.f64 1 (*.f64 x (*.f64 x 4))))
(*.f64 (/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(/.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 1)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(/.f64 (+.f64 (*.f64 x 4) (/.f64 1 x)) 2)
(/.f64 (+.f64 (/.f64 1 x) (*.f64 x 4)) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 4) 4)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(/.f64 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8) 8)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) 16)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8)) (*.f64 2 (*.f64 (+.f64 x (+.f64 x (/.f64 1/2 x))) 8))) 32)
(+.f64 x (+.f64 x (/.f64 1/2 x)))
(+.f64 (/.f64 1/2 x) (+.f64 x x))

eval7.0ms (0.1%)

Compiler

Compiled 405 to 296 computations (26.9% saved)

prune9.0ms (0.1%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New38038
Fresh011
Picked011
Done066
Total38846
Error
0.0b
Counts
46 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
28.6b
(+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40))
28.8b
(+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7)))))
28.9b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) x)
48.8b
(log.f64 (/.f64 -1/2 x))
49.3b
(log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))
54.6b
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
49.9b
(log.f64 (+.f64 x x))
27.9b
x
Compiler

Compiled 73 to 54 computations (26% saved)

regimes41.0ms (0.4%)

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

3 calls:

22.0ms
x
10.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
6.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Results
ErrorSegmentsBranch
0.3b3x
7.8b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.8b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 101 to 71 computations (29.7% saved)

bsearch51.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
3.5328000023028025e-5
3.5284342859456586
23.0ms
-836093951031035400.0
-0.16921036592766378
Results
46.0ms304×body256valid
Compiler

Compiled 563 to 446 computations (20.8% saved)

regimes34.0ms (0.3%)

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

3 calls:

18.0ms
x
7.0ms
(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
7.0ms
(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
Results
ErrorSegmentsBranch
0.3b3x
7.8b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.8b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 82 to 56 computations (31.7% saved)

bsearch47.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
3.5328000023028025e-5
3.5284342859456586
22.0ms
-836093951031035400.0
-0.16921036592766378
Results
35.0ms304×body256valid
Compiler

Compiled 449 to 351 computations (21.8% saved)

regimes30.0ms (0.3%)

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

3 calls:

14.0ms
x
8.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.4b3x
7.9b3(log.f64 (+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1))))
7.9b3(+.f64 x (sqrt.f64 (+.f64 (*.f64 x x) 1)))
Compiler

Compiled 69 to 46 computations (33.3% saved)

bsearch58.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
3.5328000023028025e-5
3.5284342859456586
33.0ms
-836093951031035400.0
-0.16921036592766378
Results
43.0ms304×body256valid
Compiler

Compiled 335 to 256 computations (23.6% saved)

regimes13.0ms (0.1%)

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

1 calls:

11.0ms
x
Results
ErrorSegmentsBranch
0.5b3x
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch39.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
3.5328000023028025e-5
3.5284342859456586
22.0ms
-836093951031035400.0
-0.16921036592766378
Results
35.0ms304×body256valid
Compiler

Compiled 299 to 229 computations (23.4% saved)

regimes11.0ms (0.1%)

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

1 calls:

10.0ms
x
Results
ErrorSegmentsBranch
0.9b3x
Compiler

Compiled 16 to 10 computations (37.5% saved)

bsearch41.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
3.5328000023028025e-5
3.5284342859456586
23.0ms
-836093951031035400.0
-0.16921036592766378
Results
37.0ms304×body256valid
Compiler

Compiled 185 to 134 computations (27.6% saved)

regimes15.0ms (0.1%)

Counts
3 → 2
Calls
Call 1
Inputs
x
(log.f64 (+.f64 x 1))
(log.f64 (+.f64 x x))
Outputs
x
(log.f64 (+.f64 x x))
Calls

1 calls:

14.0ms
x
Results
ErrorSegmentsBranch
14.9b2x
Compiler

Compiled 12 to 7 computations (41.7% saved)

bsearch27.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
3.5328000023028025e-5
3.5284342859456586
Results
26.0ms144×body256valid
Compiler

Compiled 95 to 64 computations (32.6% saved)

regimes6.0ms (0.1%)

Accuracy

Total -36.4b remaining (-150.4%)

Threshold costs -36.4b (-150.4%)

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

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
24.2b2x
Compiler

Compiled 8 to 5 computations (37.5% saved)

bsearch20.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
3.5328000023028025e-5
3.5284342859456586
Results
18.0ms144×body256valid
Compiler

Compiled 95 to 73 computations (23.2% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063410
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -5854679515581645/4503599627370496) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 4728779608739021/4503599627370496) (+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5854679515581645/4503599627370496) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 2296835809958953/2251799813685248) (+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40)) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 4278419646001971/4503599627370496) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5/4) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (+.f64 x x))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5/4) x (log.f64 (+.f64 x x))))
(if (<=.f64 x 5/4) x (log.f64 (+.f64 x x)))
(if (<=.f64 x 889460926405673/562949953421312) x (log.f64 (+.f64 x 1)))
x
Outputs
(if (<=.f64 x -5854679515581645/4503599627370496) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 4728779608739021/4503599627370496) (+.f64 (*.f64 (pow.f64 x 3) -1/6) (+.f64 (*.f64 (pow.f64 x 5) 3/40) (+.f64 x (*.f64 -5/112 (pow.f64 x 7))))) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5854679515581645/4503599627370496) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 2296835809958953/2251799813685248) (+.f64 (+.f64 x (*.f64 (pow.f64 x 3) -1/6)) (*.f64 (pow.f64 x 5) 3/40)) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 4278419646001971/4503599627370496) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (+.f64 (/.f64 1/2 x) (+.f64 x x)))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5/4) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) x) (log.f64 (+.f64 x x))))
(if (<=.f64 x -5/4) (log.f64 (/.f64 -1/2 x)) (if (<=.f64 x 5/4) x (log.f64 (+.f64 x x))))
(if (<=.f64 x 5/4) x (log.f64 (+.f64 x x)))
(if (<=.f64 x 889460926405673/562949953421312) x (log.f64 (+.f64 x 1)))
x
Compiler

Compiled 166 to 118 computations (28.9% saved)

soundness237.0ms (2.1%)

Algorithm
egg-herbie
Rules
1536×rational.json-simplify-19
1492×rational.json-simplify-35
1246×rational.json-simplify-46
1212×rational.json-simplify-53
1128×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01752300
13512284
26612284
314142284
425222284
546082284
659902284
775422284
071635
1151629
2274629
3714629
42381629
56147629
Stop Event
node limit
node limit
Compiler

Compiled 104 to 77 computations (26% saved)

end119.0ms (1.1%)

Compiler

Compiled 159 to 104 computations (34.6% saved)

Profiling

Loading profile data...