Details

Time bar (total: 8.1s)

analyze101.0ms (1.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
50%50%50%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
75%74.9%25%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
80%74.9%18.7%0.1%6.2%0%0%6
80%74.9%18.7%0.1%6.2%0%0%7
82.8%74.9%15.6%0.1%9.4%0%0%8
82.8%74.9%15.6%0.1%9.4%0%0%9
84.2%74.9%14%0.1%10.9%0%0%10
84.2%74.9%14%0.1%10.9%0%0%11
85%74.9%13.3%0.1%11.7%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.8s (34.8%)

Results
941.0ms6149×body256valid
686.0ms1389×body1024valid
415.0ms681×body1024infinite
361.0ms375×body512infinite
252.0ms712×body512valid
163.0ms418×body256infinite
3.0msbody2048valid
Bogosity

preprocess113.0ms (1.4%)

Algorithm
egg-herbie
Rules
1296×rational.json-simplify-46
1254×rational.json-simplify-59
1114×rational.json-simplify-35
944×rational.json-simplify-1
772×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
11730
22930
34730
48730
516030
636930
787530
8207830
9294130
10414330
11676630
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 im) (cos.f64 re))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(*.f64 (exp.f64 im) (cos.f64 re))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify518.0ms (6.4%)

Algorithm
egg-herbie
Rules
2524×rational.json-simplify-42
2160×rational.json-simplify-35
2098×rational.json-simplify-45
1716×rational.json-simplify-1
1044×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11115
21815
32815
45215
59315
620815
747915
8112215
9261515
10352815
11410915
12465615
13496215
14508215
15520315
16551315
17564215
18575815
19588515
20599915
21611315
22622715
23622715
24622715
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 8
Calls

6 calls:

TimeVariablePointExpression
1.0ms
re
@inf
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
im
@0
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
re
@0
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
re
@-inf
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
im
@inf
(*.f64 (exp.f64 re) (cos.f64 im))

rewrite128.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
15315
212515
328115
453315
5119615
6242915
7394615
8521615
9719615
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)))))

simplify396.0ms (4.9%)

Algorithm
egg-herbie
Rules
2214×rational.json-simplify-2
1876×rational.json-simplify-35
1574×rational.json-simplify-1
1182×rational.json-simplify-42
926×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
078550
1192550
2383510
3820490
42483490
54556490
65126490
75290490
85423490
95575490
105740490
116622490
127124490
137479490
147638490
157644490
167649490
Stop Event
node limit
Counts
22 → 44
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(+.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)
(+.f64 0 (*.f64 (exp.f64 re) (cos.f64 im)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)))
(-.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)
(/.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 2)) 2)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 4)) 4)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 8)) 8)
(/.f64 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))))) 256)
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (cos.f64 im) (*.f64 (pow.f64 re 2) 1/2))))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (cos.f64 im) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2))))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))))
(+.f64 (*.f64 (cos.f64 im) (*.f64 (pow.f64 re 2) 1/2)) (+.f64 (+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re)) (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)))))
(+.f64 (*.f64 (cos.f64 im) re) (+.f64 (+.f64 (cos.f64 im) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (cos.f64 im)))))
(+.f64 (cos.f64 im) (+.f64 (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) (*.f64 1/6 (*.f64 (cos.f64 im) (pow.f64 re 3)))))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 1/2 (pow.f64 re 2))))))
(exp.f64 re)
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (exp.f64 re))
(+.f64 (exp.f64 re) (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 (exp.f64 re) (*.f64 (pow.f64 im 2) (*.f64 (exp.f64 re) -1/2)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (exp.f64 re)))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 4) 1/24))))
(+.f64 (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 -1/2 (pow.f64 im 2)))) (*.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 (exp.f64 re) (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 -1/720 (*.f64 (exp.f64 re) (pow.f64 im 6))))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (exp.f64 re) (+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 6) -1/720)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 4) 1/24)))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 (exp.f64 re) (+.f64 (*.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (exp.f64 re) (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 (*.f64 -1/2 (*.f64 (exp.f64 re) (pow.f64 im 2))) (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))))
(+.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)
(*.f64 (cos.f64 im) (exp.f64 re))
(+.f64 0 (*.f64 (exp.f64 re) (cos.f64 im)))
(*.f64 (cos.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 1/2)))
(*.f64 (cos.f64 im) (exp.f64 re))
(-.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 0)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 2)) 2)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 4)) 4)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (cos.f64 im) 8)) 8)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)) 16)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))) 32)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))) 64)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) 128)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) 2) (*.f64 (cos.f64 im) 8)))))) 256)
(*.f64 (cos.f64 im) (exp.f64 re))
(pow.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 1)
(*.f64 (cos.f64 im) (exp.f64 re))

