Details

Time bar (total: 20.1s)

analyze0.0ms (0%)

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

Compiled 12 to 9 computations (25% saved)

sample16.3s (81.3%)

Results
13.0s4327×body2048valid
2.8s2140×body1024valid
426.0ms1050×body512valid
80.0ms739×body256valid
Bogosity

preprocess520.0ms (2.6%)

Algorithm
egg-herbie
Rules
2608×rational.json-simplify-42
2160×rational.json-simplify-35
2126×rational.json-simplify-45
1730×rational.json-simplify-1
1080×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1911
21611
32611
44911
59011
620511
748011
8112311
9265111
10357111
11416411
12471411
13502211
14514211
15526311
16557311
17570211
18581811
19594511
20605911
21617311
22628711
23628711
24628711
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 1 (cos.f64 x))
Outputs
(-.f64 1 (cos.f64 x))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify516.0ms (2.6%)

Algorithm
egg-herbie
Rules
2608×rational.json-simplify-42
2160×rational.json-simplify-35
2126×rational.json-simplify-45
1730×rational.json-simplify-1
1080×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1911
21611
32611
44911
59011
620511
748011
8112311
9265111
10357111
11416411
12471411
13502211
14514211
15526311
16557311
17570211
18581811
19594511
20605911
21617311
22628711
23628711
24628711
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
Outputs
(-.f64 1 (cos.f64 x))

eval0.0ms (0%)

Compiler

