Details

Time bar (total: 8.7s)

analyze50.0ms (0.6%)

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

Results
989.0ms6201×body256valid
611.0ms1367×body1024valid
344.0ms688×body512valid
240.0ms703×body1024infinite
132.0ms347×body512infinite
49.0ms458×body256infinite
Bogosity

preprocess102.0ms (1.2%)

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)

simplify486.0ms (5.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.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%)

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

rewrite82.0ms (0.9%)

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

simplify247.0ms (2.8%)

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)

eval16.0ms (0.2%)

Compiler

Compiled 917 to 540 computations (41.1% saved)

prune13.0ms (0.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New64569
Fresh000
Picked011
Done000
Total64670
Error
0.0b
Counts
70 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
20.8b
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
17.3b
(exp.f64 re)
21.0b
(cos.f64 im)
Compiler

Compiled 101 to 75 computations (25.7% saved)

localize2.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 im)
Compiler

Compiled 5 to 3 computations (40% saved)

localize7.0ms (0.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)

series8.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite82.0ms (0.9%)

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

simplify488.0ms (5.6%)

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

localize18.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 45 to 33 computations (26.7% saved)

series2.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite93.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1642×bool.json-1
1642×bool.json-2
1592×rational.json-1
1592×rational.json-2
1070×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01460
114760
239060
377860
4165560
5355160
6643660
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))) (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.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 1 (*.f64 1/2 (pow.f64 re 2))))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 2 (pow.f64 re 2)) (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 re re) (+.f64 2 (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (/.f64 (+.f64 2 (pow.f64 re 2)) 4) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 re 1/2) (/.f64 (+.f64 2 (pow.f64 re 2)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))))

simplify249.0ms (2.9%)

Algorithm
egg-herbie
Rules
1920×rational.json-simplify-51
1718×rational.json-simplify-35
1706×rational.json-simplify-2
1396×rational.json-simplify-53
906×rational.json-simplify-1
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
01092174
12472154
25742070
318352012
432282012
535602012
637822012
739952012
841822012
943671988
1068341988
1175291988
1277411988
Stop Event
node limit
Counts
68 → 76
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(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/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.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 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.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 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))) (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 1)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2))))) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (cos.f64 im) 4)) 4)
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8))) 32)
(-.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 0)
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)
(*.f64 1 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 1/2 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))))
(*.f64 1/2 (+.f64 (+.f64 2 (pow.f64 re 2)) (+.f64 re re)))
(*.f64 1/2 (+.f64 (+.f64 re re) (+.f64 2 (pow.f64 re 2))))
(*.f64 2 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 2 (+.f64 (/.f64 (+.f64 2 (pow.f64 re 2)) 4) (*.f64 re 1/2)))
(*.f64 2 (+.f64 (*.f64 re 1/2) (/.f64 (+.f64 2 (pow.f64 re 2)) 4)))
(*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)
(*.f64 4 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))
(*.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 1/2)
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 1/4)
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 2)
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))
(*.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)
(/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)
(/.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8))) 32)
Outputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (+.f64 re 1)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 re 1) (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))))
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (+.f64 re (*.f64 1/24 (*.f64 (pow.f64 im 4) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (+.f64 (+.f64 1 (+.f64 re (*.f64 1/24 (*.f64 (pow.f64 im 4) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (+.f64 re (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))) (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2)))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))))
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 6))) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 2))) (+.f64 re (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) (pow.f64 im 4))))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (+.f64 re (*.f64 1/24 (*.f64 (pow.f64 im 4) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (*.f64 -1/720 (*.f64 (pow.f64 im 6) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))))
(+.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (+.f64 (+.f64 1 (+.f64 re (*.f64 1/24 (*.f64 (pow.f64 im 4) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (*.f64 1/2 (pow.f64 re 2)))) (*.f64 -1/720 (*.f64 (pow.f64 im 6) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 re (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))) (*.f64 -1/720 (*.f64 (pow.f64 im 6) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 -1/2 (pow.f64 im 2))))) (+.f64 re 1)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 re 1) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)) (+.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 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (+.f64 (*.f64 -1/720 (pow.f64 im 6)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 im 2))))))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(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) (+.f64 re 1))
(*.f64 (+.f64 re 1) (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 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.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 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (cos.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 re (cos.f64 im)) (*.f64 1/2 (*.f64 (pow.f64 re 2) (cos.f64 im))))
(*.f64 (cos.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.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 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (cos.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(+.f64 (*.f64 re (cos.f64 im)) (*.f64 1/2 (*.f64 (pow.f64 re 2) (cos.f64 im))))
(*.f64 (cos.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.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 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 0 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))) (*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 0)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 1)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2))))) 2)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (cos.f64 im) 4)) 4)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8) 8)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) 16)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8)) (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 8))) 32)
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(-.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 0)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/2 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/2 (+.f64 (+.f64 2 (pow.f64 re 2)) (+.f64 re re)))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/2 (+.f64 (+.f64 re re) (+.f64 2 (pow.f64 re 2))))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 2 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 2 (+.f64 (/.f64 (+.f64 2 (pow.f64 re 2)) 4) (*.f64 re 1/2)))
(*.f64 2 (+.f64 (/.f64 (+.f64 2 (pow.f64 re 2)) 4) (*.f64 1/2 re)))
(*.f64 2 (+.f64 (*.f64 re 1/2) (/.f64 (+.f64 2 (pow.f64 re 2)) 4)))
(*.f64 2 (+.f64 (/.f64 (+.f64 2 (pow.f64 re 2)) 4) (*.f64 1/2 re)))
(*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 4 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 1/2)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 1/4)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))) 2)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(*.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 1)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (+.f64 re (+.f64 re (+.f64 2 (pow.f64 re 2)))) 2)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 4) 4)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8) 8)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) 16)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))) 8))) 32)
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 48 to 29 computations (39.6% saved)

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite101.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
2002×bool.json-1
1218×bool.json-2
1196×rational.json-simplify-2
1178×rational.json-1
1178×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01568
115558
240458
383258
4174658
5407958
6790858
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2))
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 re 2) (cos.f64 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 re 2) (*.f64 2 (cos.f64 im))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (cos.f64 im)) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (cos.f64 im)) (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (cos.f64 im)) (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) 4) (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (cos.f64 im) 8) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (cos.f64 im) 4)) (*.f64 1/8 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 (cos.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 2 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) (cos.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4) (*.f64 2 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4) (*.f64 (cos.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2) (*.f64 2 (cos.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))) (*.f64 (cos.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))))))

