Details

Time bar (total: 5.1s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%50.4%49.6%0%0%0%0
100%50.4%0%49.6%0%0%0%1
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample1.9s (36.6%)

Results
973.0ms2725×body1024valid
606.0ms3061×body512valid
273.0ms2470×body256valid
Bogosity

preprocess88.0ms (1.7%)

Algorithm
egg-herbie
Rules
1912×rational.json-simplify-35
1370×rational.json-simplify-26
1328×rational.json-simplify-2
1130×rational.json-simplify-1
812×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
11011
21211
31611
42211
53111
66511
720211
888611
9153511
10237311
11351911
12592911
13707011
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (sin.f64 x) x)
Outputs
(-.f64 (sin.f64 x) x)
Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify91.0ms (1.8%)

Algorithm
egg-herbie
Rules
1912×rational.json-simplify-35
1370×rational.json-simplify-26
1328×rational.json-simplify-2
1130×rational.json-simplify-1
812×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
11011
21211
31611
42211
53111
66511
720211
888611
9153511
10237311
11351911
12592911
13707011
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (sin.f64 x) x)
Outputs
(-.f64 (sin.f64 x) x)

eval0.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
19.8b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
19.8b
(-.f64 (sin.f64 x) x)
Compiler

Compiled 5 to 3 computations (40% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.6b
(-.f64 (sin.f64 x) x)
Compiler

Compiled 8 to 3 computations (62.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 (sin.f64 x) x)
0.0ms
x
@inf
(-.f64 (sin.f64 x) x)
0.0ms
x
@-inf
(-.f64 (sin.f64 x) x)

rewrite76.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1570×bool.json-1
1570×bool.json-2
1524×rational.json-1
1524×rational.json-2
1524×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
16311
220611
345611
497211
5221011
6541011
Stop Event
node limit
Counts
1 → 66
Calls
Call 1
Inputs
(-.f64 (sin.f64 x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 x) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (sin.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (PI.f64) (-.f64 0 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (PI.f64) (-.f64 (neg.f64 x) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) x) (+.f64 (sin.f64 x) (neg.f64 (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) x) (-.f64 0 (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) x) (-.f64 (neg.f64 (PI.f64)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (PI.f64) 1/2) (-.f64 (*.f64 (PI.f64) 1/2) (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (-.f64 0 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (-.f64 (-.f64 (PI.f64) x) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (sin.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (-.f64 (PI.f64) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (-.f64 (sin.f64 x) -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (+.f64 x -1)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (-.f64 (sin.f64 x) -1) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) (*.f64 (-.f64 (sin.f64 x) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (PI.f64)) (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 -1 (-.f64 x (*.f64 (PI.f64) 2))) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (-.f64 x -1)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 x) (-.f64 -1 (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 x) (-.f64 (-.f64 (PI.f64) 1) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 x) -1) (-.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 x) (-.f64 (sin.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (PI.f64) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 (-.f64 -1 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 x) (neg.f64 (PI.f64))) (-.f64 (PI.f64) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 -1 (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (neg.f64 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) (+.f64 1 (PI.f64))) (-.f64 (-.f64 (sin.f64 x) -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))) (+.f64 1 (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (-.f64 (PI.f64) (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))) (-.f64 1 (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (neg.f64 (sin.f64 x))) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (sin.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (sin.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (sin.f64 x) 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (sin.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (sin.f64 x) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (sin.f64 x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (sin.f64 x) 2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 x (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) -2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (sin.f64 x) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (sin.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (sin.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (sin.f64 x) x) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 x (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (sin.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (sin.f64 x) x) (-.f64 (sin.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (sin.f64 x) x) (-.f64 (sin.f64 x) x))))))

simplify221.0ms (4.3%)

Algorithm
egg-herbie
Rules
1904×rational.json-simplify-1
1752×rational.json-simplify-35
1052×rational.json-simplify-26
1050×rational.json-simplify-52
938×rational.json-simplify-2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01801426
13601414
27751410
319791410
436711152
546501152
652941152
758331152
863841152
969751152
1077991152
Stop Event
node limit
Counts
78 → 92
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))
(*.f64 -1 x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(+.f64 (-.f64 (sin.f64 x) x) 0)
(+.f64 0 (-.f64 (sin.f64 x) x))
(+.f64 (PI.f64) (-.f64 0 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (PI.f64) (-.f64 (neg.f64 x) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) x) (+.f64 (sin.f64 x) (neg.f64 (PI.f64))))
(+.f64 (-.f64 (PI.f64) x) (-.f64 0 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) x) (-.f64 (neg.f64 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (*.f64 (PI.f64) 1/2) (-.f64 (*.f64 (PI.f64) 1/2) (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 0 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 (-.f64 (PI.f64) x) (neg.f64 (sin.f64 x))))
(+.f64 (neg.f64 x) (sin.f64 x))
(+.f64 (neg.f64 x) (-.f64 (PI.f64) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 -1 (-.f64 (-.f64 (sin.f64 x) -1) x))
(+.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (+.f64 x -1)) (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 (-.f64 (sin.f64 x) -1) x) -1)
(+.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) (*.f64 (-.f64 (sin.f64 x) x) 1/2))
(+.f64 (-.f64 1 (PI.f64)) (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 -1 (-.f64 x (*.f64 (PI.f64) 2))) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (-.f64 x -1)) (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 1 x) (-.f64 -1 (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 1 x) (-.f64 (-.f64 (PI.f64) 1) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (sin.f64 x) -1) (-.f64 -1 x))
(+.f64 (-.f64 -1 x) (-.f64 (sin.f64 x) -1))
(+.f64 (+.f64 (PI.f64) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 (-.f64 -1 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (+.f64 (sin.f64 x) (neg.f64 (PI.f64))) (-.f64 (PI.f64) x))
(+.f64 (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 -1 (PI.f64)))
(+.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (neg.f64 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) (+.f64 1 (PI.f64))) (-.f64 (-.f64 (sin.f64 x) -1) x))
(+.f64 (-.f64 -1 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))) (+.f64 1 (PI.f64)))
(+.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (-.f64 (PI.f64) (+.f64 x -1)))
(+.f64 (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))) (-.f64 1 (PI.f64)))
(+.f64 (-.f64 -1 (neg.f64 (sin.f64 x))) (-.f64 1 x))
(*.f64 (-.f64 (sin.f64 x) x) 1)
(*.f64 1 (-.f64 (sin.f64 x) x))
(*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 1/2))
(*.f64 2 (-.f64 (*.f64 (sin.f64 x) 1/2) (*.f64 x 1/2)))
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 1/2)
(*.f64 (-.f64 x (sin.f64 x)) -1)
(*.f64 4 (/.f64 (-.f64 (sin.f64 x) x) 4))
(*.f64 4 (*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 1/2))
(*.f64 4 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 1))
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 (sin.f64 x) x) 2))
(*.f64 1/2 (-.f64 (*.f64 (sin.f64 x) 2) (+.f64 x x)))
(*.f64 -1 (-.f64 x (sin.f64 x)))
(*.f64 -1 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) -2) 2))
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 (sin.f64 x) x) 4))
(*.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 4)
(/.f64 (-.f64 (sin.f64 x) x) 1)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 2)
(/.f64 (-.f64 x (sin.f64 x)) -1)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 4)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) -2) -2)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 8)
(/.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) 16)
(/.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2))) 4)
(/.f64 (/.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -1) 4)
(neg.f64 (-.f64 x (sin.f64 x)))
Outputs
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))
(+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3)))))
(+.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/362880 (pow.f64 x 9))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 1/362880 (pow.f64 x 9)))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 1/362880 (pow.f64 x 9)))))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (sin.f64 x) (*.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (sin.f64 x) x) 0)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 0 (-.f64 (sin.f64 x) x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (PI.f64) (-.f64 0 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (PI.f64) (neg.f64 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (PI.f64) (-.f64 (neg.f64 x) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) x) (+.f64 (sin.f64 x) (neg.f64 (PI.f64))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) x) (-.f64 0 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) x) (-.f64 (neg.f64 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (*.f64 (PI.f64) 1/2) (-.f64 (*.f64 (PI.f64) 1/2) (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 0 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (neg.f64 (PI.f64)) (neg.f64 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 x (PI.f64))))
(+.f64 (neg.f64 (PI.f64)) (+.f64 (-.f64 (sin.f64 x) x) (PI.f64)))
(+.f64 (neg.f64 (PI.f64)) (-.f64 (-.f64 (PI.f64) x) (neg.f64 (sin.f64 x))))
(+.f64 (neg.f64 (PI.f64)) (neg.f64 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 x (PI.f64))))
(+.f64 (neg.f64 (PI.f64)) (+.f64 (-.f64 (sin.f64 x) x) (PI.f64)))
(+.f64 (neg.f64 x) (sin.f64 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (neg.f64 x) (-.f64 (PI.f64) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 -1 (-.f64 (-.f64 (sin.f64 x) -1) x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) (+.f64 x -1)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (+.f64 x -1)) (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (sin.f64 (neg.f64 x))) (+.f64 x -1)))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (+.f64 x -1)) (sin.f64 (neg.f64 x))))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 (-.f64 x (PI.f64)) 1)))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (sin.f64 x) (+.f64 -1 (-.f64 x (PI.f64)))))
(+.f64 (-.f64 (-.f64 (sin.f64 x) -1) x) -1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) (*.f64 (-.f64 (sin.f64 x) x) 1/2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 1 (PI.f64)) (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 -1 (-.f64 x (*.f64 (PI.f64) 2))) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 1 (PI.f64)) (-.f64 (-.f64 (PI.f64) (-.f64 x -1)) (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 1 x) (-.f64 -1 (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 1 x) (-.f64 (-.f64 (PI.f64) 1) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (sin.f64 x) -1) (-.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 x) (-.f64 (sin.f64 x) -1))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 (PI.f64) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 (-.f64 -1 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 (sin.f64 x) (neg.f64 (PI.f64))) (-.f64 (PI.f64) x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 (sin.f64 x) (-.f64 (PI.f64) (+.f64 x -1))) (-.f64 -1 (PI.f64)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (neg.f64 (PI.f64)) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (sin.f64 x) (-.f64 (PI.f64) (neg.f64 (PI.f64)))))
(+.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (-.f64 (sin.f64 x) (PI.f64)) (PI.f64)))
(+.f64 (-.f64 (*.f64 (PI.f64) 2) x) (-.f64 (sin.f64 x) (*.f64 (PI.f64) 2)))
(+.f64 (-.f64 (PI.f64) (+.f64 1 (PI.f64))) (-.f64 (-.f64 (sin.f64 x) -1) x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))) (+.f64 1 (PI.f64)))
(+.f64 (PI.f64) (neg.f64 (+.f64 (PI.f64) (-.f64 x (sin.f64 x)))))
(+.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (-.f64 (PI.f64) (+.f64 x -1)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (-.f64 (-.f64 x (PI.f64)) (sin.f64 x))) (-.f64 1 (PI.f64)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (neg.f64 (sin.f64 x))) (-.f64 1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (-.f64 (sin.f64 x) x) 1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 1 (-.f64 (sin.f64 x) x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 1/2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 2 (-.f64 (*.f64 (sin.f64 x) 1/2) (*.f64 x 1/2)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 1/2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (-.f64 x (sin.f64 x)) -1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 4 (/.f64 (-.f64 (sin.f64 x) x) 4))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 4 (*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 1/2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 4 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 1))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 1/4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 1/2 (*.f64 (-.f64 (sin.f64 x) x) 2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 1/2 (-.f64 (*.f64 (sin.f64 x) 2) (+.f64 x x)))
(*.f64 -1 (-.f64 x (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 -1 (*.f64 (/.f64 (-.f64 (sin.f64 x) x) -2) 2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 1/4 (*.f64 (-.f64 (sin.f64 x) x) 4))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (/.f64 (-.f64 (sin.f64 x) x) 4) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (-.f64 (sin.f64 x) x) 1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 2) 2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (-.f64 x (sin.f64 x)) -1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) -2) -2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 8)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) 16)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) 2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)) (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2)) (neg.f64 (*.f64 (-.f64 (sin.f64 x) x) -2))) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (/.f64 (*.f64 (-.f64 x (sin.f64 x)) 4) -1) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(neg.f64 (-.f64 x (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)

eval19.0ms (0.4%)

Compiler

Compiled 983 to 538 computations (45.3% saved)

prune15.0ms (0.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New87592
Fresh000
Picked011
Done000
Total87693
Error
0.1b
Counts
93 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
19.8b
(-.f64 (sin.f64 x) x)
1.0b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))))
1.0b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
1.2b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
1.6b
(*.f64 -1/6 (pow.f64 x 3))
60.0b
(neg.f64 x)
Compiler

