FastMath dist4

Time bar (total: 2.8s)

analyze14.0ms (0.5%)

Memory
4.3MiB live, 4.3MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
100%99.8%0%0.2%0%0%0%1
Compiler

Compiled 37 to 25 computations (32.4% saved)

sample2.7s (94.6%)

Memory
0.9MiB live, 831.7MiB allocated
Samples
596.0ms8 256×0valid-sollya
550.0ms8 256×0valid-baseline
495.0ms8 256×0valid-rival
Bogosity

preprocess110.0ms (3.9%)

Memory
7.7MiB live, 23.0MiB allocated
Algorithm
egg-herbie
Rules
672×sub-neg
533×fma-define
413×distribute-lft-neg-in
386×fmm-def
345×distribute-rgt-neg-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
073984
1289776
2998664
34152644
47095640
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d2 d3)) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d2 d3)) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1)))
(-.f64 (+.f64 (*.f64 (neg.f64 d1) (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 d1 (-.f64 (neg.f64 d4) d1)))
(*.f64 d1 (+.f64 (-.f64 d3 d2) (-.f64 (neg.f64 d4) d1)))
(*.f64 d1 (-.f64 (neg.f64 (+.f64 d1 d4)) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (-.f64 d3 d2) (+.f64 d1 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 (neg.f64 d2) d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 (neg.f64 d2) d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 (-.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 (-.f64 d4 d1) (+.f64 d2 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 (neg.f64 d3))) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (+.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1))
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 (neg.f64 d4) d1)))
(*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (-.f64 d2 (+.f64 d3 (+.f64 d1 d4))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 d1) d2) (*.f64 (neg.f64 d1) d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 (neg.f64 d1) (neg.f64 d1))))
(neg.f64 (-.f64 (+.f64 (*.f64 (neg.f64 d1) (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 (neg.f64 d1) (+.f64 (-.f64 d2 d3) d4))) (*.f64 d1 d1))
(neg.f64 (*.f64 d1 (+.f64 (-.f64 d3 d2) (-.f64 (neg.f64 d4) d1))))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (+.f64 d1 d4)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 (neg.f64 d2)) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (+.f64 (*.f64 d1 (-.f64 (neg.f64 d2) d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(neg.f64 (fma.f64 d1 (-.f64 (neg.f64 d2) d3) (*.f64 d1 (-.f64 d4 d1))))
(neg.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d4 d2) d3) d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 (-.f64 d3 d4))))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d3 d4)) d1))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))) (*.f64 d4 d1)) (*.f64 d1 d1)))
(neg.f64 (+.f64 (*.f64 d1 (-.f64 d2 (neg.f64 d3))) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(neg.f64 (fma.f64 d1 (-.f64 d2 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1))))
(neg.f64 (*.f64 d1 (+.f64 (+.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 d1 (-.f64 d1 (+.f64 d3 (+.f64 d2 d4))))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 (neg.f64 d4) d1)) (*.f64 d1 d1)))
(neg.f64 (-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 (neg.f64 d1))) (*.f64 d1 d1)))
(neg.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 (neg.f64 d4) d1))))
(neg.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d3) d4) d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d3 (-.f64 d4 d2))))
(*.f64 d1 (+.f64 (+.f64 d1 d4) (-.f64 d3 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(+.f64 (*.f64 d2 (-.f64 d1 d3)) (-.f64 (*.f64 d2 d4) (*.f64 d2 d2)))
(fma.f64 d2 (-.f64 d1 d3) (*.f64 d2 (-.f64 d4 d2)))
(*.f64 d2 (+.f64 (-.f64 d1 d3) (-.f64 d4 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(+.f64 (*.f64 d3 (-.f64 d2 d1)) (-.f64 (*.f64 d3 d4) (*.f64 d3 d3)))
(fma.f64 d3 (-.f64 d2 d1) (*.f64 d3 (-.f64 d4 d3)))
(*.f64 d3 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d3 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d4 (-.f64 d2 d3))) (*.f64 d4 d4))
(fma.f64 d4 (-.f64 d2 d3) (*.f64 d4 (-.f64 d1 d4)))
(*.f64 d4 (+.f64 (-.f64 d2 d3) (-.f64 d1 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d3 d2)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d3 d2) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d3 (+.f64 d2 (-.f64 d1 d4))))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d2 d3)) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
(-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 d3))) (*.f64 d1 d1))
(fma.f64 d1 (-.f64 d2 d4) (*.f64 d1 (-.f64 d3 d1)))
(*.f64 d1 (+.f64 (-.f64 d3 d1) (-.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d2 d4) (-.f64 d3 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d3 (+.f64 d1 d4))))
Symmetry

(sort d2 d4)

Compiler

Compiled 19 to 11 computations (42.1% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
87.9%
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 38 to 22 computations (42.1% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01867
13267
24867
35667
46167
56267
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d4)) (*.f64 d1 d1))

soundness1.0ms (0%)

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

Compiled 19 to 11 computations (42.1% saved)

preprocess27.0ms (0.9%)

Memory
3.1MiB live, 34.4MiB allocated
Remove

(sort d2 d4)

Compiler

Compiled 178 to 104 computations (41.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...