simplify438.0ms (5.1%)

Algorithm
egg-herbie
Rules
2356×rational.json-simplify-2
2046×rational.json-simplify-35
1814×rational.json-simplify-1
1026×rational.json-simplify-51
926×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01613845
13833259
28043235
319623219
439763219
546123219
648193219
749803219
851263219
952983219
1066433219
1173163219
1276073219
1377743219
1479083219
1579103219
1679103219
1779103219
Stop Event
node limit
Counts
97 → 101
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 2) (pow.f64 im 4))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 2) (pow.f64 im 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 2) (pow.f64 im 4))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/48 (pow.f64 re 2)) (*.f64 1/24 (+.f64 1 re))) (pow.f64 im 4)) re))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/48 (pow.f64 re 2)) (*.f64 1/24 (+.f64 1 re))) (pow.f64 im 4)) (+.f64 (*.f64 (+.f64 (*.f64 -1/720 (+.f64 1 re)) (*.f64 -1/1440 (pow.f64 re 2))) (pow.f64 im 6)) re)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(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/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.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 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.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 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)
(+.f64 0 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)))
(-.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 1)
(/.f64 (*.f64 (pow.f64 re 2) (cos.f64 im)) 2)
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 2 (cos.f64 im))) 4)
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)))) 32)
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 0)
(*.f64 2 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))
(*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(*.f64 1/2 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(*.f64 1/2 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))))
(*.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(*.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))))
(*.f64 1 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)
(*.f64 (*.f64 2 (cos.f64 im)) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(*.f64 (*.f64 2 (cos.f64 im)) (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4))
(*.f64 (*.f64 2 (cos.f64 im)) (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2))
(*.f64 4 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)))
(*.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))
(*.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 1/2)
(*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (cos.f64 im))
(*.f64 (*.f64 (cos.f64 im) 4) (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4))
(*.f64 8 (*.f64 (/.f64 (cos.f64 im) 8) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(*.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 1/4)
(*.f64 (*.f64 2 (*.f64 (cos.f64 im) 4)) (*.f64 1/8 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(*.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)
(*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 (cos.f64 im) 1/2))
(*.f64 1/4 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 2 (cos.f64 im)))
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) (cos.f64 im))
(*.f64 (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4) (*.f64 2 (cos.f64 im)))
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)) 4)
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4) (*.f64 (cos.f64 im) 4))
(*.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2) (*.f64 2 (cos.f64 im)))
(*.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))) (*.f64 (cos.f64 im) 1/2))
(*.f64 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))) 1/2)
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)))) 32)
Outputs
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) -1/4)))
(*.f64 (pow.f64 re 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 2) (pow.f64 im 4))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 4) 1/48)) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) -1/4))))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 im 2)))) (*.f64 (pow.f64 re 2) (*.f64 1/48 (pow.f64 im 4))))
(*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/48 (pow.f64 im 4)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 im 2)))))
(*.f64 (pow.f64 re 2) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 im 4)) (*.f64 -1/4 (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 2) (pow.f64 im 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 2) (pow.f64 im 4))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 6) -1/1440)) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 4) 1/48)) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) -1/4)))))
(+.f64 (+.f64 (*.f64 (pow.f64 re 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 im 2)))) (*.f64 (pow.f64 re 2) (*.f64 1/48 (pow.f64 im 4)))) (*.f64 (pow.f64 re 2) (*.f64 -1/1440 (pow.f64 im 6))))
(+.f64 (*.f64 (pow.f64 re 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 im 2)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/48 (pow.f64 im 4)) (*.f64 -1/1440 (pow.f64 im 6)))))
(*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/1440 (pow.f64 im 6)) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 im 4)) (*.f64 -1/4 (pow.f64 im 2))))))
(*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/48 (pow.f64 im 4)) (+.f64 1/2 (+.f64 (*.f64 -1/4 (pow.f64 im 2)) (*.f64 -1/1440 (pow.f64 im 6))))))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) re)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (+.f64 re 1)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) 1)))
(+.f64 re (+.f64 (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4)))) (*.f64 1/2 (pow.f64 re 2))))
(+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/48 (pow.f64 re 2)) (*.f64 1/24 (+.f64 1 re))) (pow.f64 im 4)) re))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (+.f64 re (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 re (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24)))))))
(+.f64 1 (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 re (+.f64 (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24)))) (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 1 (+.f64 (+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4)))) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (+.f64 (*.f64 -1/2 (+.f64 1 re)) (*.f64 -1/4 (pow.f64 re 2))) (pow.f64 im 2)) (+.f64 (*.f64 (+.f64 (*.f64 1/48 (pow.f64 re 2)) (*.f64 1/24 (+.f64 1 re))) (pow.f64 im 4)) (+.f64 (*.f64 (+.f64 (*.f64 -1/720 (+.f64 1 re)) (*.f64 -1/1440 (pow.f64 re 2))) (pow.f64 im 6)) re)))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (+.f64 re (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440))))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (+.f64 re (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440))))))))
(+.f64 (+.f64 re (+.f64 (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24)))) (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440))))) (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 (+.f64 re 1) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4)))) (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4)))) (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (+.f64 1 (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440)))))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 (+.f64 re 1) (+.f64 (*.f64 (pow.f64 im 4) (+.f64 (*.f64 (pow.f64 re 2) 1/48) (*.f64 (+.f64 re 1) 1/24))) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (+.f64 re 1) -1/2) (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 im 6) (+.f64 (*.f64 (+.f64 re 1) -1/720) (*.f64 (pow.f64 re 2) -1/1440)))))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (+.f64 1 re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 (cos.f64 im) (+.f64 1 re)) (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(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 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(*.f64 (cos.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (cos.f64 im) (+.f64 re (/.f64 (pow.f64 re 2) 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) re))
(*.f64 (cos.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (cos.f64 im) (+.f64 re (/.f64 (pow.f64 re 2) 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (+.f64 (*.f64 (cos.f64 im) re) (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(+.f64 0 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/4)))
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(-.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 0)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)) 1)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (*.f64 (pow.f64 re 2) (cos.f64 im)) 2)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 2 (cos.f64 im))) 4)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)) 8)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) 16)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4))) (*.f64 2 (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 4)))) 32)
(*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2)))
(*.f64 (cos.f64 im) (/.f64 (pow.f64 re 2) 2))
(-.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 0)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 2 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (cos.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/2 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/2 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (cos.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (cos.f64 im) 1/2) (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (cos.f64 im)) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (cos.f64 im)) (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (cos.f64 im)) (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 4 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 4 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 1/2)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (cos.f64 im) 4) (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 8 (*.f64 (/.f64 (cos.f64 im) 8) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 1/4)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (*.f64 (cos.f64 im) 4)) (*.f64 1/8 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 (cos.f64 im) 1/2))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/4 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 1/2 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) (cos.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (*.f64 2 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1/4) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) (*.f64 (cos.f64 im) 1/4)) 4)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (*.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 1/4) (*.f64 (cos.f64 im) 4))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (/.f64 (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))) 2) (*.f64 2 (cos.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 2 (+.f64 re re))) (*.f64 (cos.f64 im) 1/2))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (+.f64 (*.f64 (cos.f64 im) (+.f64 2 (+.f64 re re))) (*.f64 (pow.f64 re 2) (cos.f64 im))) 1/2)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 1)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (*.f64 2 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2))))) 2)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4) 4)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)) 8)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) 16)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 (pow.f64 re 2) 1/2)))) 4)))) 32)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 im) (pow.f64 re 2))) (*.f64 (cos.f64 im) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 (/.f64 (pow.f64 re 2) 2) (+.f64 re 1)))
(*.f64 (cos.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))