eval11.0ms (0.1%)

Compiler

Compiled 680 to 388 computations (42.9% saved)

prune6.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New41344
Fresh000
Picked011
Done000
Total41445
Error
0.0b
Counts
45 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
22.9b
(exp.f64 re)
20.6b
(cos.f64 im)
Compiler

Compiled 24 to 16 computations (33.3% saved)

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize2.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
0.1b
(*.f64 (cos.f64 im) re)
Compiler

Compiled 17 to 5 computations (70.6% saved)

series45.0ms (0.6%)

Counts
2 → 11
Calls

12 calls:

TimeVariablePointExpression
43.0ms
re
@inf
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
1.0ms
re
@0
(*.f64 (cos.f64 im) re)
0.0ms
im
@0
(*.f64 (cos.f64 im) re)
0.0ms
re
@inf
(*.f64 (cos.f64 im) re)
0.0ms
re
@-inf
(*.f64 (cos.f64 im) re)

rewrite118.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0832
15428
212628
328628
457628
5135828
6309228
7540228
8696428
Stop Event
node limit
Counts
2 → 47
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (*.f64 re 1/2)) (*.f64 (cos.f64 im) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (*.f64 re 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (*.f64 re 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) re) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 re 1/2)) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 re 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 re re)) (*.f64 (cos.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re 1) 2) (*.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 re 1) 1/2)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (+.f64 re 1) 2)) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)))))

simplify315.0ms (3.9%)

