Quotient of products

Time bar (total: 1.2s)

analyze126.0ms (10.7%)

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
25%25%74.9%0.2%0%0%0%5
25%25%74.9%0.2%0%0%0%6
25%25%74.9%0.2%0%0%0%7
37.5%37.4%62.4%0.2%0%0%0%8
56.3%56.1%43.7%0.2%0%0%0%9
56.3%56.1%43.7%0.2%0%0%0%10
56.3%56.1%43.7%0.2%0%0%0%11
65.6%65.5%34.3%0.2%0%0%0%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-mult: 24.0ms (71.9% of total)
ival-div: 8.0ms (24% of total)
const: 1.0ms (3% of total)

sample840.0ms (71.6%)

Results
627.0ms8256×256valid
Precisions
Click to see histograms. Total time spent on operations: 352.0ms
ival-div: 211.0ms (59.9% of total)
ival-mult: 135.0ms (38.3% of total)
const: 6.0ms (1.7% of total)
Bogosity

preprocess97.0ms (8.3%)

Algorithm
egg-herbie
Rules
1205×fma-define
591×div-sub
554×unsub-neg
342×times-frac
320×associate-/r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045512
1143512
2419512
31300512
43246512
56593512
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 b1 b2))
(/.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b1 b2))
(/.f64 (*.f64 a1 a2) (*.f64 (neg.f64 b1) b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 (neg.f64 b2)))
(neg.f64 (/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 b1 b2)))
(neg.f64 (/.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b1 b2)))
(neg.f64 (/.f64 (*.f64 a1 a2) (*.f64 (neg.f64 b1) b2)))
(neg.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 (neg.f64 b2))))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 b1 a2) (*.f64 a1 b2))
(/.f64 (*.f64 b2 a2) (*.f64 b1 a1))
(/.f64 (*.f64 a1 b1) (*.f64 a2 b2))
(/.f64 (*.f64 a1 b2) (*.f64 b1 a2))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 b1 b2))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 b1 b2)))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b1 b2))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 b1 b2)))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 a1 a2) (*.f64 (neg.f64 b1) b2))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 b1 b2)))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 (neg.f64 b2)))
(*.f64 (neg.f64 a1) (/.f64 a2 (*.f64 b1 b2)))
(*.f64 (neg.f64 a2) (/.f64 (/.f64 a1 b2) b1))
(*.f64 (neg.f64 a1) (/.f64 (/.f64 a2 b1) b2))
(neg.f64 (/.f64 (*.f64 (neg.f64 a1) a2) (*.f64 b1 b2)))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(neg.f64 (/.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b1 b2)))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(neg.f64 (/.f64 (*.f64 a1 a2) (*.f64 (neg.f64 b1) b2)))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(neg.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 (neg.f64 b2))))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
(/.f64 (*.f64 b1 a2) (*.f64 a1 b2))
(*.f64 b1 (/.f64 a2 (*.f64 a1 b2)))
(*.f64 b1 (/.f64 (/.f64 a2 b2) a1))
(*.f64 a2 (/.f64 b1 (*.f64 a1 b2)))
(/.f64 (*.f64 b2 a2) (*.f64 b1 a1))
(*.f64 (/.f64 b2 b1) (/.f64 a2 a1))
(/.f64 (*.f64 a2 b2) (*.f64 a1 b1))
(*.f64 b2 (/.f64 a2 (*.f64 a1 b1)))
(*.f64 b2 (/.f64 (/.f64 a2 b1) a1))
(/.f64 (*.f64 a1 b1) (*.f64 a2 b2))
(*.f64 (/.f64 a1 a2) (/.f64 b1 b2))
(*.f64 a1 (/.f64 b1 (*.f64 a2 b2)))
(*.f64 b1 (/.f64 a1 (*.f64 a2 b2)))
(/.f64 (*.f64 a1 b2) (*.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (/.f64 b2 a2))
(*.f64 a1 (/.f64 (/.f64 b2 b1) a2))
(*.f64 a1 (/.f64 b2 (*.f64 a2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 (/.f64 a2 b1) b2))
Symmetry

(negabs a1)

(negabs a2)

(negabs b1)

(negabs b2)

(sort a1 a2)

(sort b1 b2)

explain63.0ms (5.3%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
280-1(1.722625579670757e-213 1.1895720875952156e-98 3.124674070036949e-208 5.79784338597846e-38)(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
00-0-a2
00-0-b1
00-0-b2
00-0-a1
00-0-(*.f64 a1 a2)
00-0-(*.f64 b1 b2)
Results
42.0ms512×256valid
Compiler

Compiled 55 to 23 computations (58.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 12.0ms (70.9% of total)
ival-div: 4.0ms (23.6% of total)
const: 0.0ms (0% of total)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
89.6%
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 22 to 14 computations (36.4% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01431
11631
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 11 to 7 computations (36.4% saved)

preprocess45.0ms (3.8%)

Remove

(sort b1 b2)

(sort a1 a2)

(negabs b2)

(negabs b1)

(negabs a2)

(negabs a1)

Compiler

Compiled 330 to 210 computations (36.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...