eval520.0ms (6%)

Compiler

Compiled 7349 to 5375 computations (26.9% saved)

prune126.0ms (1.5%)

Pruning

10 alts after pruning (4 fresh and 6 done)

PrunedKeptTotal
New3854389
Fresh000
Picked011
Done055
Total38510395
Error
0.0b
Counts
395 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
20.8b
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
37.3b
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
37.1b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
20.8b
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
17.3b
(exp.f64 re)
21.0b
(cos.f64 im)
37.1b
1
Compiler

Compiled 85 to 65 computations (23.5% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 26 to 20 computations (23.1% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite1.4s (15.9%)

Algorithm
batch-egg-rewrite
Rules
1712×bool.json-1
1712×bool.json-2
1666×rational.json-1
1666×rational.json-2
1120×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
110725
229825
359525
4122425
5289125
6635425
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 (pow.f64 re 2) 2) (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 1/2 (+.f64 re 1)) (*.f64 (pow.f64 re 2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 1/2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 1/2 re) (/.f64 (+.f64 (pow.f64 re 2) 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 (+.f64 re 1) 4) (*.f64 2 (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))))

simplify317.0ms (3.7%)

Algorithm
egg-herbie
Rules
3004×rational.json-simplify-51
2554×rational.json-simplify-48
2328×rational.json-simplify-1
1422×rational.json-simplify-2
982×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067845
1128845
2215845
3445845
41288845
52122845
62844845
73499845
84053845
94394845
104436845
115452845
125774845
135800845
145826845
156079845
166275845
176359845
186422845
196470845
206514845
216554845
Stop Event
node limit
Counts
35 → 33
Calls
Call 1
Inputs
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(-.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 0)
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)
(*.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))))
(*.f64 1/2 (+.f64 (+.f64 (pow.f64 re 2) 2) (+.f64 re re)))
(*.f64 2 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))
(*.f64 2 (+.f64 (*.f64 1/2 (+.f64 re 1)) (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 1/2 (+.f64 re 1))))
(*.f64 2 (+.f64 (*.f64 1/2 re) (/.f64 (+.f64 (pow.f64 re 2) 2) 4)))
(*.f64 1 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 1/2)
(*.f64 4 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8))
(*.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 1/4)
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))))
(*.f64 1/4 (+.f64 (*.f64 (+.f64 re 1) 4) (*.f64 2 (pow.f64 re 2))))
(*.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 2)
(*.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8) 4)
(/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)
(/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 2)
(/.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 4)
(/.f64 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))) 32)
Outputs
1
(+.f64 1 re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(-.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 0)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) -1)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (+.f64 (+.f64 (pow.f64 re 2) 2) (+.f64 re re)))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 2 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 2 (+.f64 (*.f64 1/2 (+.f64 re 1)) (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 2 (+.f64 (*.f64 1/2 (+.f64 1 re)) (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 1/2 (+.f64 re 1))))
(*.f64 2 (+.f64 (*.f64 1/2 (+.f64 1 re)) (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 2 (+.f64 (*.f64 1/2 re) (/.f64 (+.f64 (pow.f64 re 2) 2) 4)))
(*.f64 2 (+.f64 (*.f64 re 1/2) (/.f64 (+.f64 2 (pow.f64 re 2)) 4)))
(*.f64 1 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 1/2)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 4 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 1/4)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))))
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/4 (+.f64 (*.f64 (+.f64 re 1) 4) (*.f64 2 (pow.f64 re 2))))
(*.f64 1/4 (+.f64 (*.f64 4 (+.f64 1 re)) (*.f64 2 (pow.f64 re 2))))
(*.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 2)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 8) 4)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 1)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 2)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 2 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2)))) 4)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4) 8)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) 16)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4)) (*.f64 2 (*.f64 (+.f64 (pow.f64 re 2) (+.f64 re (+.f64 re 2))) 4))) 32)
(+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))