Algorithm
egg-herbie
Rules
2126×rational.json-simplify-2
1860×rational.json-simplify-35
1038×rational.json-simplify-53
974×rational.json-simplify-1
860×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01351140
13161140
27161128
321391122
442101122
550781122
653251122
755451122
857531122
959731122
1070391122
Stop Event
node limit
Counts
58 → 84
Calls
Call 1
Inputs
re
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) re)
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) re))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 re (pow.f64 im 6))) re)))
(+.f64 1 re)
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 re))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 -1/720 re) 1/720) (pow.f64 im 6)) (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4))))))
(cos.f64 im)
(*.f64 (cos.f64 im) re)
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) 0)
(+.f64 0 (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) (*.f64 re 1/2)) (*.f64 (cos.f64 im) (*.f64 re 1/2)))
(-.f64 (*.f64 (cos.f64 im) re) 0)
(/.f64 (*.f64 (cos.f64 im) re) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re re)) 2)
(/.f64 (*.f64 (cos.f64 im) (*.f64 re 4)) 4)
(/.f64 (*.f64 (cos.f64 im) (*.f64 re 8)) 8)
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))))) 128)
(pow.f64 (*.f64 (cos.f64 im) re) 1)
(-.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(*.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) (cos.f64 im)))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 re 1/2)) (cos.f64 im)))
(*.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1/2)
(*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 re 1) 2))
(*.f64 (*.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4))
(*.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (+.f64 2 (+.f64 re re)) (*.f64 (cos.f64 im) 1/2))
(*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))
(*.f64 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)) 2)
(*.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (cos.f64 im) 2))
(*.f64 1/4 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (/.f64 (+.f64 re 1) 2) (*.f64 (cos.f64 im) 2))
(*.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4) 4)
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 (cos.f64 im) 2))
(*.f64 (*.f64 2 (*.f64 (+.f64 re 1) 1/2)) (cos.f64 im))
(*.f64 (*.f64 2 (/.f64 (+.f64 re 1) 2)) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 2)
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))))) 128)
(pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
Outputs
re
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) re)
(+.f64 re (*.f64 re (*.f64 (pow.f64 im 2) -1/2)))
(+.f64 re (*.f64 -1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 (pow.f64 im 2) (*.f64 re -1/2)))
(+.f64 re (*.f64 re (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) re))
(+.f64 (*.f64 re (*.f64 (pow.f64 im 4) 1/24)) (+.f64 re (*.f64 re (*.f64 (pow.f64 im 2) -1/2))))
(+.f64 re (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (*.f64 -1/2 (*.f64 re (pow.f64 im 2)))))
(+.f64 re (*.f64 re (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 re (*.f64 re (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 re (pow.f64 im 6))) re)))
(+.f64 (*.f64 re (*.f64 (pow.f64 im 2) -1/2)) (+.f64 (*.f64 re (*.f64 (pow.f64 im 4) 1/24)) (+.f64 re (*.f64 re (*.f64 (pow.f64 im 6) -1/720)))))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 2))) (+.f64 re (+.f64 (*.f64 re (*.f64 -1/720 (pow.f64 im 6))) (*.f64 1/24 (*.f64 re (pow.f64 im 4))))))
(+.f64 (+.f64 re (*.f64 re (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))) (*.f64 (pow.f64 im 6) (*.f64 re -1/720)))
(+.f64 re (*.f64 re (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 re))
(+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 re 1))
(+.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4)))))
(+.f64 1 (+.f64 (+.f64 re (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24)))) (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2))))
(+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 re (+.f64 1 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))))))
(+.f64 re (+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 1 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))))))
(+.f64 1 (+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 re (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 re) 1/2) (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 (-.f64 (*.f64 -1/720 re) 1/720) (pow.f64 im 6)) (+.f64 re (*.f64 (+.f64 (*.f64 1/24 re) 1/24) (pow.f64 im 4))))))
(+.f64 1 (+.f64 (+.f64 re (+.f64 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))) (*.f64 (pow.f64 im 6) (-.f64 (*.f64 re -1/720) 1/720)))) (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2))))
(+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 re (+.f64 (+.f64 1 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24)))) (*.f64 (pow.f64 im 6) (-.f64 (*.f64 re -1/720) 1/720)))))
(+.f64 1 (+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))) (+.f64 re (*.f64 (pow.f64 im 6) (-.f64 (*.f64 re -1/720) 1/720))))))
(+.f64 re (+.f64 (*.f64 (pow.f64 im 6) (-.f64 (*.f64 re -1/720) 1/720)) (+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 1 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24)))))))
(+.f64 re (+.f64 (*.f64 (pow.f64 im 2) (-.f64 (*.f64 re -1/2) 1/2)) (+.f64 1 (+.f64 (*.f64 (pow.f64 im 4) (+.f64 1/24 (*.f64 re 1/24))) (*.f64 (pow.f64 im 6) (-.f64 (*.f64 re -1/720) 1/720))))))
(cos.f64 im)
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) 0)
(*.f64 re (cos.f64 im))
(+.f64 0 (*.f64 (cos.f64 im) re))
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) (*.f64 re 1/2)) (*.f64 (cos.f64 im) (*.f64 re 1/2)))
(*.f64 re (cos.f64 im))
(-.f64 (*.f64 (cos.f64 im) re) 0)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) re) 1)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re re)) 2)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (*.f64 re 4)) 4)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (*.f64 re 8)) 8)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))) 16)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))) 32)
(*.f64 re (cos.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) 64)
(*.f64 re (cos.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) (*.f64 re 8)))))) 128)
(*.f64 re (cos.f64 im))
(pow.f64 (*.f64 (cos.f64 im) re) 1)
(*.f64 re (cos.f64 im))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 1 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 re 1/2)) (cos.f64 im)))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 2 (cos.f64 im)))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1/2)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 re 1) 2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 2 (cos.f64 im)))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (+.f64 re 1) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 2 (+.f64 re re)) (*.f64 (cos.f64 im) 1/2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) (/.f64 (+.f64 re 1) 2)) 2)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (cos.f64 im) 2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 1/4 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (/.f64 (+.f64 re 1) 2) (*.f64 (cos.f64 im) 2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 4) 4)
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 (cos.f64 im) 2))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (*.f64 2 (cos.f64 im)))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 2 (*.f64 (+.f64 re 1) 1/2)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (*.f64 2 (/.f64 (+.f64 re 1) 2)) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 2)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8) 8)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)) 16)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))))) 128)
(*.f64 (cos.f64 im) (+.f64 re 1))
(pow.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))

