Details

Time bar (total: 3.3s)

analyze270.0ms (8.3%)

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)

sample1.7s (51.3%)

Results
1.4s8256×body256valid
222.0ms2071×body256infinite
Bogosity

preprocess10.0ms (0.3%)

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)

simplify11.0ms (0.3%)

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

rewrite111.0ms (3.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18919
223519
349219
4101819
5225119
6465719
7765919
Stop Event
node limit
Counts
1 → 20
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 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 (30.9%)

Algorithm
egg-herbie
Rules
5876×rational.json-simplify-51
1960×rational.json-simplify-35
1706×rational.json-simplify-2
1166×rational.json-simplify-1
1110×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0601148
11201148
22881148
37061148
411071148
524391148
632191148
732751148
833051148
933311148
1033571148
1133831148
1234321148
1334581148
1434841148
1535101148
1635361148
1735621148
1835881148
1944061148
2047861148
2148181148
2248481148
2348771148
2449061148
2549351148
2649641148
2749931148
2850221148
2950511148
3050801148
3151091148
3251381148
3351671148
3451961148
3552251148
3652541148
3752831148
3853121148
3953411148
4053411148
Stop Event
node limit
Counts
68 → 24
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)
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))

eval5.0ms (0.1%)

Compiler

Compiled 264 to 107 computations (59.5% saved)

prune4.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New22224
Fresh000
Picked011
Done000
Total22325
Error
0.0b
Counts
25 → 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)
34.7b
(*.f64 x.re y.im)
Compiler

Compiled 25 to 17 computations (32% saved)

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

Compiled 25 to 17 computations (32% saved)

regimes27.0ms (0.8%)

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

regimes75.0ms (2.3%)

Accuracy

Total -48.5b remaining (-380.8%)

Threshold costs -48.5b (-380.8%)

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:

21.0ms
y.re
17.0ms
x.re
15.0ms
y.im
10.0ms
(*.f64 x.re y.im)
10.0ms
x.im
Results
ErrorSegmentsBranch
18.3b5x.re
17.6b3x.im
15.9b7y.re
16.1b5y.im
12.7b3(*.f64 x.re y.im)
Compiler

Compiled 37 to 27 computations (27% saved)

bsearch24.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
8.2338851775086e-44
2.4573988945734352e-39
9.0ms
-5.990450264662652e-71
-1.260189279363829e-71
Results
21.0ms224×body256valid
Compiler

Compiled 214 to 167 computations (22% saved)

simplify2.0ms (0.1%)

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) -503539776864909/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 1225996432692711/6129982163463555433433388108601236734474956488734408704) (*.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) -503539776864909/31082702275611665134711390509176302506278509424834232340028998555822468563283335970816) (*.f64 x.re y.im) (if (<=.f64 (*.f64 x.re y.im) 1225996432692711/6129982163463555433433388108601236734474956488734408704) (*.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.7%)

Remove

(sort x.im y.re)

(sort x.re y.im)

Compiler

Compiled 79 to 42 computations (46.8% saved)

Profiling

Loading profile data...