localize136.0ms (1.6%)

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

rewrite82.0ms (0.9%)

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

simplify397.0ms (4.6%)

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

eval35.0ms (0.4%)

Compiler

Compiled 1886 to 1434 computations (24% saved)

prune73.0ms (0.8%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New1230123
Fresh011
Picked011
Done088
Total12310133
Error
0.0b
Counts
133 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
20.8b
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
37.3b
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
37.1b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
20.8b
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
17.3b
(exp.f64 re)
21.0b
(cos.f64 im)
37.1b
1
Compiler

Compiled 85 to 65 computations (23.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune4.0ms (0%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done099
Total01010
Error
0.0b
Counts
10 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (*.f64 (cos.f64 im) (+.f64 re (+.f64 re 2))) 2)
20.8b
(+.f64 (*.f64 (cos.f64 im) (+.f64 re 1)) (*.f64 (pow.f64 re 2) (*.f64 (cos.f64 im) 1/2)))
37.3b
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))
37.1b
(+.f64 1 re)
0.0b
(*.f64 (exp.f64 re) (cos.f64 im))
20.8b
(*.f64 (cos.f64 im) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (cos.f64 im) (+.f64 re 1))
17.3b
(exp.f64 re)
21.0b
(cos.f64 im)
37.1b
1
Compiler