Compiled 131 to 107 computations (18.3% saved)

localize22.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

Compiled 60 to 48 computations (20% saved)

series5.0ms (0.1%)

Counts
4 → 6
Calls

12 calls:

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

rewrite103.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1650×bool.json-1
1650×bool.json-2
1584×rational.json-1
1584×rational.json-2
1062×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01788
116588
238488
374588
4160488
5336888
6626388
Stop Event
node limit
Counts
4 → 53
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 1/120 (pow.f64 x 5))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
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 (*.f64 -1/6 (pow.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)))) (#(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 1/120 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/120 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 5) 1/240))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/120 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/120 (pow.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 1/60) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 1/30) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/120 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/120 (pow.f64 x 5)) (*.f64 1/120 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/120 (pow.f64 x 5)) (*.f64 1/120 (pow.f64 x 5)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/5040 (pow.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 7) -1/10080))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) -1/2520) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) -1/1260) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -1/5040 (pow.f64 x 7))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/5040 (pow.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/5040 (pow.f64 x 7)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2) (*.f64 (pow.f64 x 3) -1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 3) -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 5) 1/60)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))))))

simplify506.0ms (9.9%)

Algorithm
egg-herbie
Rules
4836×rational.json-simplify-35
1748×rational.json-simplify-2
1570×rational.json-simplify-1
950×rational.json-simplify-41
864×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251685
12511685
26061685
318381685
442591685
547801685
648711685
749051685
849231685
949231685
1058681685
1162411685
1264741685
1366991685
1469241685
1571491685
1673741685
1775991685
1875991685
1975991685
2078241685
Stop Event
node limit
Counts
59 → 59
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))
(+.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 (*.f64 -1/6 (pow.f64 x 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) 0)
(+.f64 0 (*.f64 1/120 (pow.f64 x 5)))
(+.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 5) 1/240))
(-.f64 (*.f64 1/120 (pow.f64 x 5)) 0)
(/.f64 (*.f64 1/120 (pow.f64 x 5)) 1)
(/.f64 (*.f64 (pow.f64 x 5) 1/60) 2)
(/.f64 (*.f64 (pow.f64 x 5) 1/30) 4)
(/.f64 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)
(+.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)
(+.f64 0 (*.f64 -1/5040 (pow.f64 x 7)))
(+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 7) -1/10080))
(-.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)
(/.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)
(/.f64 (*.f64 (pow.f64 x 7) -1/2520) 2)
(/.f64 (*.f64 (pow.f64 x 7) -1/1260) 4)
(/.f64 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 0)
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)
(*.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))
(*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 3) -1/3)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 5) 1/60)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8))) 32)
Outputs
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))
(+.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 (*.f64 -1/6 (pow.f64 x 3)) 8) 8)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) 16)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) 0)
(*.f64 1/120 (pow.f64 x 5))
(+.f64 0 (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/120 (pow.f64 x 5))
(+.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 5) 1/240))
(*.f64 1/120 (pow.f64 x 5))
(-.f64 (*.f64 1/120 (pow.f64 x 5)) 0)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 1/120 (pow.f64 x 5)) 1)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 1/60) 2)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 1/30) 4)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8) 8)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) 16)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)) (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)
(*.f64 1/120 (pow.f64 x 5))
(+.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 0 (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 7) -1/10080))
(*.f64 -1/5040 (pow.f64 x 7))
(-.f64 (*.f64 -1/5040 (pow.f64 x 7)) 0)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) -1/2520) 2)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) -1/1260) 4)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8) 8)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) 16)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)) (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)
(*.f64 -1/5040 (pow.f64 x 7))
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 0)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 1/2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 1/2)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 1/4)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 3) -1/3)))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 2) (*.f64 (pow.f64 x 5) 1/60)))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))) 2)))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1/2) 2)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 1)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 2) 2)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 4) 4)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8) 8)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) 16)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7)))) 8))) 32)
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))

