Details

Time bar (total: 5.1s)

analyze58.0ms (1.1%)

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

Results
1.2s6154×body256valid
648.0ms1388×body1024valid
390.0ms692×body1024infinite
237.0ms709×body512valid
65.0ms340×body512infinite
48.0ms432×body256infinite
4.0msbody2048valid
Bogosity

preprocess98.0ms (1.9%)

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)

simplify487.0ms (9.5%)

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 2 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0.1%)

Counts
2 → 12
Calls

9 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 (2.5%)

Algorithm
batch-egg-rewrite
Rules
1360×rational.json-simplify-35
1350×bool.json-1
1350×bool.json-2
1298×rational.json-1
1298×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
18020
223120
351520
4106920
5233920
6499320
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (cos.f64 im))
(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 (*.f64 (exp.f64 re) (cos.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (exp.f64 re) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (exp.f64 re) (cos.f64 im)) (*.f64 (exp.f64 re) (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (exp.f64 re) (cos.f64 im)) (*.f64 (exp.f64 re) (cos.f64 im)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (cos.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 (cos.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (cos.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (cos.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (cos.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (cos.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (cos.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x and (cos.f64 im) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x or (cos.f64 im) (cos.f64 im))))))

simplify249.0ms (4.9%)

Algorithm
egg-herbie
Rules
2718×rational.json-simplify-2
2064×rational.json-simplify-35
1536×rational.json-simplify-1
1330×rational.json-simplify-51
990×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0105722
1240710
2604670
31997642
43865642
54527642
64737642
74854642
84989642
96305642
106471642
116804642
127601642
Stop Event
node limit
Counts
44 → 69
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))))))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.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 -1/720 (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 (*.f64 (exp.f64 re) (cos.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)))) 64)
(+.f64 (cos.f64 im) 0)
(+.f64 0 (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 (cos.f64 im) 1/2))
(-.f64 (cos.f64 im) 0)
(*.f64 (cos.f64 im) 1)
(*.f64 1 (cos.f64 im))
(*.f64 2 (*.f64 (cos.f64 im) 1/2))
(*.f64 (*.f64 (cos.f64 im) 2) 1/2)
(*.f64 4 (/.f64 (cos.f64 im) 4))
(*.f64 (*.f64 (cos.f64 im) 4) 1/4)
(*.f64 1/2 (*.f64 (cos.f64 im) 2))
(*.f64 (*.f64 (cos.f64 im) 1/2) 2)
(*.f64 1/4 (*.f64 (cos.f64 im) 4))
(*.f64 (/.f64 (cos.f64 im) 4) 4)
(/.f64 (cos.f64 im) 1)
(/.f64 (*.f64 (cos.f64 im) 2) 2)
(/.f64 (*.f64 (cos.f64 im) 4) 4)
(/.f64 (*.f64 (cos.f64 im) 8) 8)
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8)))) 64)
Outputs
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 (cos.f64 im) re))
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.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) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.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 (cos.f64 im) (*.f64 (pow.f64 re 3) 1/6))))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 1/6 (cos.f64 im))) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2))))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3)))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (+.f64 1 (*.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 (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 (exp.f64 re) (+.f64 1 (*.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))) (exp.f64 re)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4))) (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (exp.f64 re) (+.f64 (*.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/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(+.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) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 (exp.f64 re) (+.f64 (*.f64 (exp.f64 re) (*.f64 -1/720 (pow.f64 im 6))) (*.f64 (exp.f64 re) (*.f64 1/24 (pow.f64 im 4))))))
(+.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 (pow.f64 im 2) (*.f64 (exp.f64 re) -1/2)) (+.f64 (exp.f64 re) (*.f64 (exp.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/720 (pow.f64 im 6))))))
(+.f64 (exp.f64 re) (*.f64 (exp.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))))))
1
(+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 (*.f64 -1/2 (pow.f64 im 2)) (+.f64 1 (*.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 -1/720 (pow.f64 im 6)))))
(+.f64 1 (+.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 -1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4)))))
(+.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 (*.f64 (exp.f64 re) (cos.f64 im)) 8) 8)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)) 16)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) 32)
(*.f64 (cos.f64 im) (exp.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (cos.f64 im)) 8)))) 64)
(*.f64 (cos.f64 im) (exp.f64 re))
(+.f64 (cos.f64 im) 0)
(cos.f64 im)
(+.f64 0 (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 (cos.f64 im) 1/2))
(cos.f64 im)
(-.f64 (cos.f64 im) 0)
(cos.f64 im)
(*.f64 (cos.f64 im) 1)
(cos.f64 im)
(*.f64 1 (cos.f64 im))
(cos.f64 im)
(*.f64 2 (*.f64 (cos.f64 im) 1/2))
(cos.f64 im)
(*.f64 (*.f64 (cos.f64 im) 2) 1/2)
(cos.f64 im)
(*.f64 4 (/.f64 (cos.f64 im) 4))
(cos.f64 im)
(*.f64 (*.f64 (cos.f64 im) 4) 1/4)
(cos.f64 im)
(*.f64 1/2 (*.f64 (cos.f64 im) 2))
(cos.f64 im)
(*.f64 (*.f64 (cos.f64 im) 1/2) 2)
(cos.f64 im)
(*.f64 1/4 (*.f64 (cos.f64 im) 4))
(cos.f64 im)
(*.f64 (/.f64 (cos.f64 im) 4) 4)
(cos.f64 im)
(/.f64 (cos.f64 im) 1)
(cos.f64 im)
(/.f64 (*.f64 (cos.f64 im) 2) 2)
(cos.f64 im)
(/.f64 (*.f64 (cos.f64 im) 4) 4)
(cos.f64 im)
(/.f64 (*.f64 (cos.f64 im) 8) 8)
(cos.f64 im)
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) 8)) 16)
(cos.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) 32)
(cos.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (cos.f64 im) 8)))) 64)
(cos.f64 im)

