Migdal et al, Equation (64)

Time bar (total: 5.2s)

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 23 to 16 computations (30.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation ival-div, time spent: 0.0ms, 0.0% of total-time
Operation ival-sqrt, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation ival-cos, time spent: 0.0ms, 0.0% of total-time

sample2.4s (45.7%)

Results
1.2s4670×0valid
1.0s3585×0infinite
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
Operation ival-mult, time spent: 281.0ms, 24.0% of total-time
Operation ival-sqrt, time spent: 255.0ms, 22.0% of total-time
Operation ival-cos, time spent: 243.0ms, 21.0% of total-time
Operation ival-div, time spent: 195.0ms, 17.0% of total-time
Operation ival-add, time spent: 170.0ms, 15.0% of total-time
Operation const, time spent: 27.0ms, 2.0% of total-time
Bogosity

preprocess1.9s (36.3%)

Algorithm
egg-herbie
Rules
3576×fma-def
1010×div-sub
974×associate-/l*
962×distribute-lft-in
814×distribute-lft-neg-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
00-0-(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
00-0-a2
00-0-(cos.f64 th)
00-0-(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1))
00-0-(*.f64 a2 a2)
00-0-(sqrt.f64 2)
00-0-th
00-0-(/.f64 (cos.f64 th) (sqrt.f64 2))
00-0-(*.f64 a1 a1)
00-0-a1
00-0-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048606
1145562
2418562
31078562
42438562
54177562
65513562
76050562
86122562
96133562
106139562
117356562
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a2) (neg.f64 a2))))
(+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a2 a2)))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a2) (neg.f64 a2)))))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a2 a2))))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 th th)))
Outputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a2) (neg.f64 a2))))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a1) (neg.f64 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))))
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (neg.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (neg.f64 a2) (neg.f64 a2)))))
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (neg.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(neg.f64 (+.f64 (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 (neg.f64 th)) (sqrt.f64 2)) (*.f64 a2 a2))))
(neg.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (neg.f64 (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (neg.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (neg.f64 (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (+.f64 (*.f64 th th) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (fma.f64 th th (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (fma.f64 th th (*.f64 a1 a1)))
(*.f64 (cos.f64 a2) (/.f64 (fma.f64 th th (*.f64 a1 a1)) (sqrt.f64 2)))
(/.f64 (cos.f64 a2) (/.f64 (sqrt.f64 2) (fma.f64 th th (*.f64 a1 a1))))
Symmetry

(abs a1)

(abs a2)

(abs th)

(sort a1 a2)

Compiler

Compiled 142 to 75 computations (47.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0s
Operation ival-cos, time spent: 365.0ms, 36.0% of total-time
Operation ival-sqrt, time spent: 299.0ms, 29.0% of total-time
Operation ival-div, time spent: 151.0ms, 15.0% of total-time
Operation ival-mult, time spent: 136.0ms, 13.0% of total-time
Operation ival-add, time spent: 54.0ms, 5.0% of total-time
Operation const, time spent: 21.0ms, 2.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 40 to 21 computations (47.5% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Compiler

Compiled 16 to 11 computations (31.3% saved)

localize468.0ms (8.9%)

Compiler

Compiled 43 to 18 computations (58.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 277.0ms
Operation ival-cos, time spent: 121.0ms, 44.0% of total-time
Operation ival-sqrt, time spent: 66.0ms, 24.0% of total-time
Operation ival-mult, time spent: 34.0ms, 12.0% of total-time
Operation ival-add, time spent: 26.0ms, 9.0% of total-time
Operation ival-div, time spent: 23.0ms, 8.0% of total-time
Operation const, time spent: 7.0ms, 3.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune4.0ms (0.1%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Accuracy
99.6%
Counts
1 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Compiler

Compiled 51 to 31 computations (39.2% saved)

regimes24.0ms (0.5%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Outputs
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Calls

8 calls:

4.0ms
a2
3.0ms
a1
3.0ms
th
3.0ms
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
3.0ms
(/.f64 (cos.f64 th) (sqrt.f64 2))
Results
AccuracySegmentsBranch
99.6%1a1
99.6%1a2
99.6%1th
99.6%1(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
99.6%1(/.f64 (cos.f64 th) (sqrt.f64 2))
99.6%1(cos.f64 th)
99.6%1(*.f64 a1 a1)
99.6%1(*.f64 a2 a2)
Compiler

Compiled 59 to 43 computations (27.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01854
12054
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Outputs
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Compiler

Compiled 16 to 11 computations (31.3% saved)

soundness402.0ms (7.7%)

Rules
3576×fma-def
1010×div-sub
974×associate-/l*
962×distribute-lft-in
814×distribute-lft-neg-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048606
1145562
2418562
31078562
42438562
54177562
65513562
76050562
86122562
96133562
106139562
117356562
Stop Event
node limit
Compiler

Compiled 35 to 20 computations (42.9% saved)

end0.0ms (0%)

preprocess41.0ms (0.8%)

Remove

(sort a1 a2)

(abs th)

(abs a2)

(abs a1)

Compiler

Compiled 332 to 228 computations (31.3% saved)

Profiling

Loading profile data...