localize2.0ms (0%)

Compiler

Compiled 4 to 2 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 33 to 26 computations (21.2% saved)

series1.0ms (0%)

Counts
1 → 3
Calls

3 calls:

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

rewrite109.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1906×bool.json-1
1384×rational.json-simplify-35
1280×bool.json-2
1220×rational.json-1
1220×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01231
111631
227831
353831
4110331
5238631
6486731
7773431
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))))))

simplify950.0ms (18.6%)

Algorithm
egg-herbie
Rules
5860×rational.json-simplify-51
1954×rational.json-simplify-35
1688×rational.json-simplify-2
1132×rational.json-simplify-1
1080×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060665
1115665
2279665
3696665
41086665
52408665
63171665
73219665
83249665
93275665
103301665
113327665
123376665
133402665
143428665
153454665
163480665
173506665
183532665
194325665
204689665
214721665
224751665
234780665
244809665
254838665
264867665
274896665
284925665
294954665
304983665
315012665
325041665
335070665
345099665
355128665
365157665
375186665
385215665
395244665
405244665
Stop Event
node limit
Counts
23 → 23
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 1/120 (pow.f64 x 5))
(*.f64 1/120 (pow.f64 x 5))
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 0)
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)
(*.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))
(*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)))) 64)
Outputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 1/120 (pow.f64 x 5))
(*.f64 1/120 (pow.f64 x 5))
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 0)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 1/2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 1/4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/2) 2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 2) 2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8) 8)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)) 16)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) 32)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 8)))) 64)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))