eval26.0ms (0.3%)

Compiler

Compiled 1208 to 822 computations (32% saved)

prune78.0ms (1%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New81384
Fresh000
Picked011
Done033
Total81788
Error
0.0b
Counts
88 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
20.8b
(+.f64 re (cos.f64 im))
42.6b
(+.f64 re 1)
20.1b
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
22.9b
(exp.f64 re)
20.6b
(cos.f64 im)
Compiler

Compiled 43 to 30 computations (30.2% saved)

localize175.0ms (2.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 re 1) (cos.f64 im))
Compiler

Compiled 16 to 9 computations (43.8% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
re
@inf
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0ms
im
@0
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0ms
im
@-inf
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0ms
im
@inf
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0ms
re
@0
(*.f64 (+.f64 re 1) (cos.f64 im))

rewrite118.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1516×rational.json-1
1516×rational.json-2
1516×rational.json-3
1322×rational.json-simplify-35
954×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16917
215617
330817
461017
5137117
6300317
7508817
8710917
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (+.f64 re 1) (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 re 1) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2) (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)))))

simplify385.0ms (4.7%)

Algorithm
egg-herbie
Rules
2240×rational.json-simplify-2
1732×rational.json-simplify-35
1522×rational.json-simplify-53
1480×rational.json-simplify-1
928×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
066781
1164781
2326769
3642757
42048757
53972757
65122757
75400757
85644757
95901757
106216757
117626757
Stop Event
node limit
Counts
37 → 40
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)
(+.f64 0 (*.f64 (+.f64 re 1) (cos.f64 im)))
(+.f64 (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2) (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2))
(-.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)
(/.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 4)) 4)
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))))) 128)
(pow.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(*.f64 (cos.f64 im) re)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 re (+.f64 (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 2) -1/2)) 1))
(+.f64 re (+.f64 1 (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (+.f64 re 1) (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 1 (+.f64 re (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2))))))
(+.f64 1 (+.f64 (+.f64 re (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 2) -1/2))) (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 4) 1/24))))
(+.f64 1 (+.f64 (+.f64 re (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))) (*.f64 (+.f64 re 1) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 1 (+.f64 re (+.f64 (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2))) (*.f64 (+.f64 re 1) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (+.f64 re 1) (*.f64 (+.f64 re 1) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (+.f64 re 1) (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1 re) (pow.f64 im 6))) (+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))))
(+.f64 (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 6) -1/720)) (+.f64 1 (+.f64 (+.f64 re (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 2) -1/2))) (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 4) 1/24)))))
(+.f64 (+.f64 re (+.f64 1 (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2))))) (+.f64 (*.f64 (pow.f64 im 6) (*.f64 -1/720 (+.f64 re 1))) (*.f64 (+.f64 re 1) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (+.f64 re (+.f64 1 (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2))))) (*.f64 (+.f64 re 1) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 (+.f64 re (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))) (+.f64 1 (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (+.f64 (+.f64 re 1) (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))) (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 re (+.f64 1 (+.f64 (*.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2))) (*.f64 (+.f64 re 1) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 0 (*.f64 (+.f64 re 1) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2) (*.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1/2))
(*.f64 (cos.f64 im) (+.f64 re 1))
(-.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 0)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 4)) 4)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)) 8)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))) 16)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))) 32)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) 64)
(*.f64 (cos.f64 im) (+.f64 re 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 (cos.f64 im) 8)))))) 128)
(*.f64 (cos.f64 im) (+.f64 re 1))
(pow.f64 (*.f64 (+.f64 re 1) (cos.f64 im)) 1)
(*.f64 (cos.f64 im) (+.f64 re 1))

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 re (cos.f64 im))
Compiler

