Details

Time bar (total: 8.1s)

analyze144.0ms (1.8%)

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
77.4%74.9%21.9%0.1%3.1%0%0%6
78.7%74.9%20.3%0.1%4.7%0%0%7
80.7%74.9%18%0.1%7%0%0%8
81.7%74.9%16.8%0.1%8.2%0%0%9
82.9%74.9%15.4%0.1%9.6%0%0%10
83.6%74.9%14.7%0.1%10.2%0%0%11
84.3%74.9%14%0.1%11%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample4.1s (50.2%)

Results
1.7s6152×body256valid
1.1s1400×body1024valid
792.0ms700×body512valid
294.0ms690×body1024infinite
75.0ms364×body512infinite
62.0ms514×body256infinite
3.0msbody2048valid
Bogosity

preprocess164.0ms (2%)

Algorithm
egg-herbie
Rules
1408×rational.json-simplify-46
1126×rational.json-simplify-1
1004×rational.json-simplify-2
1004×rational.json-simplify-49
894×rational.json-simplify-61
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
11930
22330
33030
44130
55730
610330
727430
897230
9189430
10383430
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify134.0ms (1.7%)

Algorithm
egg-herbie
Rules
2150×rational.json-simplify-1
1522×rational.json-simplify-35
1458×rational.json-simplify-26
1008×rational.json-simplify-51
918×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11315
21515
31915
42515
53415
66115
715215
854815
9154715
10259615
11337415
12561715
13625215
14726315
15746715
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
Outputs
(*.f64 (exp.f64 re) (sin.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) (sin.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite90.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1574×rational.json-1
1574×rational.json-2
1574×rational.json-3
1570×rational.json-4
1048×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
15515
213315
328515
454015
5122015
6343515
7685515
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)))))

simplify192.0ms (2.4%)

Algorithm
egg-herbie
Rules
2580×rational.json-simplify-2
1358×rational.json-simplify-53
1282×rational.json-simplify-35
994×rational.json-simplify-48
968×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
077784
1181734
2342704
3714694
42075694
53613694
64286694
74475694
84894694
95775694
106216694
117143694
Stop Event
node limit
Counts
36 → 40
Calls
Call 1
Inputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))
(-.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(/.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)
(pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
Outputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) 1/2))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) 1/2)) (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120)) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/5040 (pow.f64 im 7))) (+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (exp.f64 re))
(-.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)
(*.f64 (sin.f64 im) (exp.f64 re))
(pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (exp.f64 re))

eval10.0ms (0.1%)

Compiler

Compiled 617 to 354 computations (42.6% saved)

prune100.0ms (1.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New37340
Fresh000
Picked011
Done000
Total37441
Error
0.0b
Counts
41 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
24.7b
(*.f64 (exp.f64 re) im)
21.9b
(sin.f64 im)
Compiler

Compiled 26 to 17 computations (34.6% saved)

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 4 computations (60% saved)

series201.0ms (2.5%)

Counts
1 → 4
Calls

6 calls:

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

rewrite177.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1940×rational.json-1
1218×rational.json-simplify-35
1176×exponential.json-3
1176×rational.json-2
1176×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14511
210211
321711
437411
580511
6190811
7328211
8428911
9561411
10642511
11779711
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (exp.f64 (neg.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 im 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) im) 1)))))

simplify127.0ms (1.6%)

Algorithm
egg-herbie
Rules
1710×rational.json-simplify-38
1464×rational.json-simplify-35
1410×rational.json-simplify-2
884×rational.json-simplify-1
764×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061277
1158277
2305265
3646259
42181259
54714259
66008259
76942259
Stop Event
node limit
Counts
19 → 29
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
(+.f64 (*.f64 (exp.f64 re) im) 0)
(+.f64 0 (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))
(-.f64 (*.f64 (exp.f64 re) im) 0)
(/.f64 im (exp.f64 (neg.f64 re)))
(/.f64 (*.f64 (exp.f64 re) im) 1)
(/.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 8)) 8)
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)
(pow.f64 (*.f64 (exp.f64 re) im) 1)
Outputs
im
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 im re) (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))))
(+.f64 (+.f64 im (*.f64 im re)) (*.f64 (pow.f64 re 2) (*.f64 im 1/2)))
(+.f64 im (*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
(+.f64 (*.f64 im re) (+.f64 (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))) (*.f64 1/6 (*.f64 im (pow.f64 re 3)))))
(+.f64 (+.f64 im (*.f64 (pow.f64 re 2) (*.f64 im 1/2))) (+.f64 (*.f64 im re) (*.f64 im (*.f64 1/6 (pow.f64 re 3)))))
(+.f64 (+.f64 im (*.f64 (pow.f64 re 2) (*.f64 im 1/2))) (*.f64 im (+.f64 re (*.f64 1/6 (pow.f64 re 3)))))
(+.f64 im (*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 im (*.f64 im (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))))))
(+.f64 (*.f64 (exp.f64 re) im) 0)
(*.f64 im (exp.f64 re))
(+.f64 0 (*.f64 (exp.f64 re) im))
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))
(*.f64 im (exp.f64 re))
(-.f64 (*.f64 (exp.f64 re) im) 0)
(*.f64 im (exp.f64 re))
(/.f64 im (exp.f64 (neg.f64 re)))
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) im) 1)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 8)) 8)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)
(*.f64 im (exp.f64 re))
(pow.f64 (*.f64 (exp.f64 re) im) 1)
(*.f64 im (exp.f64 re))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
0.2b
(*.f64 (sin.f64 im) re)
Compiler