localize36.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -1/5040 (pow.f64 x 7))
0.0b
(*.f64 1/120 (pow.f64 x 5))
0.1b
(*.f64 1/362880 (pow.f64 x 9))
0.1b
(*.f64 -1/6 (pow.f64 x 3))
Compiler

Compiled 93 to 75 computations (19.4% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 1/362880 (pow.f64 x 9))
0.0ms
x
@-inf
(*.f64 1/362880 (pow.f64 x 9))
0.0ms
x
@inf
(*.f64 1/362880 (pow.f64 x 9))

rewrite94.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1594×bool.json-1
1594×bool.json-2
1534×rational.json-1
1534×rational.json-2
1534×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16913
218813
338113
475813
5158913
6368613
7638713
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 1/362880 (pow.f64 x 9))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/362880 (pow.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 9) 1/725760) (*.f64 (pow.f64 x 9) 1/725760))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 9) 1/181440) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 9) 1/90720) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 9) 1/45360) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/362880 (pow.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/362880 (pow.f64 x 9)) (*.f64 1/362880 (pow.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/362880 (pow.f64 x 9)) (*.f64 1/362880 (pow.f64 x 9)))))))

simplify635.0ms (12.5%)

Algorithm
egg-herbie
Rules
7920×rational.json-simplify-41
3852×rational.json-simplify-35
2394×rational.json-simplify-49
2124×rational.json-simplify-2
774×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037143
180143
2145143
3324143
4759143
52241143
62973143
73135143
83194143
93239143
103279143
113317143
123355143
133393143
143431143
153469143
163507143
173545143
183583143
193621143
203659143
215184143
225386143
235403143
245404143
255404143
266082143
276250143
286418143
296586143
306754143
316922143
327090143
337090143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)
(+.f64 0 (*.f64 1/362880 (pow.f64 x 9)))
(+.f64 (*.f64 (pow.f64 x 9) 1/725760) (*.f64 (pow.f64 x 9) 1/725760))
(-.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)
(/.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)
(/.f64 (*.f64 (pow.f64 x 9) 1/181440) 2)
(/.f64 (*.f64 (pow.f64 x 9) 1/90720) 4)
(/.f64 (*.f64 (pow.f64 x 9) 1/45360) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)))) 64)
Outputs
(+.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)
(*.f64 1/362880 (pow.f64 x 9))
(+.f64 0 (*.f64 1/362880 (pow.f64 x 9)))
(*.f64 1/362880 (pow.f64 x 9))
(+.f64 (*.f64 (pow.f64 x 9) 1/725760) (*.f64 (pow.f64 x 9) 1/725760))
(*.f64 1/362880 (pow.f64 x 9))
(-.f64 (*.f64 1/362880 (pow.f64 x 9)) 0)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 (pow.f64 x 9) 1/181440) 2)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 (pow.f64 x 9) 1/90720) 4)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 (pow.f64 x 9) 1/45360) 8)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)) 16)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) 32)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 9) 1/45360)))) 64)
(*.f64 1/362880 (pow.f64 x 9))