Compiled 10 to 4 computations (60% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
im
@0
(+.f64 re (cos.f64 im))
0.0ms
re
@0
(+.f64 re (cos.f64 im))
0.0ms
im
@inf
(+.f64 re (cos.f64 im))
0.0ms
im
@-inf
(+.f64 re (cos.f64 im))
0.0ms
re
@-inf
(+.f64 re (cos.f64 im))

rewrite243.0ms (3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14711
211311
324911
450211
5115511
6292511
7499311
8598611
9734611
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(+.f64 re (cos.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (cos.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 re (cos.f64 im)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 re (cos.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 re (cos.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 re (cos.f64 im)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (cos.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 re (cos.f64 im)) 1)))))

simplify517.0ms (6.3%)

Algorithm
egg-herbie
Rules
1790×rational.json-simplify-1
1612×rational.json-simplify-35
904×rational.json-simplify-41
886×rational.json-simplify-38
830×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
071572
1160572
2496572
31231572
41946572
52808572
63302572
73401572
83489572
93581572
103690572
113952572
124702572
135073572
145376572
155589572
165779572
175933572
186486572
Stop Event
node limit
Counts
46 → 41
Calls
Call 1
Inputs
(cos.f64 im)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
re
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
re
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 1 re)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) re))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) re)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 re (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(-.f64 (+.f64 re (cos.f64 im)) 0)
(*.f64 (+.f64 re (cos.f64 im)) 1)
(*.f64 1 (+.f64 re (cos.f64 im)))
(*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 1/2))
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 re (cos.f64 im)) 1/4))
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 1/4)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 re (cos.f64 im)) 2))
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 re (cos.f64 im)) 4))
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 re (cos.f64 im)) 8))
(/.f64 (+.f64 re (cos.f64 im)) 1)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 2)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 4)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))))) 128)
(pow.f64 (+.f64 re (cos.f64 im)) 1)
Outputs
(cos.f64 im)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
re
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
re
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) re))
(+.f64 1 (+.f64 re (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 re (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 (+.f64 re 1) (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) re)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 re (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 1 (+.f64 re (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 re (+.f64 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))) 1))
(+.f64 re (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 re (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 re (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 re (+.f64 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 re (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 re (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(+.f64 (cos.f64 im) re)
(-.f64 (+.f64 re (cos.f64 im)) 0)
(+.f64 (cos.f64 im) re)
(*.f64 (+.f64 re (cos.f64 im)) 1)
(+.f64 (cos.f64 im) re)
(*.f64 1 (+.f64 re (cos.f64 im)))
(+.f64 (cos.f64 im) re)
(*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 1/2))
(+.f64 (cos.f64 im) re)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 1/2)
(+.f64 (cos.f64 im) re)
(*.f64 4 (*.f64 (+.f64 re (cos.f64 im)) 1/4))
(+.f64 (cos.f64 im) re)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 1/4)
(+.f64 (cos.f64 im) re)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 1/8)
(+.f64 (cos.f64 im) re)
(*.f64 1/2 (*.f64 (+.f64 re (cos.f64 im)) 2))
(+.f64 (cos.f64 im) re)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/2) 2)
(+.f64 (cos.f64 im) re)
(*.f64 1/4 (*.f64 (+.f64 re (cos.f64 im)) 4))
(+.f64 (cos.f64 im) re)
(*.f64 (*.f64 (+.f64 re (cos.f64 im)) 1/4) 4)
(+.f64 (cos.f64 im) re)
(*.f64 1/8 (*.f64 (+.f64 re (cos.f64 im)) 8))
(+.f64 (cos.f64 im) re)
(/.f64 (+.f64 re (cos.f64 im)) 1)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 2) 2)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 4) 4)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 (+.f64 re (cos.f64 im)) 8) 8)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)) 16)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))) 32)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8)))) 64)
(+.f64 (cos.f64 im) re)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (cos.f64 im)) 8))))) 128)
(+.f64 (cos.f64 im) re)
(pow.f64 (+.f64 re (cos.f64 im)) 1)
(+.f64 (cos.f64 im) re)