Compiled 5 to 4 computations (20% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 5 to 4 computations (20% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.4b
(-.f64 1 (cos.f64 x))
Compiler

Compiled 9 to 5 computations (44.4% saved)

series1.0ms (0%)

Counts
1 → 4
Calls

3 calls:

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

rewrite676.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
1824×rational.json-simplify-35
1462×rational.json-1
1462×rational.json-2
1462×rational.json-4
1462×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
15511
213411
326811
451611
5113011
6257111
7442011
8546211
9726611
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (cos.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (cos.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (cos.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (cos.f64 x) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) (*.f64 (-.f64 1 (cos.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (/.f64 (+.f64 (cos.f64 x) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (*.f64 (+.f64 (cos.f64 x) -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (cos.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (cos.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 1 (cos.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cos.f64 x) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (cos.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (cos.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (cos.f64 x) -1) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 (cos.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (cos.f64 x) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (cos.f64 x) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (cos.f64 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (cos.f64 x) -1)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (cos.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (cos.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (+.f64 (cos.f64 x) -2)))))))

simplify296.0ms (1.5%)

Algorithm
egg-herbie
Rules
2406×rational.json-simplify-35
1392×rational.json-simplify-1
1318×rational.json-simplify-2
912×rational.json-simplify-45
594×rational.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0113684
1251684
2528684
31356684
42976684
53964684
64675684
75359684
86260684
96576684
106864684
117168684
127479684
137842684
147992684
Stop Event
node limit
Counts
48 → 56
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/40320 (pow.f64 x 8)))))
(+.f64 (-.f64 1 (cos.f64 x)) 0)
(+.f64 0 (-.f64 1 (cos.f64 x)))
(+.f64 -1 (neg.f64 (+.f64 (cos.f64 x) -2)))
(+.f64 -1 (-.f64 1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2))))
(+.f64 -2 (-.f64 1 (+.f64 (cos.f64 x) -2)))
(+.f64 (neg.f64 (+.f64 (cos.f64 x) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) (*.f64 (-.f64 1 (cos.f64 x)) 1/2))
(+.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(+.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (*.f64 (+.f64 (cos.f64 x) -1) 1/2)))
(*.f64 1 (-.f64 1 (cos.f64 x)))
(*.f64 (-.f64 1 (cos.f64 x)) 1)
(*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 1/2))
(*.f64 -1 (+.f64 (cos.f64 x) -1))
(*.f64 -1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(*.f64 4 (/.f64 (-.f64 1 (cos.f64 x)) 4))
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 1/2)
(*.f64 (+.f64 (cos.f64 x) -1) -1)
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (cos.f64 x)) 2))
(*.f64 1/4 (*.f64 (-.f64 1 (cos.f64 x)) 4))
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) 2)
(*.f64 (/.f64 (+.f64 (cos.f64 x) -1) 2) -2)
(*.f64 (/.f64 (-.f64 1 (cos.f64 x)) 4) 4)
(*.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)
(/.f64 (-.f64 1 (cos.f64 x)) 1)
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 2)
(/.f64 (+.f64 (cos.f64 x) -1) -1)
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 4)
(/.f64 (*.f64 2 (+.f64 (cos.f64 x) -1)) -2)
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 8) 8)
(/.f64 (*.f64 4 (+.f64 (cos.f64 x) -1)) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))) 32)
(/.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))))) 256)
(pow.f64 (-.f64 1 (cos.f64 x)) 1)
(neg.f64 (+.f64 (cos.f64 x) -1))
(neg.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(neg.f64 (+.f64 1 (+.f64 (cos.f64 x) -2)))
Outputs
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/40320 (pow.f64 x 8)))))
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/40320 (pow.f64 x 8))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/40320 (pow.f64 x 8)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 -1/40320 (pow.f64 x 8)))))
(+.f64 (-.f64 1 (cos.f64 x)) 0)
(-.f64 1 (cos.f64 x))
(+.f64 0 (-.f64 1 (cos.f64 x)))
(-.f64 1 (cos.f64 x))
(+.f64 -1 (neg.f64 (+.f64 (cos.f64 x) -2)))
(-.f64 1 (cos.f64 x))
(+.f64 -1 (-.f64 1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2))))
(-.f64 1 (cos.f64 x))
(+.f64 -2 (-.f64 1 (+.f64 (cos.f64 x) -2)))
(-.f64 1 (cos.f64 x))
(+.f64 (neg.f64 (+.f64 (cos.f64 x) -2)) -1)
(-.f64 1 (cos.f64 x))
(+.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) (*.f64 (-.f64 1 (cos.f64 x)) 1/2))
(-.f64 1 (cos.f64 x))
(+.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(-.f64 1 (cos.f64 x))
(+.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (*.f64 (+.f64 (cos.f64 x) -1) 1/2)))
(+.f64 (-.f64 -1 (/.f64 (+.f64 (cos.f64 x) -1) 2)) (-.f64 1 (*.f64 1/2 (+.f64 (cos.f64 x) -1))))
(+.f64 (+.f64 -1 (*.f64 (+.f64 (cos.f64 x) -1) -1/2)) (-.f64 1 (*.f64 1/2 (+.f64 (cos.f64 x) -1))))
(+.f64 (+.f64 -1 (*.f64 1/2 (-.f64 1 (cos.f64 x)))) (-.f64 1 (*.f64 1/2 (+.f64 (cos.f64 x) -1))))
(*.f64 1 (-.f64 1 (cos.f64 x)))
(-.f64 1 (cos.f64 x))
(*.f64 (-.f64 1 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 1/2))
(-.f64 1 (cos.f64 x))
(*.f64 -1 (+.f64 (cos.f64 x) -1))
(-.f64 1 (cos.f64 x))
(*.f64 -1 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(-.f64 1 (cos.f64 x))
(*.f64 4 (/.f64 (-.f64 1 (cos.f64 x)) 4))
(-.f64 1 (cos.f64 x))
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 1/2)
(-.f64 1 (cos.f64 x))
(*.f64 (+.f64 (cos.f64 x) -1) -1)
(-.f64 1 (cos.f64 x))
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 1/4)
(-.f64 1 (cos.f64 x))
(*.f64 1/2 (*.f64 (-.f64 1 (cos.f64 x)) 2))
(-.f64 1 (cos.f64 x))
(*.f64 1/4 (*.f64 (-.f64 1 (cos.f64 x)) 4))
(-.f64 1 (cos.f64 x))
(*.f64 (*.f64 (-.f64 1 (cos.f64 x)) 1/2) 2)
(-.f64 1 (cos.f64 x))
(*.f64 (/.f64 (+.f64 (cos.f64 x) -1) 2) -2)
(-.f64 1 (cos.f64 x))
(*.f64 (/.f64 (-.f64 1 (cos.f64 x)) 4) 4)
(-.f64 1 (cos.f64 x))
(*.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)
(-.f64 1 (cos.f64 x))
(/.f64 (-.f64 1 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 2) 2)
(-.f64 1 (cos.f64 x))
(/.f64 (+.f64 (cos.f64 x) -1) -1)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 4) 4)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (+.f64 (cos.f64 x) -1)) -2)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 (-.f64 1 (cos.f64 x)) 8) 8)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 4 (+.f64 (cos.f64 x) -1)) -4)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)) 16)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))) -8)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))) 32)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)) -1)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1)))) -16)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))) 64)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (cos.f64 x) -1))))) -32)
(-.f64 1 (cos.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) 128)
(-.f64 1 (cos.f64 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (cos.f64 x)) 8)))))) 256)
(-.f64 1 (cos.f64 x))
(pow.f64 (-.f64 1 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(neg.f64 (+.f64 (cos.f64 x) -1))
(-.f64 1 (cos.f64 x))
(neg.f64 (*.f64 2 (/.f64 (+.f64 (cos.f64 x) -1) 2)))
(-.f64 1 (cos.f64 x))
(neg.f64 (+.f64 1 (+.f64 (cos.f64 x) -2)))
(-.f64 1 (cos.f64 x))

eval14.0ms (0.1%)

Compiler

Compiled 615 to 481 computations (21.8% saved)

prune7.0ms (0%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New53356
Fresh000
Picked011
Done000
Total53457
Error
0b
Counts
57 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
32.1b
(-.f64 1 (cos.f64 x))
0b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
0.1b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
0.4b
(*.f64 1/2 (pow.f64 x 2))
Compiler

Compiled 41 to 34 computations (17.1% saved)

localize6.0ms (0%)

Compiler

Compiled 12 to 9 computations (25% saved)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -1/24 (pow.f64 x 4))
Compiler

Compiled 33 to 26 computations (21.2% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite305.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
3716×rational.json-simplify-35
1760×rational.json-simplify-2
1186×rational.json-1
1186×rational.json-2
1052×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29613
318513
431613
567713
6162513
7273413
8331013
9395213
10471713
11519113
12519113
13563713
14563713
15613113
16696113
17793013
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 -1/24 (pow.f64 x 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/24 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 4) -1/48))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) -1/12) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) -1/6) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) -1/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/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 4) -1/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 4) -1/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 4) -1/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 4) -1/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)))))