eval146.0ms (2.9%)

Compiler

Compiled 3127 to 2663 computations (14.8% saved)

prune21.0ms (0.4%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New1560156
Fresh000
Picked011
Done055
Total1566162
Error
0.1b
Counts
162 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
19.8b
(-.f64 (sin.f64 x) x)
1.0b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))))
1.0b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
1.2b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
1.6b
(*.f64 -1/6 (pow.f64 x 3))
60.0b
(neg.f64 x)
Compiler

Compiled 68 to 55 computations (19.1% saved)

regimes9.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(-.f64 (sin.f64 x) x)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 1/362880 (pow.f64 x 9)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))))
Outputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
Calls

2 calls:

4.0ms
x
2.0ms
(-.f64 (sin.f64 x) x)
Results
ErrorSegmentsBranch
1.0b1x
1.0b1(-.f64 (sin.f64 x) x)
Compiler

Compiled 70 to 54 computations (22.9% saved)

regimes8.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(-.f64 (sin.f64 x) x)
(*.f64 -1/6 (pow.f64 x 3))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
Outputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
Calls

2 calls:

5.0ms
x
2.0ms
(-.f64 (sin.f64 x) x)
Results
ErrorSegmentsBranch
1.2b1x
1.2b1(-.f64 (sin.f64 x) x)
Compiler

