Details

Time bar (total: 4.3s)

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)

sample2.1s (48.8%)

Results
1.1s2595×body1024valid
694.0ms3133×body512valid
275.0ms2528×body256valid
Bogosity

preprocess90.0ms (2.1%)

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)

simplify94.0ms (2.2%)

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
20.2b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(-.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.9b
(-.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)

rewrite92.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1716×rational.json-1
1716×rational.json-2
1716×rational.json-3
1192×exponential.json-3
1192×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
14211
211211
324211
448411
5115011
6378411
7737511
Stop Event
node limit
Counts
1 → 79
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) (neg.f64 (+.f64 x (-.f64 (PI.f64) (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) (neg.f64 (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) x) (-.f64 (sin.f64 x) (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (PI.f64) 1/2) (-.f64 (*.f64 (PI.f64) 1/2) (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (+.f64 (-.f64 (PI.f64) x) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (neg.f64 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 x (PI.f64))))))) (#(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 (sin.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (+.f64 1 (sin.f64 x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 x) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (-.f64 -1 (PI.f64)) (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (sin.f64 x) (-.f64 -1 (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 x) (-.f64 1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (+.f64 1 (-.f64 (PI.f64) x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (PI.f64)) (-.f64 (+.f64 1 (-.f64 (PI.f64) x)) (neg.f64 (sin.f64 x))))))) (#(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 (sin.f64 x)) (PI.f64))))))) (#(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 1 x)) (neg.f64 (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (PI.f64) (+.f64 1 x)) (+.f64 (-.f64 1 (PI.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 1 (sin.f64 x)) (-.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 x) (+.f64 1 (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (-.f64 x (sin.f64 x)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (PI.f64) (+.f64 1 (-.f64 (PI.f64) x))) (-.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 1 (-.f64 (PI.f64) x))) (-.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 (sin.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))) (+.f64 1 (PI.f64)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (+.f64 1 (-.f64 (PI.f64) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))) (-.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 (*.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) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (*.f64 (sin.f64 x) 1/4) (*.f64 x 1/4)))))) (#(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 (-.f64 x (sin.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 x (sin.f64 x))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 1/8)))) (#(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 -2 (*.f64 (-.f64 x (sin.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (sin.f64 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 1/4 (-.f64 (*.f64 (sin.f64 x) 4) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 2 (-.f64 x (sin.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 (sin.f64 x) x) 8))))) (#(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 2 (-.f64 x (sin.f64 x))) -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 (*.f64 2 (*.f64 (-.f64 x (sin.f64 x)) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (sin.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 x (sin.f64 x)))))))

simplify139.0ms (3.3%)

Algorithm
egg-herbie
Rules
1732×rational.json-simplify-26
1344×rational.json-simplify-35
1148×rational.json-simplify-2
1030×rational.json-simplify-45
960×rational.json-simplify-48
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02031509
14201509
29211509
318291509
435481181
556881181
668861181
778851181
Stop Event
node limit
Counts
91 → 91
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) (neg.f64 (+.f64 x (-.f64 (PI.f64) (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) (neg.f64 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) x) (-.f64 (sin.f64 x) (PI.f64)))
(+.f64 (*.f64 (PI.f64) 1/2) (-.f64 (*.f64 (PI.f64) 1/2) (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))))
(+.f64 (neg.f64 (PI.f64)) (+.f64 (-.f64 (PI.f64) x) (sin.f64 x)))
(+.f64 (neg.f64 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) x)))
(+.f64 (neg.f64 (PI.f64)) (neg.f64 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))))
(+.f64 (neg.f64 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 x (PI.f64))))
(+.f64 (neg.f64 x) (sin.f64 x))
(+.f64 (neg.f64 x) (-.f64 (PI.f64) (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 -1 (+.f64 (sin.f64 x) (-.f64 1 x)))
(+.f64 -1 (+.f64 (+.f64 1 (sin.f64 x)) (neg.f64 x)))
(+.f64 -1 (+.f64 (-.f64 1 x) (sin.f64 x)))
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (-.f64 -1 (PI.f64)) (sin.f64 x)))
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (sin.f64 x) (-.f64 -1 (PI.f64))))
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (+.f64 (sin.f64 x) (-.f64 1 x)) -1)
(+.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (+.f64 1 (-.f64 (PI.f64) x))))
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (+.f64 1 (-.f64 (PI.f64) x)) (neg.f64 (sin.f64 x))))
(+.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 (sin.f64 x)) (PI.f64))))
(+.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 1 x)) (neg.f64 (sin.f64 x))))
(+.f64 (-.f64 (PI.f64) (+.f64 1 x)) (+.f64 (-.f64 1 (PI.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 1 (sin.f64 x)) (-.f64 -1 x))
(+.f64 (-.f64 -1 x) (+.f64 1 (sin.f64 x)))
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 x (sin.f64 x)) -1)))
(+.f64 (+.f64 (PI.f64) (+.f64 1 (-.f64 (PI.f64) x))) (-.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 1 (-.f64 (PI.f64) x))) (-.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 (sin.f64 x) (-.f64 1 x)))
(+.f64 (-.f64 -1 (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))) (+.f64 1 (PI.f64)))
(+.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (+.f64 1 (-.f64 (PI.f64) x)))
(+.f64 (-.f64 -1 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))) (-.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 (*.f64 (-.f64 (sin.f64 x) x) 2) 1/2)
(*.f64 (-.f64 x (sin.f64 x)) -1)
(*.f64 4 (*.f64 (-.f64 (sin.f64 x) x) 1/4))
(*.f64 4 (-.f64 (*.f64 (sin.f64 x) 1/4) (*.f64 x 1/4)))
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 (sin.f64 x) x) 2))
(*.f64 -1 (-.f64 x (sin.f64 x)))
(*.f64 (*.f64 2 (-.f64 x (sin.f64 x))) -1/2)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 1/8)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/2) 2)
(*.f64 -2 (*.f64 (-.f64 x (sin.f64 x)) 1/2))
(*.f64 (*.f64 (-.f64 x (sin.f64 x)) 1/2) -2)
(*.f64 1/4 (*.f64 (-.f64 (sin.f64 x) x) 4))
(*.f64 1/4 (-.f64 (*.f64 (sin.f64 x) 4) (*.f64 x 4)))
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/4) 4)
(*.f64 -1/2 (*.f64 2 (-.f64 x (sin.f64 x))))
(*.f64 1/8 (*.f64 (-.f64 (sin.f64 x) x) 8))
(/.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 2 (-.f64 x (sin.f64 x))) -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 (*.f64 2 (*.f64 (-.f64 x (sin.f64 x)) 4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)
(/.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)))) 64)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4))) 8)
(pow.f64 (-.f64 (sin.f64 x) x) 1)
(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/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/6 (pow.f64 x 3)) (+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 1/362880 (pow.f64 x 9)))))
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) (*.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 -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) (neg.f64 (+.f64 x (-.f64 (PI.f64) (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) (neg.f64 (-.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) (PI.f64)))
(+.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 x (-.f64 (PI.f64) (sin.f64 x)))))
(+.f64 (neg.f64 (PI.f64)) (+.f64 (-.f64 (PI.f64) x) (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (neg.f64 (PI.f64)) (+.f64 (sin.f64 x) (-.f64 (PI.f64) x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (neg.f64 (PI.f64)) (neg.f64 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (neg.f64 (PI.f64)) (-.f64 (sin.f64 x) (-.f64 x (PI.f64))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.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 (sin.f64 x) (-.f64 1 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 -1 (+.f64 (+.f64 1 (sin.f64 x)) (neg.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 -1 (+.f64 (-.f64 1 x) (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (-.f64 -1 (PI.f64)) (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (+.f64 (sin.f64 x) (-.f64 -1 (PI.f64))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 1 (-.f64 (PI.f64) x)) (-.f64 (-.f64 -1 (PI.f64)) (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 (sin.f64 x) (-.f64 1 x)) -1)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (PI.f64)) (+.f64 (sin.f64 x) (+.f64 1 (-.f64 (PI.f64) x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (PI.f64)) (-.f64 (+.f64 1 (-.f64 (PI.f64) x)) (neg.f64 (sin.f64 x))))
(+.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 (sin.f64 x)) (PI.f64))))
(+.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 1 x)) (neg.f64 (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) (+.f64 1 x)) (+.f64 (-.f64 1 (PI.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 1 (sin.f64 x)) (-.f64 -1 x))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 x) (+.f64 1 (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 -2 (-.f64 1 (+.f64 (-.f64 x (sin.f64 x)) -1)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (+.f64 (PI.f64) (+.f64 1 (-.f64 (PI.f64) x))) (-.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 1 (-.f64 (PI.f64) x))) (-.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 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 (PI.f64) (+.f64 1 (PI.f64))) (+.f64 (sin.f64 x) (-.f64 1 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))) (+.f64 1 (PI.f64)))
(+.f64 (PI.f64) (neg.f64 (+.f64 x (-.f64 (PI.f64) (sin.f64 x)))))
(+.f64 (-.f64 -1 (-.f64 (PI.f64) (sin.f64 x))) (+.f64 1 (-.f64 (PI.f64) x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(+.f64 (-.f64 -1 (-.f64 (-.f64 x (sin.f64 x)) (PI.f64))) (-.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 (*.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) 1/4))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 4 (-.f64 (*.f64 (sin.f64 x) 1/4) (*.f64 x 1/4)))
(+.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 (-.f64 x (sin.f64 x)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 2 (-.f64 x (sin.f64 x))) -1/2)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 8) 1/8)
(+.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 -2 (*.f64 (-.f64 x (sin.f64 x)) 1/2))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 x (sin.f64 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 1/4 (-.f64 (*.f64 (sin.f64 x) 4) (*.f64 x 4)))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 (*.f64 (-.f64 (sin.f64 x) x) 1/4) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 -1/2 (*.f64 2 (-.f64 x (sin.f64 x))))
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(*.f64 1/8 (*.f64 (-.f64 (sin.f64 x) x) 8))
(+.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 2 (-.f64 x (sin.f64 x))) -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 (*.f64 2 (*.f64 (-.f64 x (sin.f64 x)) 4)) -8)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) 32)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) 4)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (sin.f64 x) x) 8)))) 64)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4)) (neg.f64 (*.f64 (-.f64 x (sin.f64 x)) 4))) 8)
(+.f64 (sin.f64 x) (neg.f64 x))
(-.f64 (sin.f64 x) x)
(pow.f64 (-.f64 (sin.f64 x) x) 1)
(+.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)

