Details

Time bar (total: 5.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 (40%)

Results
1.1s2705×body1024valid
695.0ms2993×body512valid
352.0ms2558×body256valid
Bogosity

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

rewrite90.0ms (1.7%)

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

simplify134.0ms (2.5%)

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)

eval15.0ms (0.3%)

Compiler

Compiled 911 to 482 computations (47.1% saved)

prune15.0ms (0.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New86591
Fresh000
Picked011
Done000
Total86692
Error
0.1b
Counts
92 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(-.f64 (sin.f64 x) x)
1.2b
(+.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))))
1.2b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
1.5b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
1.9b
(*.f64 -1/6 (pow.f64 x 3))
59.9b
(neg.f64 x)
Compiler

Compiled 131 to 107 computations (18.3% saved)

localize35.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/362880 (pow.f64 x 9))
0.1b
(*.f64 1/120 (pow.f64 x 5))
0.2b
(*.f64 -1/6 (pow.f64 x 3))
Compiler

Compiled 93 to 75 computations (19.4% saved)

series5.0ms (0.1%)

Counts
4 → 0
Calls

12 calls:

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

rewrite184.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
2572×rational.json-simplify-2
1792×rational.json-simplify-35
1202×rational.json-simplify-1
1140×exponential.json-3
1140×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01952
112052
220452
336652
464752
5142452
6289252
7434752
8517652
9633652
10706852
11706852
Stop Event
node limit
Counts
4 → 56
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 x 3))
(*.f64 1/120 (pow.f64 x 5))
(*.f64 1/362880 (pow.f64 x 9))
(*.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 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)))))
((#(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 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))))) 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 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 (*.f64 1/362880 (pow.f64 x 9)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)))))
((#(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 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/5040 (pow.f64 x 7)) 1)))))

simplify393.0ms (7.4%)

Algorithm
egg-herbie
Rules
4044×rational.json-simplify-41
3866×rational.json-simplify-35
2246×rational.json-simplify-2
1470×rational.json-simplify-51
860×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0133728
1330728
2714728
32465728
44624728
55292728
65570728
75743728
85743728
96827728
106827728
116827728
126985728
137143728
147301728
157459728
167617728
177775728
Stop Event
node limit
Counts
56 → 60
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 (*.f64 -1/6 (pow.f64 x 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))))) 256)
(pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
(+.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 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))))) 256)
(pow.f64 (*.f64 1/120 (pow.f64 x 5)) 1)
(+.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 (*.f64 1/362880 (pow.f64 x 9)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))))) 256)
(pow.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)
(+.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 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))))) 256)
(pow.f64 (*.f64 -1/5040 (pow.f64 x 7)) 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 (*.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 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))) 32)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))) 64)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8))))) 128)
(*.f64 -1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 x 3)) 8)))))) 256)
(*.f64 -1/6 (pow.f64 x 3))
(pow.f64 (*.f64 -1/6 (pow.f64 x 3)) 1)
(*.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 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))) 32)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))) 64)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8))))) 128)
(*.f64 1/120 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/120 (pow.f64 x 5)) 8)))))) 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 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 (*.f64 1/362880 (pow.f64 x 9)) 8) 8)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)) 16)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))) 32)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))) 64)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8))))) 128)
(*.f64 1/362880 (pow.f64 x 9))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/362880 (pow.f64 x 9)) 8)))))) 256)
(*.f64 1/362880 (pow.f64 x 9))
(pow.f64 (*.f64 1/362880 (pow.f64 x 9)) 1)
(*.f64 1/362880 (pow.f64 x 9))
(+.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 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))) 32)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))) 64)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8))))) 128)
(*.f64 -1/5040 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -1/5040 (pow.f64 x 7)) 8)))))) 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))

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.2b
(*.f64 -1/6 (pow.f64 x 3))
Compiler

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.2%)

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.2b
(*.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
0.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)))

rewrite175.0ms (3.3%)