Compiled 85 to 65 computations (23.5% saved)

regimes253.0ms (2.9%)

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

5 calls:

231.0ms
(exp.f64 re)
6.0ms
re
6.0ms
im
5.0ms
(cos.f64 im)
4.0ms
(*.f64 (exp.f64 re) (cos.f64 im))
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 88 to 56 computations (36.4% saved)

regimes117.0ms (1.3%)

Counts
7 → 2
Calls
Call 1
Inputs
1
(+.f64 1 re)
(cos.f64 im)
(exp.f64 re)
(*.f64 (cos.f64 im) (+.f64 re 1))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.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:

92.0ms
im
10.0ms
(cos.f64 im)
9.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.1b2re
9.0b5im
1.1b2(exp.f64 re)
9.8b2(cos.f64 im)
Compiler

Compiled 49 to 33 computations (32.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997881659818147
0.9999984539022314
Compiler

Compiled 12 to 9 computations (25% saved)

regimes196.0ms (2.3%)

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:

175.0ms
im
9.0ms
(cos.f64 im)
8.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.4b2re
9.2b5im
1.4b2(exp.f64 re)
10.0b2(cos.f64 im)
Compiler

Compiled 24 to 17 computations (29.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9997881659818147
0.9999984539022314
Compiler

Compiled 12 to 9 computations (25% saved)

regimes11.0ms (0.1%)

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

3 calls:

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

Compiled 18 to 13 computations (27.8% saved)

regimes6.0ms (0.1%)

Accuracy

Total -0.2b remaining (-0.5%)

Threshold costs -0.2b (-0.5%)

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

2 calls:

3.0ms
im
3.0ms
re
Results
ErrorSegmentsBranch
37.1b1re
37.1b1im
Compiler

Compiled 12 to 9 computations (25% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 40 to 28 computations (30% saved)

soundness0.0ms (0%)

end105.0ms (1.2%)

Compiler

Compiled 32 to 15 computations (53.1% saved)

Profiling

Loading profile data...