eval58.0ms (1.4%)

Compiler

Compiled 911 to 482 computations (47.1% saved)

prune11.0ms (0.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New87491
Fresh000
Picked011
Done000
Total87592
Error
0.1b
Counts
92 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(-.f64 (sin.f64 x) x)
0.4b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
0.4b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
0.5b
(*.f64 -1/6 (pow.f64 x 3))
59.9b
(neg.f64 x)
Compiler

Compiled 44 to 35 computations (20.5% saved)

localize3.0ms (0.1%)

Compiler

Compiled 4 to 2 computations (50% saved)

localize5.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)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.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 -1/6 (pow.f64 x 3))

rewrite287.0ms (6.7%)

Algorithm
batch-egg-rewrite
Rules
3494×rational.json-simplify-35
1906×rational.json-simplify-2
1118×exponential.json-3
1118×rational.json-1
1118×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29613
318613
432313
568313
6162813
7268713
8324713
9383913
10455013
11498913
12498913
13540313
14540313
15586413
16664013
17766413
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
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 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)))))

simplify219.0ms (5.1%)

Algorithm
egg-herbie
Rules
3632×rational.json-simplify-43
2608×rational.json-simplify-51
2102×rational.json-simplify-35
1142×rational.json-simplify-1
1022×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056234
1144234
2252234
3630234
41550234
52706234
63536234
73785234
83941234
94065234
104179234
114292234
124412234
134524234
144524234
Stop Event
node limit
Counts
18 → 19
Calls
Call 1
Inputs
(+.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 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))))) 4096)
(pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
Outputs
(+.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 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))) 64)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))) 128)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))) 256)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))) 512)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))) 1024)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) 2048)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -4/3)))))))))) 4096)
(*.f64 -1/6 (pow.f64 x 3))
(pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
(*.f64 -1/6 (pow.f64 x 3))

localize14.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.1b
(*.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)

series2.0ms (0%)

Counts
2 → 3
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.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)))
0.0ms
x
@inf
(*.f64 1/120 (pow.f64 x 5))
0.0ms
x
@-inf
(*.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)))