simplify227.0ms (1.1%)

Algorithm
egg-herbie
Rules
3666×rational.json-simplify-43
2610×rational.json-simplify-51
2092×rational.json-simplify-35
1144×rational.json-simplify-1
1020×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055234
1143234
2250234
3627234
41547234
52697234
63525234
73762234
83919234
94044234
104158234
114271234
124391234
134503234
144503234
Stop Event
node limit
Counts
18 → 19
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)
(+.f64 0 (*.f64 -1/24 (pow.f64 x 4)))
(+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 4) -1/48))
(-.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)
(/.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)
(/.f64 (*.f64 (pow.f64 x 4) -1/12) 2)
(/.f64 (*.f64 (pow.f64 x 4) -1/6) 4)
(/.f64 (*.f64 (pow.f64 x 4) -1/3) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))))))) 4096)
(pow.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)
Outputs
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)
(*.f64 -1/24 (pow.f64 x 4))
(+.f64 0 (*.f64 -1/24 (pow.f64 x 4)))
(*.f64 -1/24 (pow.f64 x 4))
(+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 4) -1/48))
(*.f64 -1/24 (pow.f64 x 4))
(-.f64 (*.f64 -1/24 (pow.f64 x 4)) 0)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 (pow.f64 x 4) -1/12) 2)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 (pow.f64 x 4) -1/6) 4)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 (pow.f64 x 4) -1/3) 8)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)) 16)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))) 32)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))) 64)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))) 128)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))) 256)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))) 512)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))))) 1024)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))))) 2048)
(*.f64 -1/24 (pow.f64 x 4))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 4) -1/3)))))))))) 4096)
(*.f64 -1/24 (pow.f64 x 4))
(pow.f64 (*.f64 -1/24 (pow.f64 x 4)) 1)
(*.f64 -1/24 (pow.f64 x 4))

localize23.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 60 to 48 computations (20% saved)

series2.0ms (0%)

Counts
2 → 3
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
0.0ms
x
@0
(*.f64 1/720 (pow.f64 x 6))
0.0ms
x
@inf
(*.f64 1/720 (pow.f64 x 6))
0.0ms
x
@0
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
0.0ms
x
@-inf
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))

rewrite350.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1784×rational.json-simplify-35
1640×rational.json-simplify-1
1348×exponential.json-3
1348×rational.json-1
1348×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
17744
214344
327044
448844
5109744
6288844
7461044
8534844
9667744
10755244
11755244
Stop Event
node limit
Counts
2 → 36
Calls
Call 1
Inputs
(*.f64 1/720 (pow.f64 x 6))
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/720 (pow.f64 x 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/720 (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 6) 1/1440))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/720 (pow.f64 x 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/720 (pow.f64 x 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 6) 1/360) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 6) 1/180) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 6) 1/90) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/720 (pow.f64 x 6)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)))))

simplify677.0ms (3.4%)