Compiled 17 to 5 computations (70.6% saved)

series2.0ms (0%)

Counts
2 → 11
Calls

12 calls:

TimeVariablePointExpression
0.0ms
im
@0
(*.f64 (sin.f64 im) re)
0.0ms
re
@inf
(*.f64 (sin.f64 im) re)
0.0ms
re
@0
(*.f64 (sin.f64 im) re)
0.0ms
re
@-inf
(*.f64 (sin.f64 im) re)
0.0ms
im
@inf
(*.f64 (sin.f64 im) re)

rewrite201.0ms (2.5%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0832
15628
213428
329128
458828
5138128
6345628
7638328
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) re) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))))

simplify454.0ms (5.6%)

Algorithm
egg-herbie
Rules
2246×rational.json-simplify-2
2132×rational.json-simplify-35
1348×rational.json-simplify-48
940×rational.json-simplify-53
886×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01651387
13881341
28091329
318791329
433901329
543391329
650761329
759301329
871351329
976501329
Stop Event
node limit
Counts
67 → 95
Calls
Call 1
Inputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 (sin.f64 im) re)
(+.f64 (*.f64 (sin.f64 im) re) 0)
(+.f64 0 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))
(-.f64 (*.f64 (sin.f64 im) re) 0)
(/.f64 (*.f64 (sin.f64 im) re) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)
(/.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)
(pow.f64 (*.f64 (sin.f64 im) re) 1)
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))
(*.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))
(*.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))
(*.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))
(*.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))
(*.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)
(*.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))
(*.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 2))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
Outputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(+.f64 (*.f64 re (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 re (*.f64 1/120 (pow.f64 im 5))))
(*.f64 re (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 re (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(+.f64 (+.f64 (*.f64 re (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 5) 1/120)))) (*.f64 re (*.f64 (pow.f64 im 7) -1/5040)))
(+.f64 (*.f64 re (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 re (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 re (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 re 1))
(*.f64 im (-.f64 re -1))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)))
(+.f64 (*.f64 im (-.f64 re -1)) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 im (-.f64 re -1)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 im (-.f64 re -1)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) re) 0)
(*.f64 re (sin.f64 im))
(+.f64 0 (*.f64 (sin.f64 im) re))
(*.f64 re (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))
(*.f64 re (sin.f64 im))
(-.f64 (*.f64 (sin.f64 im) re) 0)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) re) 1)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)
(*.f64 re (sin.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)
(*.f64 re (sin.f64 im))
(pow.f64 (*.f64 (sin.f64 im) re) 1)
(*.f64 re (sin.f64 im))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) 1/2)))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) 1/2)))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))
(*.f64 -2 (*.f64 (+.f64 re 1) (/.f64 (neg.f64 (sin.f64 im)) 2)))
(*.f64 (-.f64 re -1) (*.f64 -2 (/.f64 (sin.f64 im) -2)))
(*.f64 (+.f64 re 1) (*.f64 -2 (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))
(*.f64 -2 (*.f64 (+.f64 re 1) (/.f64 (neg.f64 (sin.f64 im)) 2)))
(*.f64 (-.f64 re -1) (*.f64 -2 (/.f64 (sin.f64 im) -2)))
(*.f64 (+.f64 re 1) (*.f64 -2 (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) -1/2)))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))

eval31.0ms (0.4%)

Compiler

Compiled 1639 to 1077 computations (34.3% saved)

prune135.0ms (1.7%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1213124
Fresh000
Picked011
Done033
Total1217128
Error
0.0b
Counts
128 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
21.6b
(*.f64 (+.f64 re 1) (sin.f64 im))
46.4b
(*.f64 (+.f64 1 re) im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
24.7b
(*.f64 (exp.f64 re) im)
21.9b
(sin.f64 im)
46.1b
im
Compiler

Compiled 44 to 30 computations (31.8% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite366.0ms (4.5%)

Algorithm
batch-egg-rewrite
Rules
1672×rational.json-simplify-1
1502×rational.json-simplify-35
1372×exponential.json-3
1372×rational.json-1
1372×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
213613
324113
444113
593813
6237913
7416013
8523313
9676013
10759513
11759513
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 1 re) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 1 re) im) 1)))))