rewrite185.0ms (4.3%)

Algorithm
batch-egg-rewrite
Rules
2670×rational.json-simplify-2
1752×rational.json-simplify-35
1620×rational.json-simplify-1
1324×exponential.json-3
1324×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
17744
214344
327144
449544
5110144
6288544
7457244
8529444
9658744
10743344
11743344
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 1/120 (pow.f64 x 5))
(+.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 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 (pow.f64 x 5) 1/15) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/120 (pow.f64 x 5)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))))))) (#(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 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)))))

simplify227.0ms (5.3%)

Algorithm
egg-herbie
Rules
3828×rational.json-simplify-41
3696×rational.json-simplify-51
2100×rational.json-simplify-35
1184×rational.json-simplify-2
636×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089946
1199946
2413946
31008946
42650946
53620946
63887946
74043946
84150946
94254946
104354946
114496946
124593946
134690946
144690946
Stop Event
node limit
Counts
40 → 41
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 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 (pow.f64 x 5) 1/15) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 256)
(pow.f64 (*.f64 1/120 (pow.f64 x 5)) 1)
(-.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 0)
(*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(*.f64 1 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))
(/.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))))) 256)
(pow.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
Outputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 1/120 (pow.f64 x 5))
(*.f64 1/120 (pow.f64 x 5))
(+.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 (pow.f64 x 5) 1/15) 8)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 16)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 32)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 64)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 128)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 256)
(*.f64 1/120 (pow.f64 x 5))
(pow.f64 (*.f64 1/120 (pow.f64 x 5)) 1)
(*.f64 1/120 (pow.f64 x 5))
(-.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 0)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))))
(+.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 2 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 1/2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 1/8)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 5) 1/240)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4) 8)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)) 16)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))) 32)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))) 64)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4))))) 128)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 5) 1/60)) 4)))))) 256)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(pow.f64 (+.f64 (*.f64 1/120 (pow.f64 x 5)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))

localize24.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

Compiled 60 to 48 computations (20% saved)

series2.0ms (0.1%)

Counts
2 → 3
Calls

6 calls:

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

rewrite191.0ms (4.5%)

Algorithm
batch-egg-rewrite
Rules
2662×rational.json-simplify-2
1752×rational.json-simplify-35
1620×rational.json-simplify-1
1324×exponential.json-3
1324×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
17744
214344
327144
449544
5110144
6288744
7458644
8530844
9660244
10745344
11745344
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 -1/5040 (pow.f64 x 7))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
Outputs
((#(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 (pow.f64 x 7) -1/630) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)))))

simplify228.0ms (5.4%)

Algorithm
egg-herbie
Rules
3828×rational.json-simplify-41
3696×rational.json-simplify-51
2100×rational.json-simplify-35
1184×rational.json-simplify-2
636×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089946
1199946
2413946
31008946
42650946
53620946
63887946
74043946
84150946
94254946
104354946
114496946
124593946
134690946
144690946
Stop Event
node limit
Counts
40 → 41
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/5040 (pow.f64 x 7))
(*.f64 -1/5040 (pow.f64 x 7))
(+.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 (pow.f64 x 7) -1/630) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))))) 256)
(pow.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)
(-.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 0)
(*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(*.f64 1 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))
(/.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))))) 256)
(pow.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
Outputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 -1/5040 (pow.f64 x 7))
(*.f64 -1/5040 (pow.f64 x 7))
(+.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 (pow.f64 x 7) -1/630) 8)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)) 16)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))) 32)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))) 64)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630))))) 128)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 7) -1/630)))))) 256)
(*.f64 -1/5040 (pow.f64 x 7))
(pow.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)
(*.f64 -1/5040 (pow.f64 x 7))
(-.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 0)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 1 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 1/2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 1/4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 1/8)
(+.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 (pow.f64 x 7) -1/2520)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/12) (*.f64 (pow.f64 x 7) -1/10080)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1/4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 2)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4) 8)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)) 16)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))) 32)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))) 64)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4))))) 128)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 3) -1/3) (*.f64 (pow.f64 x 7) -1/2520)) 4)))))) 256)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(pow.f64 (+.f64 (*.f64 -1/5040 (pow.f64 x 7)) (*.f64 -1/6 (pow.f64 x 3))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))