eval15.0ms (0.3%)

Compiler

Compiled 917 to 540 computations (41.1% saved)

prune10.0ms (0.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New66369
Fresh000
Picked011
Done000
Total66470
Error
0.0b
Counts
70 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
18.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.7b
(exp.f64 re)
19.1b
(cos.f64 im)
Compiler

Compiled 23 to 17 computations (26.1% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 im)
Compiler

Compiled 5 to 3 computations (40% saved)

localize2.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize55.0ms (1.1%)

Local error

Found 2 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite82.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
1554×rational.json-simplify-35
1344×bool.json-1
1344×bool.json-2
1286×rational.json-1
1286×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
19717
228317
357917
4120317
5267117
6544817
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)))) (#(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 re (+.f64 re 2))) 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 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (cos.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (cos.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (cos.f64 im) (+.f64 re 1)))))))

simplify536.0ms (10.5%)

Algorithm
egg-herbie
Rules
3188×rational.json-simplify-35
2192×rational.json-simplify-2
1398×rational.json-simplify-1
836×rational.json-simplify-53
798×rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
062747
1148747
2298735
3584723
42038723
53764723
64681723
75090723
85409723
95679723
106011723
116832723
126993723
137095723
147178723
157247723
167489723
177734723
187978723
Stop Event
node limit
Counts
35 → 36
Calls
Call 1
Inputs
(+.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))
(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 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 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 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)
Outputs
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 1 re))
(+.f64 (+.f64 1 re) (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 1 (+.f64 re (*.f64 (+.f64 1 re) (*.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 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))) (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4)))))
(+.f64 (+.f64 re (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (+.f64 1 re) (*.f64 1/24 (pow.f64 im 4))) 1))
(+.f64 (+.f64 re (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2)))) (+.f64 1 (*.f64 (+.f64 1 re) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 re (+.f64 (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))) 1))
(+.f64 (+.f64 1 re) (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 re (+.f64 1 (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (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 (*.f64 1/24 (*.f64 (+.f64 1 re) (pow.f64 im 4))) (+.f64 1 (+.f64 (+.f64 re (*.f64 -1/2 (*.f64 (+.f64 1 re) (pow.f64 im 2)))) (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 6) -1/720)))))
(+.f64 (+.f64 (+.f64 re (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (+.f64 1 re) (*.f64 1/24 (pow.f64 im 4))) 1)) (*.f64 (+.f64 1 re) (*.f64 -1/720 (pow.f64 im 6))))
(+.f64 (+.f64 (+.f64 1 re) (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2)))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 re (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 1 (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))))
(+.f64 (+.f64 1 (+.f64 re (*.f64 (+.f64 1 re) (*.f64 -1/2 (pow.f64 im 2))))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.f64 (cos.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (cos.f64 im))
(*.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 1 re) (cos.f64 im))
(cos.f64 im)
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(*.f64 (cos.f64 im) re)
(*.f64 re (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im))
(+.f64 (cos.f64 im) (*.f64 re (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 1 re) (cos.f64 im))
(+.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (+.f64 1 re) (cos.f64 im))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 0)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 1)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 (cos.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8) 8)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)) 16)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (+.f64 1 re) (cos.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) 8)))) 64)
(*.f64 (+.f64 1 re) (cos.f64 im))

eval22.0ms (0.4%)

Compiler

Compiled 1126 to 829 computations (26.4% saved)

prune15.0ms (0.3%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New89392
Fresh000
Picked011
Done033
Total89796
Error
0.0b
Counts
96 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
39.3b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
18.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.7b
(exp.f64 re)
19.1b
(cos.f64 im)
39.4b
1
Compiler

Compiled 43 to 33 computations (23.3% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize14.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 33 to 19 computations (42.4% saved)

series2.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
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
@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
im
@-inf
(*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))

rewrite85.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1522×bool.json-1
1522×bool.json-2
1470×rational.json-1
1470×rational.json-2
1470×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
110036
226636
355836
4122736
5283536
6595336
Stop Event
node limit
Counts
2 → 29
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 re (+.f64 re 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)) (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (+.f64 re 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (+.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 re (+.f64 re 2)) (+.f64 re (+.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (+.f64 re 2)) (+.f64 re (+.f64 re 2)))))))