simplify582.0ms (7.2%)

Algorithm
egg-herbie
Rules
2802×rational.json-simplify-2
2538×rational.json-simplify-35
1518×rational.json-simplify-53
1196×rational.json-simplify-1
1042×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047314
1126314
2236314
3530314
41886314
53651314
64158314
74341314
84528314
94718314
104890314
115888314
126496314
136770314
146770314
156824314
166849314
176932314
186977314
197153314
207297314
217429314
Stop Event
node limit
Counts
26 → 21
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 (*.f64 (+.f64 1 re) im) 0)
(+.f64 0 (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(-.f64 (*.f64 (+.f64 1 re) im) 0)
(/.f64 (*.f64 (+.f64 1 re) im) 1)
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)
(pow.f64 (*.f64 (+.f64 1 re) im) 1)
Outputs
im
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 (+.f64 1 re) im) 0)
(*.f64 im (+.f64 re 1))
(+.f64 0 (*.f64 (+.f64 1 re) im))
(*.f64 im (+.f64 re 1))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(*.f64 im (+.f64 re 1))
(-.f64 (*.f64 (+.f64 1 re) im) 0)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) im) 1)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)
(*.f64 im (+.f64 re 1))
(pow.f64 (*.f64 (+.f64 1 re) im) 1)
(*.f64 im (+.f64 re 1))

localize14.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite81.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16917
215517
330917
460217
5137917
6334417
7608217
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 (+.f64 re 1) (sin.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 re 1) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)))))

simplify201.0ms (2.5%)

Algorithm
egg-herbie
Rules
2118×rational.json-simplify-2
1826×rational.json-simplify-35
1252×rational.json-simplify-48
974×rational.json-simplify-1
752×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
065788
1156752
2300728
3565716
42061716
54190716
65059716
75546716
86199716
97199716
107721716
Stop Event
node limit
Counts
36 → 33
Calls
Call 1
Inputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)
(+.f64 0 (*.f64 (+.f64 re 1) (sin.f64 im)))
(+.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)))
(-.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)
(/.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)))) 64)
(pow.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)
Outputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 re 1))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (+.f64 re 1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (+.f64 re 1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (+.f64 re 1) (*.f64 1/120 (pow.f64 im 5))))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 re 1) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(+.f64 (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 5) 1/120)) (+.f64 (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (+.f64 re 1) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.f64 (*.f64 (+.f64 re 1) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (+.f64 (*.f64 (+.f64 re 1) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (pow.f64 im 3) (*.f64 -1/6 (+.f64 re 1)))))
(+.f64 (*.f64 (+.f64 re 1) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (+.f64 re 1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 re 1) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 re 1) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 0 (*.f64 (+.f64 re 1) (sin.f64 im)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(-.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8) 8)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 8)))) 64)
(*.f64 (sin.f64 im) (+.f64 re 1))
(pow.f64 (*.f64 (+.f64 re 1) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))

eval14.0ms (0.2%)

Compiler

Compiled 676 to 488 computations (27.8% saved)

prune10.0ms (0.1%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New52254
Fresh011
Picked011
Done055
Total52961
Error
0.0b
Counts
61 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
21.6b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
21.6b
(*.f64 (+.f64 re 1) (sin.f64 im))
46.4b
(*.f64 (+.f64 1 re) im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
24.7b
(*.f64 (exp.f64 re) im)
61.6b
(*.f64 re im)
21.9b
(sin.f64 im)
46.1b
im
Compiler

Compiled 61 to 42 computations (31.1% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 19 computations (42.4% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite87.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
16936
215036
330536
463336
5153736
6368936
7641836
Stop Event
node limit
Counts
2 → 33
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2)))
(+.f64 re (+.f64 re 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 2 (+.f64 re re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 2 (+.f64 re re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 2 (+.f64 re re)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (+.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 2 (+.f64 re re)) 1)))))

simplify210.0ms (2.6%)