eval22.0ms (0.3%)

Compiler

Compiled 1031 to 732 computations (29% saved)

prune13.0ms (0.2%)

Pruning

9 alts after pruning (2 fresh and 7 done)

PrunedKeptTotal
New79281
Fresh000
Picked011
Done066
Total79988
Error
0.0b
Counts
88 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
20.1b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
20.8b
(+.f64 re (cos.f64 im))
42.6b
(+.f64 re 1)
20.1b
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
22.9b
(exp.f64 re)
20.6b
(cos.f64 im)
61.8b
re
Compiler

Compiled 58 to 41 computations (29.3% saved)

localize15.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 re (+.f64 re 2))
0.1b
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
Compiler

Compiled 33 to 19 computations (42.4% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
re
@0
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
0.0ms
im
@inf
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
0.0ms
im
@0
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
0.0ms
re
@inf
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
0.0ms
re
@-inf
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))

rewrite136.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1364×rational.json-simplify-35
1298×exponential.json-3
1298×rational.json-1
1298×rational.json-2
1298×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
16736
214236
330136
462836
5152236
6300336
7451136
8590536
9726036
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))
(+.f64 re (+.f64 re 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)) (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))) (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)) (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 2 (*.f64 re 4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 2 (+.f64 re re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 2 (+.f64 re re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2 (+.f64 2 (*.f64 re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 2 (+.f64 re re)) 1)))))

simplify1.0s (12.8%)