simplify396.0ms (7.7%)

Algorithm
egg-herbie
Rules
1864×rational.json-simplify-35
1746×rational.json-simplify-2
1370×rational.json-simplify-1
794×rational.json-simplify-38
710×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0971349
12091349
25171313
314661295
428961295
533301295
634541295
735491295
836521295
937731295
1043081295
1146021295
1253591295
1356551295
1458861295
1562301295
1664431295
1766471295
1871051295
Stop Event
node limit
Counts
65 → 62
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 re (+.f64 re 2))) 0)
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))))
(+.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)) (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 0)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 1)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 2)) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 4)) 4)
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)
(-.f64 (+.f64 re (+.f64 re 2)) 0)
(*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))
(*.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(*.f64 (+.f64 re (+.f64 re 2)) 1)
(*.f64 1 (+.f64 re (+.f64 re 2)))
(*.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)
(*.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))
(*.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(/.f64 (+.f64 re (+.f64 re 2)) 1)
(/.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)
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 2 (+.f64 (*.f64 2 re) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 2 (*.f64 2 re)))
(+.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 2 re) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2)) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 4) 1/24)))))
(+.f64 2 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 (*.f64 2 re) (*.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 (*.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 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 2 re) (+.f64 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 2) -1/2)) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 4) 1/24))) (*.f64 -1/720 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 6))))))
(+.f64 2 (+.f64 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/2 (pow.f64 im 2))) (+.f64 (*.f64 2 re) (*.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 2 re) (+.f64 (*.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 (*.f64 2 re) (+.f64 2 (*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (cos.f64 im))
(*.f64 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(*.f64 2 (*.f64 re (cos.f64 im)))
(*.f64 re (*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.f64 2 (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (cos.f64 im) re))
(*.f64 2 (*.f64 re (cos.f64 im)))
(*.f64 re (*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 (*.f64 2 (cos.f64 im)) (+.f64 re 1))
(*.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 re (+.f64 re 2))) 0)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)) (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 1/2)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 0)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 1)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 2)) 2)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) (*.f64 (cos.f64 im) 4)) 4)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (+.f64 re (+.f64 re 2)) 0)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (+.f64 re (+.f64 re 2)) 1)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1 (+.f64 re (+.f64 re 2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 1/2 (+.f64 re (+.f64 4 (*.f64 re 3))))
(*.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 1/2 (+.f64 re (+.f64 4 (*.f64 re 3))))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 re (+.f64 re 2)) 1)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)
(/.f64 (+.f64 re (+.f64 4 (*.f64 re 3))) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))

eval30.0ms (0.6%)

Compiler

Compiled 1509 to 1137 computations (24.7% saved)

prune15.0ms (0.3%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New90090
Fresh011
Picked011
Done055
Total90797
Error
0.0b
Counts
97 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
39.3b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
18.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.7b
(exp.f64 re)
19.1b
(cos.f64 im)
39.4b
1
Compiler

Compiled 43 to 33 computations (23.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0.0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
39.3b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
18.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
20.7b
(exp.f64 re)
19.1b
(cos.f64 im)
39.4b
1
Compiler

Compiled 43 to 33 computations (23.3% saved)

regimes22.0ms (0.4%)

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

5 calls:

6.0ms
im
5.0ms
(cos.f64 im)
5.0ms
re
3.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 52 to 32 computations (38.5% saved)

regimes46.0ms (0.9%)

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

4 calls:

22.0ms
im
12.0ms
re
8.0ms
(cos.f64 im)
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.3b2re
7.2b5im
0.3b2(exp.f64 re)
8.2b2(cos.f64 im)
Compiler

Compiled 40 to 26 computations (35% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9995114881372362
0.999999973943205
Compiler

Compiled 12 to 9 computations (25% saved)

regimes37.0ms (0.7%)

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

4 calls:

16.0ms
im
10.0ms
re
6.0ms
(cos.f64 im)
4.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.7b2re
7.4b5im
0.7b2(exp.f64 re)
8.4b2(cos.f64 im)
Compiler

Compiled 24 to 17 computations (29.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9995114881372362
0.999999973943205
Compiler

Compiled 12 to 9 computations (25% saved)

regimes11.0ms (0.2%)

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

3 calls:

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

Compiled 18 to 13 computations (27.8% saved)

regimes7.0ms (0.1%)

Accuracy

Total -0.2b remaining (-0.6%)

Threshold costs -0.2b (-0.6%)

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

2 calls:

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

Compiled 12 to 9 computations (25% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 45 to 32 computations (28.9% saved)

soundness0.0ms (0%)

end39.0ms (0.8%)

Compiler

Compiled 35 to 17 computations (51.4% saved)

Profiling

Loading profile data...