Algorithm
egg-herbie
Rules
1764×rational.json-simplify-2
1508×rational.json-simplify-35
1502×rational.json-simplify-53
952×rational.json-simplify-48
930×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01011409
12231355
25941319
319041301
438831301
543871301
646141301
748101301
853021301
962011301
1079851301
Stop Event
node limit
Counts
69 → 61
Calls
Call 1
Inputs
(*.f64 (+.f64 2 (*.f64 2 re)) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im)))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 2 (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
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 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 2 (+.f64 re re)))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)
(-.f64 (+.f64 2 (+.f64 re re)) 0)
(*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(*.f64 (+.f64 2 (+.f64 re re)) 1)
(*.f64 1 (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 1/2)
(*.f64 4 (*.f64 (+.f64 2 (+.f64 re re)) 1/4))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 2 (+.f64 re re))))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 1/8)
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/4) 4)
(/.f64 (+.f64 2 (+.f64 re re)) 1)
(/.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 2)
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(pow.f64 (+.f64 2 (+.f64 re re)) 1)
Outputs
(*.f64 (+.f64 2 (*.f64 2 re)) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im)))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/120 (pow.f64 im 5))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7))))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 7) -1/5040))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(*.f64 2 (*.f64 re (sin.f64 im)))
(*.f64 re (*.f64 2 (sin.f64 im)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(*.f64 2 (*.f64 re (sin.f64 im)))
(*.f64 re (*.f64 2 (sin.f64 im)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.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 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 1/2)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 0)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 2 (+.f64 re re)))) 2)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 2 (+.f64 re re)) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8) 8)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 8)))) 64)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 1)
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (+.f64 2 (+.f64 re re)) 0)
(+.f64 2 (+.f64 re re))
(*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 1/2))
(+.f64 2 (+.f64 re re))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(+.f64 2 (+.f64 re re))
(*.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))
(*.f64 1 (+.f64 2 (+.f64 re re)))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 1/2)
(+.f64 2 (+.f64 re re))
(*.f64 4 (*.f64 (+.f64 2 (+.f64 re re)) 1/4))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 1/4)
(+.f64 2 (+.f64 re re))
(*.f64 1/2 (*.f64 2 (+.f64 2 (+.f64 re re))))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 1/8)
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/2) 2)
(+.f64 2 (+.f64 re re))
(*.f64 1/4 (*.f64 (+.f64 2 (+.f64 re re)) 4))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 2 (+.f64 re re)) 1/4) 4)
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 2 (+.f64 2 (+.f64 re re))) 2)
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 4) 4)
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 (+.f64 2 (+.f64 re re)) 8) 8)
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)) 16)
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) 32)
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 2 (+.f64 re re)) 8)))) 64)
(+.f64 2 (+.f64 re re))
(pow.f64 (+.f64 2 (+.f64 re re)) 1)
(+.f64 2 (+.f64 re re))

eval18.0ms (0.2%)

Compiler

Compiled 1036 to 740 computations (28.6% saved)

prune27.0ms (0.3%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New61061
Fresh011
Picked011
Done077
Total61970
Error
0.0b
Counts
70 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
21.6b
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
21.6b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
21.6b
(*.f64 (+.f64 re 1) (sin.f64 im))
46.4b
(*.f64 (+.f64 1 re) im)
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
24.7b
(*.f64 (exp.f64 re) im)
61.6b
(*.f64 re im)
21.9b
(sin.f64 im)
46.1b
im
Compiler

Compiled 61 to 42 computations (31.1% saved)

regimes33.0ms (0.4%)

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

5 calls:

9.0ms
re
9.0ms
im
6.0ms
(sin.f64 im)
4.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (exp.f64 re) (sin.f64 im))
0.0b1(exp.f64 re)
0.0b1(sin.f64 im)
Compiler

Compiled 66 to 36 computations (45.5% saved)

regimes60.0ms (0.7%)

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

4 calls:

23.0ms
(sin.f64 im)
23.0ms
im
9.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b2re
11.3b4im
0.0b2(exp.f64 re)
12.8b3(sin.f64 im)
Compiler

Compiled 47 to 28 computations (40.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999722260736387
0.9999999022147752
Compiler

Compiled 12 to 9 computations (25% saved)

regimes48.0ms (0.6%)

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

4 calls:

19.0ms
im
16.0ms
(sin.f64 im)
8.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.6b2re
11.7b4im
0.6b2(exp.f64 re)
13.2b3(sin.f64 im)
Compiler

Compiled 31 to 19 computations (38.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999722260736387
0.9999999022147752
Compiler

Compiled 12 to 9 computations (25% saved)

regimes19.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(sin.f64 im)
Outputs
(sin.f64 im)
Calls

3 calls:

9.0ms
(sin.f64 im)
5.0ms
re
4.0ms
im
Results
ErrorSegmentsBranch
21.9b1re
21.9b1im
21.9b1(sin.f64 im)
Compiler

Compiled 23 to 14 computations (39.1% saved)

regimes7.0ms (0.1%)

Accuracy

Total -16.1b remaining (-34.9%)

Threshold costs -16.1b (-34.9%)

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

2 calls:

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

Compiled 17 to 10 computations (41.2% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 44 to 29 computations (34.1% saved)

soundness0.0ms (0%)

end28.0ms (0.3%)

Compiler

Compiled 36 to 15 computations (58.3% saved)

Profiling

Loading profile data...