Compiled 30 to 21 computations (30% saved)

regimes6.0ms (0.1%)

Counts
3 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(-.f64 (sin.f64 x) x)
(*.f64 -1/6 (pow.f64 x 3))
Outputs
(*.f64 -1/6 (pow.f64 x 3))
Calls

2 calls:

3.0ms
x
2.0ms
(-.f64 (sin.f64 x) x)
Results
ErrorSegmentsBranch
1.6b1x
1.6b1(-.f64 (sin.f64 x) x)
Compiler

Compiled 19 to 12 computations (36.8% saved)

regimes6.0ms (0.1%)

Accuracy

Total -40.4b remaining (-204.1%)

Threshold costs -40.4b (-204.1%)

Counts
2 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(-.f64 (sin.f64 x) x)
Outputs
(-.f64 (sin.f64 x) x)
Calls

2 calls:

3.0ms
x
2.0ms
(-.f64 (sin.f64 x) x)
Results
ErrorSegmentsBranch
19.8b1x
19.8b1(-.f64 (sin.f64 x) x)
Compiler

Compiled 14 to 8 computations (42.9% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022109
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 -1/6 (pow.f64 x 3))
(-.f64 (sin.f64 x) x)
(neg.f64 x)
Outputs
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 -1/6 (pow.f64 x 3))
(-.f64 (sin.f64 x) x)
(neg.f64 x)
Compiler

Compiled 44 to 35 computations (20.5% saved)

soundness0.0ms (0%)

end38.0ms (0.7%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

Profiling

Loading profile data...