Details

Time bar (total: 18.5s)

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)

sample13.9s (75.3%)

Results
8.5s4389×body2048valid
3.7s2025×body1024valid
943.0ms783×body256valid
672.0ms1059×body512valid
Bogosity

preprocess516.0ms (2.8%)

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)

simplify511.0ms (2.8%)

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

rewrite519.0ms (2.8%)

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

simplify294.0ms (1.6%)

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

eval12.0ms (0.1%)

Compiler

Compiled 615 to 481 computations (21.8% saved)

prune8.0ms (0%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New53356
Fresh000
Picked011
Done000
Total53457
Error
0.0b
Counts
57 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.4b
(-.f64 1 (cos.f64 x))
0.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.5b
(*.f64 1/2 (pow.f64 x 2))
Compiler

Compiled 41 to 34 computations (17.1% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 9 computations (25% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite363.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
3096×rational.json-simplify-35
2050×rational.json-simplify-51
1862×rational.json-simplify-2
994×exponential.json-3
994×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29513
317913
430313
564213
6147113
7240813
8288913
9345513
10418013
11486013
12524313
13524313
14556713
15602613
16676013
17725113
18730513
19730513
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 8) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 16) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 32) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 64) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 128) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 128)) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 x 2) 128) 4)) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 4) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 x 2)) 1)))))

simplify966.0ms (5.2%)

Algorithm
egg-herbie
Rules
4530×rational.json-simplify-51
1996×rational.json-simplify-35
1036×rational.json-simplify-2
1012×rational.json-simplify-1
982×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051234
1135234
2255234
3635234
41674234
52849234
63400234
73527234
83613234
93678234
103742234
113806234
123870234
133934234
143998234
154062234
164126234
174190234
184254234
194318234
207896234
Stop Event
node limit
Counts
18 → 19
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4))
(-.f64 (*.f64 1/2 (pow.f64 x 2)) 0)
(/.f64 (pow.f64 x 2) 2)
(/.f64 (*.f64 1/2 (pow.f64 x 2)) 1)
(/.f64 (*.f64 2 (pow.f64 x 2)) 4)
(/.f64 (*.f64 (pow.f64 x 2) 4) 8)
(/.f64 (*.f64 (pow.f64 x 2) 8) 16)
(/.f64 (*.f64 (pow.f64 x 2) 16) 32)
(/.f64 (*.f64 (pow.f64 x 2) 32) 64)
(/.f64 (*.f64 (pow.f64 x 2) 64) 128)
(/.f64 (*.f64 (pow.f64 x 2) 128) 256)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 128)) 512)
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 1024)
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 x 2) 128) 4)) 2048)
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 4) 4096)
(pow.f64 (*.f64 1/2 (pow.f64 x 2)) 1)
Outputs
(+.f64 (*.f64 1/2 (pow.f64 x 2)) 0)
(*.f64 1/2 (pow.f64 x 2))
(+.f64 0 (*.f64 1/2 (pow.f64 x 2)))
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 1/4))
(*.f64 1/2 (pow.f64 x 2))
(-.f64 (*.f64 1/2 (pow.f64 x 2)) 0)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (pow.f64 x 2) 2)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 1/2 (pow.f64 x 2)) 1)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (pow.f64 x 2)) 4)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 4) 8)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 8) 16)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 16) 32)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 32) 64)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 64) 128)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 128) 256)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 128)) 512)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 1024)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 x 2) 128) 4)) 2048)
(*.f64 1/2 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) 128) 4) 4) 4096)
(*.f64 1/2 (pow.f64 x 2))
(pow.f64 (*.f64 1/2 (pow.f64 x 2)) 1)
(*.f64 1/2 (pow.f64 x 2))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (pow.f64 x 2))
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
0.0ms
x
@inf
(*.f64 -1/24 (pow.f64 x 4))
0.0ms
x
@0
(*.f64 -1/24 (pow.f64 x 4))
0.0ms
x
@-inf
(*.f64 -1/24 (pow.f64 x 4))

rewrite302.0ms (1.6%)

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

simplify218.0ms (1.2%)

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

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6)))
0.0b
(*.f64 1/2 (pow.f64 x 2))
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
0.0ms
x
@0
(*.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)))
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)))

rewrite188.0ms (1%)

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

simplify246.0ms (1.3%)

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

eval188.0ms (1%)

Compiler

Compiled 2461 to 2123 computations (13.7% saved)

prune18.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New1360136
Fresh000
Picked011
Done033
Total1364140
Error
0.0b
Counts
140 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
29.4b
(-.f64 1 (cos.f64 x))
0.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.5b
(*.f64 1/2 (pow.f64 x 2))
Compiler

Compiled 41 to 34 computations (17.1% saved)

regimes53.0ms (0.3%)

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
0.0b1x
0.0b1(-.f64 1 (cos.f64 x))
0.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
(-.f64 1 (cos.f64 x))
2.0ms
(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 -29.0b remaining (-5596.8%)

Threshold costs -29.0b (-5596.8%)

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

Compiled 20 to 15 computations (25% saved)

simplify4.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%)

end91.0ms (0.5%)

Compiler

Compiled 38 to 31 computations (18.4% saved)

Profiling

Loading profile data...