math.cube on complex, imaginary part

Time bar (total: 1.4s)

analyze15.0ms (1.1%)

Memory
4.4MiB live, 4.4MiB allocated
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 43 to 25 computations (41.9% saved)

sample1.2s (87.5%)

Memory
11.6MiB live, 504.6MiB allocated
Precisions
Click to see Rival histograms. Total time spent on operations: 361.0ms
ival-mult: 261.0ms (72.3% of total)
ival-add: 60.0ms (16.6% of total)
ival-sub: 32.0ms (8.9% of total)
ival-true: 6.0ms (1.7% of total)
ival-assert: 3.0ms (0.8% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 372.0ms
ival-mult: 271.0ms (72.9% of total)
ival-add: 60.0ms (16.1% of total)
ival-sub: 34.0ms (9.1% of total)
const: 6.0ms (1.6% of total)
Bogosity

preprocess127.0ms (9.1%)

Memory
6.0MiB live, 21.4MiB allocated
Algorithm
egg-herbie
Rules
897×unsub-neg
580×fma-define
421×sub-neg
400×distribute-lft-out
384×distribute-lft-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
042563
1136491
2368483
31517309
44574301
56808301
67659301
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 (neg.f64 x.re) (neg.f64 x.re)) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 (neg.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.re))) (neg.f64 x.re)))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) (neg.f64 x.im))) (neg.f64 x.im)) (*.f64 (+.f64 (*.f64 x.re (neg.f64 x.im)) (*.f64 (neg.f64 x.im) x.re)) x.re))
(neg.f64 (+.f64 (*.f64 (-.f64 (*.f64 (neg.f64 x.re) (neg.f64 x.re)) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 (neg.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.re))) (neg.f64 x.re))))
(neg.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) (neg.f64 x.im))) (neg.f64 x.im)) (*.f64 (+.f64 (*.f64 x.re (neg.f64 x.im)) (*.f64 (neg.f64 x.im) x.re)) x.re)))
(+.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.im))
Outputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 2 binary64))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 3 binary64)))) (pow.f64 x.im #s(literal 3 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 2 binary64))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 3 binary64)))) (pow.f64 x.im #s(literal 3 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 (neg.f64 x.re) (neg.f64 x.re)) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 (neg.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.re))) (neg.f64 x.re)))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 2 binary64))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 3 binary64)))) (pow.f64 x.im #s(literal 3 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) (neg.f64 x.im))) (neg.f64 x.im)) (*.f64 (+.f64 (*.f64 x.re (neg.f64 x.im)) (*.f64 (neg.f64 x.im) x.re)) x.re))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (neg.f64 x.im) (*.f64 x.re (fma.f64 x.re (neg.f64 x.im) (*.f64 x.re (neg.f64 x.im)))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re (neg.f64 x.im))) (*.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re))))
(fma.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 (*.f64 x.re x.re) (*.f64 x.im #s(literal -2 binary64))))
(+.f64 (pow.f64 x.im #s(literal 3 binary64)) (*.f64 (*.f64 x.re (*.f64 x.re (neg.f64 x.im))) #s(literal 3 binary64)))
(+.f64 (pow.f64 x.im #s(literal 3 binary64)) (*.f64 (*.f64 x.re x.re) (*.f64 x.im #s(literal -3 binary64))))
(neg.f64 (+.f64 (*.f64 (-.f64 (*.f64 (neg.f64 x.re) (neg.f64 x.re)) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 (neg.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.re))) (neg.f64 x.re))))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (neg.f64 x.im) (*.f64 x.re (fma.f64 x.re (neg.f64 x.im) (*.f64 x.re (neg.f64 x.im)))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re (neg.f64 x.im))) (*.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re))))
(fma.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 (*.f64 x.re x.re) (*.f64 x.im #s(literal -2 binary64))))
(+.f64 (pow.f64 x.im #s(literal 3 binary64)) (*.f64 (*.f64 x.re (*.f64 x.re (neg.f64 x.im))) #s(literal 3 binary64)))
(+.f64 (pow.f64 x.im #s(literal 3 binary64)) (*.f64 (*.f64 x.re x.re) (*.f64 x.im #s(literal -3 binary64))))
(neg.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) (neg.f64 x.im))) (neg.f64 x.im)) (*.f64 (+.f64 (*.f64 x.re (neg.f64 x.im)) (*.f64 (neg.f64 x.im) x.re)) x.re)))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 #s(literal 2 binary64) (*.f64 x.re x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 2 binary64))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im #s(literal 3 binary64)))) (pow.f64 x.im #s(literal 3 binary64)))
(+.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.im))
(fma.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re (*.f64 x.im (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 x.im (*.f64 #s(literal 2 binary64) (*.f64 x.re x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 (*.f64 x.im x.im) (*.f64 #s(literal 2 binary64) x.re)))
(-.f64 (*.f64 (*.f64 x.re (*.f64 x.im x.im)) #s(literal 3 binary64)) (pow.f64 x.re #s(literal 3 binary64)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.im #s(literal 3 binary64)))) (pow.f64 x.re #s(literal 3 binary64)))
Symmetry

(abs x.re)

(negabs x.im)

Compiler

Compiled 21 to 11 computations (47.6% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
80.9%
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 42 to 22 computations (47.6% saved)

simplify2.0ms (0.2%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
egg-herbie
Rules
*-commutative
+-commutative
sub-neg
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01685
12785
23585
33985
44185
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Outputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.re (+.f64 (*.f64 x.re x.im) (*.f64 x.re x.im))))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 21 to 10 computations (52.4% saved)

preprocess27.0ms (2%)

Memory
3.9MiB live, 35.5MiB allocated
Remove

(negabs x.im)

(abs x.re)

Compiler

Compiled 290 to 144 computations (50.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...