eval62.0ms (1.5%)

Compiler

Compiled 2834 to 2468 computations (12.9% saved)

prune19.0ms (0.4%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New1530153
Fresh000
Picked011
Done044
Total1535158
Error
0.1b
Counts
158 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(-.f64 (sin.f64 x) x)
0.4b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
0.4b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
0.5b
(*.f64 -1/6 (pow.f64 x 3))
59.9b
(neg.f64 x)
Compiler

Compiled 44 to 35 computations (20.5% saved)

regimes7.0ms (0.2%)

Counts
5 → 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/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
Outputs
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
Calls

2 calls:

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

Compiled 47 to 35 computations (25.5% saved)

regimes7.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:

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

Compiled 30 to 21 computations (30% saved)

regimes7.0ms (0.2%)

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
0.5b1x
0.5b1(-.f64 (sin.f64 x) x)
Compiler

Compiled 19 to 12 computations (36.8% saved)

regimes5.0ms (0.1%)

Accuracy

Total -40.1b remaining (-198.6%)

Threshold costs -40.1b (-198.6%)

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
20.2b1x
20.2b1(-.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/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 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/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 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)

soundness151.0ms (3.6%)

Algorithm
egg-herbie
Rules
1732×rational.json-simplify-26
1344×rational.json-simplify-35
1148×rational.json-simplify-2
1030×rational.json-simplify-45
960×rational.json-simplify-48
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02031509
14201509
29211509
318291509
435481181
556881181
668861181
778851181
Stop Event
node limit
Compiler

Compiled 52 to 43 computations (17.3% saved)

end38.0ms (0.9%)

Compiler

Compiled 40 to 31 computations (22.5% saved)

Profiling

Loading profile data...