Algorithm
egg-herbie
Rules
1998×rational.json-simplify-35
1536×rational.json-simplify-2
1194×rational.json-simplify-1
778×rational.json-simplify-51
666×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01101627
12641549
26321481
314431463
430331463
539411463
640621463
741661463
842811463
944151463
1045601463
1149041463
1256781463
1359871463
1462491463
1564691463
1665701463
1768141463
1872251463
Stop Event
node limit
Counts
73 → 71
Calls
Call 1
Inputs
(+.f64 2 (*.f64 2 re))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2)))))
(+.f64 2 (+.f64 (*.f64 2 re) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 4))))))
(+.f64 2 (+.f64 (*.f64 -1/720 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 6))) (+.f64 (*.f64 2 re) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 4)))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (cos.f64 im))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
2
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))
(+.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))
(+.f64 (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)) (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))) (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))))
(+.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))))
(+.f64 (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)) (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 2 (*.f64 re 4)))) 2)
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 8)
(/.f64 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)
(pow.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)
(-.f64 (+.f64 2 (+.f64 re re)) 0)
(*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))
(*.f64 (+.f64 2 (+.f64 re re)) 1)
(*.f64 1 (+.f64 2 (+.f64 re re)))
(*.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 1/2)
(*.f64 4 (/.f64 (+.f64 2 (+.f64 re re)) 4))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)
(*.f64 1/2 (+.f64 2 (+.f64 2 (*.f64 re 4))))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))
(*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(/.f64 (+.f64 2 (+.f64 re re)) 1)
(/.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 2)
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)
(pow.f64 (+.f64 2 (+.f64 re re)) 1)
Outputs
(+.f64 2 (*.f64 2 re))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2)))))
(+.f64 (*.f64 2 re) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2)) 2))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 2 (+.f64 (*.f64 2 re) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 4))))))
(+.f64 2 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2)) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 4) 1/24)) (*.f64 2 re))))
(+.f64 2 (+.f64 (*.f64 2 re) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))))
(+.f64 (*.f64 2 re) (+.f64 2 (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))))
(+.f64 2 (+.f64 (*.f64 -1/720 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 6))) (+.f64 (*.f64 2 re) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 4)))))))
(+.f64 2 (+.f64 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2)) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 4) 1/24)) (*.f64 2 re))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 6) -1/720))))
(+.f64 2 (+.f64 (+.f64 (*.f64 2 re) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/24 (pow.f64 im 4))))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 2 (+.f64 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/720 (pow.f64 im 6)))))
(+.f64 2 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (cos.f64 im))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(*.f64 2 (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(*.f64 2 (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (*.f64 (cos.f64 im) re)) (*.f64 2 (cos.f64 im)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
2
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(+.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(+.f64 (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)) (*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) (*.f64 (cos.f64 im) 2)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(+.f64 (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))) (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))))
(*.f64 (+.f64 (*.f64 re 4) 4) (+.f64 (/.f64 (cos.f64 im) 4) (/.f64 (cos.f64 im) 4)))
(*.f64 (cos.f64 im) (/.f64 (+.f64 4 (*.f64 re 4)) 2))
(+.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) (/.f64 (cos.f64 im) 4))))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(+.f64 (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)) (*.f64 (*.f64 (cos.f64 im) 2) (/.f64 (+.f64 2 (+.f64 re re)) 4)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 0)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 2 (*.f64 re 4)))) 2)
(+.f64 (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))) (*.f64 (/.f64 (cos.f64 im) 4) (+.f64 2 (+.f64 2 (*.f64 re 4)))))
(*.f64 (+.f64 (*.f64 re 4) 4) (+.f64 (/.f64 (cos.f64 im) 4) (/.f64 (cos.f64 im) 4)))
(*.f64 (cos.f64 im) (/.f64 (+.f64 4 (*.f64 re 4)) 2))
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 8)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) 2) (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(pow.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) 1)
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(-.f64 (+.f64 2 (+.f64 re re)) 0)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 1 (+.f64 2 (+.f64 re re)))
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 1/2)
(*.f64 1/2 (+.f64 2 (+.f64 2 (*.f64 re 4))))
(*.f64 1/2 (+.f64 (*.f64 re 4) 4))
(*.f64 1/2 (+.f64 4 (*.f64 re 4)))
(*.f64 4 (/.f64 (+.f64 2 (+.f64 re re)) 4))
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 1/2 (+.f64 2 (+.f64 2 (*.f64 re 4))))
(*.f64 1/2 (+.f64 (*.f64 re 4) 4))
(*.f64 1/2 (+.f64 4 (*.f64 re 4)))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(*.f64 (/.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (+.f64 2 (+.f64 2 (*.f64 re 4))) 2)
(/.f64 (+.f64 (*.f64 re 4) 4) 2)
(/.f64 (+.f64 4 (*.f64 re 4)) 2)
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))))) 128)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))
(pow.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))
(+.f64 re (+.f64 2 re))

eval197.0ms (2.4%)

Compiler

Compiled 1235 to 904 computations (26.8% saved)