Algorithm
batch-egg-rewrite
Rules
2664×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
01231
17731
214331
327131
449531
5110131
6288631
7457631
8529831
9659131
10743731
11743731
Stop Event
node limit
Counts
1 → 23
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 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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))) 1/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 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4) 1/8)))) (#(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 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)) 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))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)))))

simplify676.0ms (12.7%)

Algorithm
egg-herbie
Rules
3632×rational.json-simplify-51
2044×rational.json-simplify-35
1366×rational.json-simplify-49
1236×rational.json-simplify-1
1028×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066764
1135764
2264764
3577764
41361764
53197764
64045764
74165764
84218764
94260764
104289764
114318764
124347764
134376764
144405764
154434764
164463764
174492764
184521764
194550764
205332764
217531764
227622764
237664764
247703764
257742764
267782764
277822764
287862764
297902764
307942764
317982764
Stop Event
node limit
Counts
26 → 26
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 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)) 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))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4))
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)
(pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5))) 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 (*.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 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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))) 1/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 (*.f64 (+.f64 (*.f64 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 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 (pow.f64 x 5) 1/240) (*.f64 (pow.f64 x 3) -1/12)) 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/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))) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 (pow.f64 x 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 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 5) 1/60) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
(pow.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)))

localize23.0ms (0.4%)

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.2b
(*.f64 -1/6 (pow.f64 x 3))
Compiler

Compiled 60 to 48 computations (20% saved)

series1.0ms (0%)

Counts
1 → 3
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.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)))
0.0ms
x
@-inf
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))

rewrite179.0ms (3.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01231
17731
214331
327131
449531
5110131
6288831
7458931
8531131
9660531
10745631
11745631
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.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 (*.f64 -1/6 (pow.f64 x 3)) (*.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 -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 -1/5040 (pow.f64 x 7))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.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 -1/5040 (pow.f64 x 7))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1)))))

simplify714.0ms (13.4%)

Algorithm
egg-herbie
Rules
3632×rational.json-simplify-51
2092×rational.json-simplify-35
1366×rational.json-simplify-49
1236×rational.json-simplify-1
1028×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066764
1135764
2264764
3577764
41361764
53196764
64045764
74152764
84205764
94247764
104276764
114305764
124334764
134363764
144392764
154421764
164450764
174479764
184508764
194537764
205319764
217508764
227599764
237641764
247680764
257719764
267759764
277799764
287839764
297879764
307919764
317959764
327999764
Stop Event
node limit
Counts
26 → 26
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 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 0)
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1)
(*.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))
(/.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)
(pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 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 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 0)
(+.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 -1/5040 (pow.f64 x 7))) 1)
(+.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 -1/5040 (pow.f64 x 7))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 1/2)
(+.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 -1/5040 (pow.f64 x 7))) 1/4))
(+.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 -1/5040 (pow.f64 x 7))) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/10080) (*.f64 (pow.f64 x 3) -1/12)) 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/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 4))
(+.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 -1/5040 (pow.f64 x 7))) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4))
(+.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 -1/5040 (pow.f64 x 7))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 2)
(+.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 -1/5040 (pow.f64 x 7))) 4) 4)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 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 7) -1/2520) (*.f64 (pow.f64 x 3) -1/3)) 4)))))) 256)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))
(pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))) 1)
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7)))

eval86.0ms (1.6%)

Compiler

Compiled 4199 to 3613 computations (14% saved)

prune27.0ms (0.5%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New2020202
Fresh000
Picked011
Done055
Total2026208
Error
0.1b
Counts
208 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
19.3b
(-.f64 (sin.f64 x) x)
1.2b
(+.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))))
1.2b
(+.f64 (*.f64 1/120 (pow.f64 x 5)) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 -1/5040 (pow.f64 x 7))))
1.5b
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/120 (pow.f64 x 5)))
1.9b
(*.f64 -1/6 (pow.f64 x 3))
59.9b
(neg.f64 x)
Compiler

Compiled 68 to 55 computations (19.1% saved)

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

2 calls:

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

Compiled 70 to 54 computations (22.9% saved)

regimes7.0ms (0.1%)

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

Compiled 47 to 35 computations (25.5% saved)

regimes8.0ms (0.1%)

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

Compiled 19 to 12 computations (36.8% saved)

regimes6.0ms (0.1%)

Accuracy

Total -40.8b remaining (-211.1%)

Threshold costs -40.8b (-211.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.3b1x
19.3b1(-.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
028176
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.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/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 (*.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/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 68 to 55 computations (19.1% saved)

soundness152.0ms (2.8%)

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 139 to 115 computations (17.3% saved)

end47.0ms (0.9%)

Compiler

Compiled 63 to 50 computations (20.6% saved)

Profiling

Loading profile data...