Details

Time bar (total: 4.3s)

analyze282.0ms (6.6%)

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

Results
1.9s8256×body256valid
755.0ms2050×body256infinite
Bogosity

preprocess5.0ms (0.1%)

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)

prune5.0ms (0.1%)

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

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
x.im
@inf
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))

rewrite88.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1344×rational.json-simplify-35
1218×bool.json-1
1218×bool.json-2
1188×exponential.json-3
1188×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
19819
226019
353719
4110319
5241319
6499519
Stop Event
node limit
Counts
1 → 21
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 2 (+.f64 (*.f64 y.re (*.f64 x.im 1/2)) (*.f64 y.im (*.f64 x.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)) 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 1/2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x.im (+.f64 y.re y.re)) (*.f64 x.re (+.f64 y.im y.im))))))) (#(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)) 4) 4)))) (#(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 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) (*.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 pow.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)))))))

simplify1.0s (24.4%)

Algorithm
egg-herbie
Rules
6102×rational.json-simplify-51
1970×rational.json-simplify-35
1868×rational.json-simplify-2
1156×rational.json-simplify-1
1142×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611167
11211167
23021167
38321167
413331167
528111167
636051167
736611167
836911167
937171167
1037431167
1137691167
1238181167
1338441167
1438701167
1538961167
1639221167
1739481167
1839741167
1947831167
2052341167
2153251167
2253551167
2353841167
2454131167
2554421167
2654711167
2755001167
2855291167
2955581167
3055871167
3156161167
3256451167
3356741167
3457031167
3557321167
3657611167
3757901167
3858191167
3958481167
4058481167
Stop Event
node limit
Counts
69 → 25
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 2 (+.f64 (*.f64 y.re (*.f64 x.im 1/2)) (*.f64 y.im (*.f64 x.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)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 2))
(*.f64 1/2 (+.f64 (*.f64 x.im (+.f64 y.re y.re)) (*.f64 x.re (+.f64 y.im y.im))))
(*.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)) 4) 4)
(/.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 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8)))) 64)
(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 2 (+.f64 (*.f64 y.re (*.f64 x.im 1/2)) (*.f64 y.im (*.f64 x.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)) 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 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 1/2 (+.f64 (*.f64 x.im (+.f64 y.re y.re)) (*.f64 x.re (+.f64 y.im y.im))))
(+.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)) 4) 4)
(+.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 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) 8))) (*.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))
(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))

eval6.0ms (0.1%)

Compiler

Compiled 273 to 109 computations (60.1% saved)

prune5.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New23225
Fresh000
Picked011
Done000
Total23326
Error
0.0b
Counts
26 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
27.6b
(*.f64 y.re x.im)
33.3b
(*.f64 x.re y.im)
Compiler

Compiled 25 to 17 computations (32% saved)

localize3.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize3.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))
27.6b
(*.f64 y.re x.im)
33.3b
(*.f64 x.re y.im)
Compiler

Compiled 25 to 17 computations (32% saved)

regimes27.0ms (0.6%)

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:

5.0ms
y.re
4.0ms
(*.f64 x.im y.re)
3.0ms
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re))
3.0ms
y.im
3.0ms
(*.f64 x.re y.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)

regimes80.0ms (1.9%)

Accuracy

Total -46.9b remaining (-358.1%)

Threshold costs -46.9b (-358.1%)

Counts
2 → 5
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)
(*.f64 y.re x.im)
(*.f64 x.re y.im)
Calls

5 calls:

18.0ms
y.im
18.0ms
y.re
15.0ms
x.re
15.0ms
(*.f64 x.re y.im)
13.0ms
x.im
Results
ErrorSegmentsBranch
15.5b5x.re
15.0b5x.im
13.9b7y.re
17.1b7y.im
13.1b5(*.f64 x.re y.im)
Compiler

Compiled 37 to 27 computations (27% saved)

bsearch48.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
8.0ms
6.047218847400366
15.309557577102263
12.0ms
6.1084486811024175e-84
2.5908173190672333e-80
14.0ms
1.402405635437442e-171
1.9423814938987708e-165
13.0ms
-8.269333889401802e-98
-1.0615770922661202e-102
Results
42.0ms496×body256valid
Compiler

Compiled 452 to 354 computations (21.7% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025121
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) -4232637384378313/76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293568) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 7884079580873887/4149515568880992958512407863691161151012446232242436899995657329690652811412908146399707048947103794288197886611300789182395151075411775307886874834113963687061181803401509523685376) (*.f64 y.re x.im) (if (<=.f64 (*.f64 x.re y.im) 8475596558534171/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 6980579422424269/1125899906842624) (*.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) -4232637384378313/76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293568) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 7884079580873887/4149515568880992958512407863691161151012446232242436899995657329690652811412908146399707048947103794288197886611300789182395151075411775307886874834113963687061181803401509523685376) (*.f64 y.re x.im) (if (<=.f64 (*.f64 x.re y.im) 8475596558534171/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 6980579422424269/1125899906842624) (*.f64 y.re x.im) (*.f64 x.re y.im)))))
(*.f64 x.re y.im)
Compiler

Compiled 61 to 30 computations (50.8% saved)

soundness0.0ms (0%)

end25.0ms (0.6%)

Remove

(sort x.im y.re)

(sort x.re y.im)

Compiler

Compiled 97 to 48 computations (50.5% saved)

Profiling

Loading profile data...