prune14.0ms (0.2%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New71071
Fresh011
Picked011
Done077
Total71980
Error
0.0b
Counts
80 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
20.1b
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
20.8b
(+.f64 re (cos.f64 im))
42.6b
(+.f64 re 1)
20.1b
(*.f64 (+.f64 re 1) (cos.f64 im))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
22.9b
(exp.f64 re)
20.6b
(cos.f64 im)
61.8b
re
Compiler

Compiled 58 to 41 computations (29.3% saved)

regimes28.0ms (0.3%)

Counts
9 → 1
Calls
Call 1
Inputs
re
(+.f64 re 1)
(cos.f64 im)
(exp.f64 re)
(+.f64 re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (exp.f64 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
Calls

5 calls:

7.0ms
(cos.f64 im)
6.0ms
re
6.0ms
im
5.0ms
(*.f64 (exp.f64 re) (cos.f64 im))
2.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (exp.f64 re) (cos.f64 im))
0.0b1(exp.f64 re)
0.0b1(cos.f64 im)
Compiler

Compiled 63 to 34 computations (46% saved)

regimes310.0ms (3.8%)

Counts
7 → 2
Calls
Call 1
Inputs
re
(+.f64 re 1)
(cos.f64 im)
(exp.f64 re)
(+.f64 re (cos.f64 im))
(*.f64 (+.f64 re 1) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
Outputs
(exp.f64 re)
(*.f64 (+.f64 re 1) (cos.f64 im))
Calls

4 calls:

203.0ms
im
91.0ms
(cos.f64 im)
11.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.4b2re
9.9b7im
0.4b2(exp.f64 re)
11.9b4(cos.f64 im)
Compiler

Compiled 44 to 26 computations (40.9% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999722260736387
0.9999999022147752
Compiler

Compiled 12 to 9 computations (25% saved)

regimes85.0ms (1%)

Counts
5 → 2
Calls
Call 1
Inputs
re
(+.f64 re 1)
(cos.f64 im)
(exp.f64 re)
(+.f64 re (cos.f64 im))
Outputs
(exp.f64 re)
(+.f64 re (cos.f64 im))
Calls

4 calls:

51.0ms
im
15.0ms
(cos.f64 im)
14.0ms
re
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.1b2re
10.4b7im
1.1b2(exp.f64 re)
12.4b4(cos.f64 im)
Compiler

Compiled 28 to 17 computations (39.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999722260736387
0.9999999022147752
Compiler

Compiled 12 to 9 computations (25% saved)

regimes52.0ms (0.6%)

Counts
4 → 2
Calls
Call 1
Inputs
re
(+.f64 re 1)
(cos.f64 im)
(exp.f64 re)
Outputs
(exp.f64 re)
(cos.f64 im)
Calls

4 calls:

26.0ms
im
14.0ms
(cos.f64 im)
8.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.1b2re
10.5b7im
1.1b2(exp.f64 re)
12.5b4(cos.f64 im)
Compiler

Compiled 24 to 16 computations (33.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999722260736387
0.9999999022147752
Compiler

Compiled 12 to 9 computations (25% saved)

regimes12.0ms (0.1%)

Counts
3 → 1
Calls
Call 1
Inputs
re
(+.f64 re 1)
(cos.f64 im)
Outputs
(cos.f64 im)
Calls

3 calls:

4.0ms
im
3.0ms
re
3.0ms
(cos.f64 im)
Results
ErrorSegmentsBranch
20.6b1re
20.6b1im
20.6b1(cos.f64 im)
Compiler

Compiled 18 to 12 computations (33.3% saved)

regimes7.0ms (0.1%)

Accuracy

Total -19.5b remaining (-45.7%)

Threshold costs -19.5b (-45.7%)

Counts
2 → 1
Calls
Call 1
Inputs
re
(+.f64 re 1)
Outputs
(+.f64 re 1)
Calls

2 calls:

4.0ms
im
3.0ms
re
Results
ErrorSegmentsBranch
42.6b1re
42.6b1im
Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020115
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (*.f64 (+.f64 re 1) (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (+.f64 re (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
(+.f64 re 1)
re
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (*.f64 (+.f64 re 1) (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (+.f64 re (cos.f64 im)))
(if (<=.f64 (exp.f64 re) 9007019110755897/9007199254740992) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
(+.f64 re 1)
re
Compiler

Compiled 58 to 39 computations (32.8% saved)

soundness0.0ms (0%)

end39.0ms (0.5%)

Compiler

Compiled 46 to 20 computations (56.5% saved)

Profiling

Loading profile data...