Details

Time bar (total: 5.1s)

analyze309.0ms (6.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
14.1%14%85.8%0.2%0%0%0%11
19.6%18.7%76.8%0.2%4.3%0%0%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample2.9s (57.9%)

Results
2.6s8256×body256valid
298.0ms2042×body256infinite
Bogosity

preprocess71.0ms (1.4%)

Algorithm
egg-herbie
Rules
12×rational.json-simplify-2
12×rational.json-simplify-1
swap-x.re-y.im
swap-x.im-y.re
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023133
132133
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
1
3
0
Call 2
Inputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(+.f64 (*.f64 x.im y.im) (*.f64 x.re y.re))
(+.f64 (*.f64 y.re y.im) (*.f64 x.im x.re))
(+.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re x.im) (*.f64 y.im y.re))
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
Outputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(+.f64 (*.f64 x.im y.im) (*.f64 x.re y.re))
(+.f64 (*.f64 y.im x.im) (*.f64 x.re y.re))
(+.f64 (*.f64 y.re y.im) (*.f64 x.im x.re))
(+.f64 (*.f64 x.re x.im) (*.f64 y.im y.re))
(+.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(+.f64 (*.f64 x.re x.im) (*.f64 y.im y.re))
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
(+.f64 (*.f64 y.im x.im) (*.f64 x.re y.re))
Symmetry

(sort x.re y.im)

(sort x.im y.re)

Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
11219
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
Outputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))

eval0.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% 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 (*.f64 x.re y.im) (*.f64 x.im y.re))
Compiler

Compiled 11 to 7 computations (36.4% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 7 computations (66.7% saved)

series3.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite258.0ms (5.1%)

Algorithm
batch-egg-rewrite
Rules
1826×rational.json-simplify-35
1684×rational.json-simplify-1
1376×exponential.json-3
1376×rational.json-1
1376×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
15919
212319
325719
447819
5109719
6265419
7470419
8566519
9686019
10780119
11780119
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)))))

simplify1.3s (26%)

Algorithm
egg-herbie
Rules
5524×rational.json-simplify-51
3558×rational.json-simplify-35
1382×rational.json-simplify-49
1156×rational.json-simplify-2
1128×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0581205
11261205
24241205
311791205
418901205
527831205
632711205
733451205
833931205
934251205
1034571205
1134891205
1235211205
1335531205
1435851205
1536171205
1636491205
1736811205
1837131205
1946411205
2049001205
2149931205
2250821205
2351691205
2452551205
2554681205
2654681205
2755541205
2856401205
2957261205
3058121205
3158981205
3259841205
3360701205
3461561205
3562421205
Stop Event
node limit
Counts
71 → 27
Calls
Call 1
Inputs
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(-.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 0)
(*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
(*.f64 1 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))
(*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))
(/.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
Outputs
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 x.re y.im)
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 y.re x.im)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(-.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 0)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 1 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 1/2)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 1/4)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 1/8)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/2) 2)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1/4) 4)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2) 2)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 4)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8) 8)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)) 16)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) 32)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))) 64)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))))) 128)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))))) 256)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))
(pow.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)
(+.f64 (*.f64 x.re y.im) (*.f64 y.re x.im))

eval4.0ms (0.1%)

Compiler

Compiled 297 to 122 computations (58.9% saved)

prune5.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New25227
Fresh000
Picked011
Done000
Total25328
Error
0.0b
Counts
28 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
32.7b
(*.f64 y.re x.im)
29.9b
(*.f64 x.re y.im)
Compiler

Compiled 25 to 17 computations (32% saved)

localize5.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
32.7b
(*.f64 y.re x.im)
29.9b
(*.f64 x.re y.im)
Compiler

Compiled 25 to 17 computations (32% saved)

regimes27.0ms (0.5%)

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

7 calls:

6.0ms
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
5.0ms
x.re
3.0ms
y.im
3.0ms
y.re
3.0ms
x.im
Results
ErrorSegmentsBranch
0.0b1x.re
0.0b1x.im
0.0b1y.re
0.0b1y.im
0.0b1(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
0.0b1(*.f64 x.re y.im)
0.0b1(*.f64 x.im y.re)
Compiler

Compiled 62 to 41 computations (33.9% saved)

regimes61.0ms (1.2%)

Accuracy

Total -46.5b remaining (-320.5%)

Threshold costs -46.5b (-320.5%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 x.re y.im)
(*.f64 y.re x.im)
Outputs
(*.f64 x.re y.im)
(*.f64 y.re x.im)
(*.f64 x.re y.im)
Calls

5 calls:

14.0ms
x.im
14.0ms
y.im
12.0ms
x.re
12.0ms
y.re
8.0ms
(*.f64 x.re y.im)
Results
ErrorSegmentsBranch
18.7b3x.re
18.8b5x.im
20.7b3y.re
17.2b5y.im
14.5b3(*.f64 x.re y.im)
Compiler

Compiled 37 to 27 computations (27% saved)

bsearch26.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
2.8105361314368512e-18
1.4023836764058353e-5
9.0ms
-3.68918693505794e-29
-1.1972586705756918e-29
Results
22.0ms240×body256valid
Compiler

Compiled 228 to 178 computations (21.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01977
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(if (<=.f64 (*.f64 x.re y.im) -4816960962882615/356811923176489970264571492362373784095686656) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 4259306016766851/10141204801825835211973625643008) (*.f64 y.re x.im) (*.f64 x.re y.im)))
(*.f64 x.re y.im)
Outputs
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
(if (<=.f64 (*.f64 x.re y.im) -4816960962882615/356811923176489970264571492362373784095686656) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 4259306016766851/10141204801825835211973625643008) (*.f64 y.re x.im) (*.f64 x.re y.im)))
(*.f64 x.re y.im)
Compiler

Compiled 43 to 24 computations (44.2% saved)

soundness0.0ms (0%)

end24.0ms (0.5%)

Remove

(sort x.im y.re)

(sort x.re y.im)

Compiler

Compiled 79 to 42 computations (46.8% saved)

Profiling

Loading profile data...