Algorithm
egg-herbie
Rules
3780×rational.json-simplify-41
2670×rational.json-simplify-43
2096×rational.json-simplify-35
1164×rational.json-simplify-2
604×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
087987
1197945
2374945
3842945
42138945
52970945
63257945
73432945
83570945
93686945
103796945
113903945
124009945
134115945
144115945
Stop Event
node limit
Counts
39 → 41
Calls
Call 1
Inputs
(*.f64 -1/24 (pow.f64 x 4))
(*.f64 1/720 (pow.f64 x 6))
(*.f64 1/720 (pow.f64 x 6))
(+.f64 (*.f64 1/720 (pow.f64 x 6)) 0)
(+.f64 0 (*.f64 1/720 (pow.f64 x 6)))
(+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 6) 1/1440))
(-.f64 (*.f64 1/720 (pow.f64 x 6)) 0)
(/.f64 (*.f64 1/720 (pow.f64 x 6)) 1)
(/.f64 (*.f64 (pow.f64 x 6) 1/360) 2)
(/.f64 (*.f64 (pow.f64 x 6) 1/180) 4)
(/.f64 (*.f64 (pow.f64 x 6) 1/90) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))))) 256)
(pow.f64 (*.f64 1/720 (pow.f64 x 6)) 1)
(-.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 0)
(*.f64 4 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))))
(*.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
(*.f64 1 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 1/2)
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 1/4)
(*.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))) 4)
(/.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 4)
(/.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 8)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))))) 256)
(pow.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
Outputs
(*.f64 -1/24 (pow.f64 x 4))
(*.f64 1/720 (pow.f64 x 6))
(*.f64 1/720 (pow.f64 x 6))
(+.f64 (*.f64 1/720 (pow.f64 x 6)) 0)
(*.f64 1/720 (pow.f64 x 6))
(+.f64 0 (*.f64 1/720 (pow.f64 x 6)))
(*.f64 1/720 (pow.f64 x 6))
(+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 6) 1/1440))
(*.f64 1/720 (pow.f64 x 6))
(-.f64 (*.f64 1/720 (pow.f64 x 6)) 0)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 1/720 (pow.f64 x 6)) 1)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 (pow.f64 x 6) 1/360) 2)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 (pow.f64 x 6) 1/180) 4)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 (pow.f64 x 6) 1/90) 8)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)) 16)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))) 32)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))) 64)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90))))) 128)
(*.f64 1/720 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 6) 1/90)))))) 256)
(*.f64 1/720 (pow.f64 x 6))
(pow.f64 (*.f64 1/720 (pow.f64 x 6)) 1)
(*.f64 1/720 (pow.f64 x 6))
(-.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 0)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 4 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(*.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 1 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))))
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 1/2)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(*.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 1/8)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 2)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(*.f64 (*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440))) 4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(/.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)) 2)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 4) -1/48) (*.f64 (pow.f64 x 6) 1/1440)) 8) 4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)) 4))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/1440) (*.f64 (pow.f64 x 4) -1/48)))
(/.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))) 8)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))) 16)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))) 32)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))) 64)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360))))))) 128)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 4) -1/12) (*.f64 (pow.f64 x 6) 1/360)))))))) 256)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
(pow.f64 (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/24 (pow.f64 x 4))) 1)
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))

eval43.0ms (0.2%)

Compiler

Compiled 1684 to 1463 computations (13.1% saved)

prune11.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New79079
Fresh000
Picked011
Done033
Total79483
Error
0b
Counts
83 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
32.1b
(-.f64 1 (cos.f64 x))
0b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
0.1b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
0.4b
(*.f64 1/2 (pow.f64 x 2))
Compiler

Compiled 41 to 34 computations (17.1% saved)

regimes9.0ms (0%)

Counts
4 → 1
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
Outputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
Calls

3 calls:

4.0ms
x
2.0ms
(cos.f64 x)
2.0ms
(-.f64 1 (cos.f64 x))
Results
ErrorSegmentsBranch
0b1x
0b1(-.f64 1 (cos.f64 x))
0b1(cos.f64 x)
Compiler

Compiled 48 to 38 computations (20.8% saved)

regimes8.0ms (0%)

Counts
3 → 1
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
Outputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
Calls

3 calls:

4.0ms
x
2.0ms
(cos.f64 x)
2.0ms
(-.f64 1 (cos.f64 x))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(-.f64 1 (cos.f64 x))
0.1b1(cos.f64 x)
Compiler

Compiled 31 to 24 computations (22.6% saved)

regimes7.0ms (0%)

Accuracy

Total -31.7b remaining (-7264%)

Threshold costs -31.7b (-7264%)

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

3 calls:

3.0ms
x
2.0ms
(-.f64 1 (cos.f64 x))
2.0ms
(cos.f64 x)
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(-.f64 1 (cos.f64 x))
0.4b1(cos.f64 x)
Compiler

Compiled 20 to 15 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022104
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(*.f64 1/2 (pow.f64 x 2))
(-.f64 1 (cos.f64 x))
Outputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(*.f64 1/2 (pow.f64 x 2))
(-.f64 1 (cos.f64 x))
Compiler

Compiled 41 to 34 computations (17.1% saved)

soundness0.0ms (0%)

end32.0ms (0.2%)

Compiler

Compiled 38 to 31 computations (18.4% saved)

Profiling

Loading profile data...