math.square on complex, imaginary part

Time bar (total: 1.1s)

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)

sample806.0ms (74.8%)

Results
638.0ms8256×0valid
Precisions
Click to see histograms. Total time spent on operations: 316.0ms
ival-mult: 247.0ms (78.3% of total)
ival-add: 59.0ms (18.7% of total)
const: 7.0ms (2.2% of total)
backward-pass: 2.0ms (0.6% of total)
Bogosity

preprocess88.0ms (8.2%)

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)

explain59.0ms (5.5%)

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
38.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 (73.4% of total)
ival-add: 3.0ms (27.5% 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)

simplify5.0ms (0.5%)

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)

localize24.0ms (2.3%)

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
17.0ms256×0valid
Compiler

Compiled 14 to 6 computations (57.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 4.0ms (99.1% 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)

rewrite21.0ms (2%)

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)

simplify6.0ms (0.6%)

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)

eval4.0ms (0.4%)

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

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
im
1.0ms
re
1.0ms
(+.f64 (*.f64 re im) (*.f64 im re))
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)))

soundness4.0ms (0.4%)

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)

preprocess37.0ms (3.4%)

Remove

(sort re im)

(negabs im)

(negabs re)

Compiler

Compiled 116 to 80 computations (31% saved)

end0.0ms (0%)

Profiling

Loading profile data...