math.square on complex, imaginary part

Time bar (total: 981.0ms)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 10 to 6 computations (40% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

sample684.0ms (69.7%)

Results
488.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 182.0ms
ival-mult: 130.0ms (71.6% of total)
ival-add: 42.0ms (23.1% of total)
const: 7.0ms (3.9% of total)
backward-pass: 3.0ms (1.7% of total)
Bogosity

preprocess31.0ms (3.1%)

Algorithm
egg-herbie
Rules
564×fnmadd-define
450×fma-define
410×sum3-define
272×fmsub-define
264×fnmsub-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01640
14332
29530
328230
474530
5153230
6163030
056
185
2155
3205
4265
0265
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(+ (* re im) (* im re))
Outputs
(+ (* re im) (* im re))
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Call 2
Inputs
(+ (* re im) (* im re))
(+ (* (neg re) im) (* im (neg re)))
(+ (* re (neg im)) (* (neg im) re))
(neg (+ (* (neg re) im) (* im (neg re))))
(neg (+ (* re (neg im)) (* (neg im) re)))
(+ (* im re) (* re im))
Outputs
(+ (* re im) (* im re))
(* re (+ im im))
(+ (* (neg re) im) (* im (neg re)))
(* (* re im) -2)
(+ (* re (neg im)) (* (neg im) re))
(* (* re im) -2)
(neg (+ (* (neg re) im) (* im (neg re))))
(* re (+ im im))
(neg (+ (* re (neg im)) (* (neg im) re)))
(* re (+ im im))
(+ (* im re) (* re im))
(* re (+ im im))
Symmetry

(negabs re)

(negabs im)

(sort re im)

explain65.0ms (6.6%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-im
00-0-re
00-0-(+.f64 (*.f64 re im) (*.f64 im re))
00-0-(*.f64 re im)
00-0-(*.f64 im re)
Results
37.0ms512×0valid
Compiler

Compiled 45 to 17 computations (62.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 8.0ms (72.8% of total)
ival-add: 3.0ms (27.3% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify4.0ms (0.4%)

Algorithm
egg-herbie
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 im #s(literal 2 binary64))
cost-diff0
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
1911
21611
31811
01811
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* re (* im 2))
re
(* im 2)
im
2
Outputs
(* re (* im 2))
(*.f64 im (*.f64 re #s(literal 2 binary64)))
re
(* im 2)
(*.f64 im #s(literal 2 binary64))
im
2
#s(literal 2 binary64)

localize25.0ms (2.6%)

Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 re (*.f64 im #s(literal 2 binary64)))
accuracy100.0%
(*.f64 im #s(literal 2 binary64))
Results
19.0ms256×0valid
Compiler

Compiled 14 to 6 computations (57.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult: 6.0ms (97.7% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series4.0ms (0.4%)

Counts
2 → 36
Calls
Call 1
Inputs
#<alt (* re (* im 2))>
#<alt (* im 2)>
Outputs
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 (* im re))>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
#<alt (* 2 im)>
Calls

9 calls:

TimeVariablePointExpression
1.0ms
im
@0
(* re (* im 2))
1.0ms
re
@inf
(* re (* im 2))
1.0ms
re
@0
(* re (* im 2))
0.0ms
im
@inf
(* re (* im 2))
0.0ms
im
@inf
(* im 2)

rewrite23.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058
198
2168
3188
0188
Stop Event
iter limit
saturated
Counts
2 → 8
Calls
Call 1
Inputs
(* re (* im 2))
(* im 2)
Outputs
(*.f64 re (*.f64 im #s(literal 2 binary64)))
(*.f64 im (*.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 re im))
(*.f64 (*.f64 im #s(literal 2 binary64)) re)
(*.f64 (*.f64 re im) #s(literal 2 binary64))
(*.f64 (*.f64 re #s(literal 2 binary64)) im)
(*.f64 im #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) im)

simplify30.0ms (3.1%)

Algorithm
egg-herbie
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06156
110156
216156
317156
017156
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 (* im re))
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
(* 2 im)
Outputs
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 (* im re))
(*.f64 im (*.f64 #s(literal 2 binary64) re))
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)
(* 2 im)
(*.f64 #s(literal 2 binary64) im)

eval5.0ms (0.5%)

Compiler

Compiled 222 to 16 computations (92.8% saved)

prune2.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New44044
Fresh000
Picked011
Done000
Total44145
Accuracy
100.0%
Counts
45 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Compiler

Compiled 21 to 13 computations (38.1% saved)

regimes5.0ms (0.5%)

Accuracy

Total -0.0b remaining (-∞%)

Threshold costs -0b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 re (*.f64 im #s(literal 2 binary64)))
(+.f64 (*.f64 re im) (*.f64 im re))
Outputs
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Calls

3 calls:

1.0ms
(+.f64 (*.f64 re im) (*.f64 im re))
1.0ms
re
1.0ms
im
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(+.f64 (*.f64 re im) (*.f64 im re))
Compiler

Compiled 15 to 9 computations (40% saved)

simplify8.0ms (0.8%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055
175
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 re (*.f64 im #s(literal 2 binary64)))
Outputs
(*.f64 re (*.f64 im #s(literal 2 binary64)))

soundness40.0ms (4.1%)

Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
*-commutative
associate-*r*
+-lowering-+.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
056
185
2155
3205
4265
0265
Stop Event
done
iter limit
saturated
Compiler

Compiled 14 to 10 computations (28.6% saved)

preprocess55.0ms (5.6%)

Remove

(sort re im)

(negabs im)

(negabs re)

Compiler

Compiled 116 to 80 computations (31% saved)

end0.0ms (0%)

Profiling

Loading profile data...