Details

Time bar (total: 4.1s)

analyze54.0ms (1.3%)

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.7s (67.9%)

Results
1.1s6213×body256valid
938.0ms1369×body1024valid
294.0ms676×body1024infinite
235.0ms669×body512valid
112.0ms347×body512infinite
43.0ms382×body256infinite
3.0msbody2048valid
Bogosity

preprocess112.0ms (2.8%)

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)

simplify510.0ms (12.6%)

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

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)

series3.0ms (0.1%)

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
im
@-inf
(*.f64 (exp.f64 re) (cos.f64 im))
0.0ms
re
@-inf
(*.f64 (exp.f64 re) (cos.f64 im))

rewrite123.0ms (3%)

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

simplify395.0ms (9.8%)

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

eval12.0ms (0.3%)

Compiler

Compiled 680 to 388 computations (42.9% saved)

prune7.0ms (0.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New42244
Fresh000
Picked011
Done000
Total42345
Error
0.0b
Counts
45 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
21.1b
(exp.f64 re)
20.0b
(cos.f64 im)
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
21.1b
(exp.f64 re)
20.0b
(cos.f64 im)
Compiler

Compiled 15 to 11 computations (26.7% saved)

regimes16.0ms (0.4%)

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

5 calls:

3.0ms
(*.f64 (exp.f64 re) (cos.f64 im))
3.0ms
im
3.0ms
re
3.0ms
(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 32 to 20 computations (37.5% saved)

regimes34.0ms (0.8%)

Accuracy

Total -39.0b remaining (-3687.4%)

Threshold costs -39.0b (-3687.4%)

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

4 calls:

19.0ms
im
6.0ms
(cos.f64 im)
6.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.1b2re
8.8b5im
1.1b2(exp.f64 re)
10.1b2(cos.f64 im)
Compiler

Compiled 20 to 14 computations (30% saved)

bsearch0.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
0.9999999999992335
0.9999999999999998
Compiler

Compiled 12 to 9 computations (25% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01443
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 1125899906842061/1125899906842624) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
Outputs
(*.f64 (exp.f64 re) (cos.f64 im))
(if (<=.f64 (exp.f64 re) 1125899906842061/1125899906842624) (exp.f64 re) (cos.f64 im))
(cos.f64 im)
Compiler

Compiled 22 to 15 computations (31.8% saved)

soundness0.0ms (0%)

end18.0ms (0.4%)

Compiler

Compiled 18 to 8 computations (55.6% saved)

Profiling

Loading profile data...