Toniolo and Linder, Equation (3b), real

Time bar (total: 7.6s)

analyze432.0ms (5.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
43.8%43.7%56.2%0.1%0%0%0%6
43.8%43.7%56.2%0.1%0%0%0%7
53.1%53%46.8%0.1%0%0%0%8
60.9%60.8%39%0.1%0%0%0%9
60.9%60.8%39%0.1%0%0%0%10
64.8%64.7%35.1%0.1%0%0%0%11
68.4%68.3%31.6%0.1%0%0%0%12
Compiler

Compiled 20 to 15 computations (25% saved)

Precisions
Click to see histograms. Total time spent on operations: 348.0ms
Operation ival-pow, time spent: 234.0ms, 67.0% of total-time
Operation ival-sin, time spent: 56.0ms, 16.0% of total-time
Operation ival-mult, time spent: 20.0ms, 6.0% of total-time
Operation ival-sqrt, time spent: 20.0ms, 6.0% of total-time
Operation ival-add, time spent: 9.0ms, 3.0% of total-time
Operation ival-div, time spent: 6.0ms, 2.0% of total-time
Operation const, time spent: 3.0ms, 1.0% of total-time

sample2.5s (32.8%)

Results
2.4s8249×0valid
1.0ms1valid
4.0ms3valid
0.0ms0valid
1.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 1.6s
Operation ival-sin, time spent: 905.0ms, 57.0% of total-time
Operation ival-pow, time spent: 275.0ms, 17.0% of total-time
Operation ival-add, time spent: 140.0ms, 9.0% of total-time
Operation ival-sqrt, time spent: 115.0ms, 7.0% of total-time
Operation ival-mult, time spent: 70.0ms, 4.0% of total-time
Operation ival-div, time spent: 64.0ms, 4.0% of total-time
Operation const, time spent: 29.0ms, 2.0% of total-time
Bogosity

preprocess3.0s (39.2%)

Algorithm
egg-herbie
Rules
1262×fma-def
834×unswap-sqr
814×associate-/r/
798×distribute-lft-neg-in
694×div-sub
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-kx
00-0-ky
00-0-(sin.f64 ky)
00-0-(sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))
00-0-(/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))
00-0-(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
00-0-th
00-0-(sin.f64 th)
00-0-(sin.f64 kx)
00-0-(pow.f64 (sin.f64 kx) 2)
00-0-(+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))
00-0-2
00-0-(pow.f64 (sin.f64 ky) 2)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053717
1123529
2298529
3657529
42780529
57692529
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 (neg.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 (neg.f64 ky)) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 (neg.f64 th)))
(neg.f64 (*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th)))
(neg.f64 (*.f64 (/.f64 (sin.f64 (neg.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 (neg.f64 ky)) 2)))) (sin.f64 th)))
(neg.f64 (*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 (neg.f64 th))))
(*.f64 (/.f64 (sin.f64 kx) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 th) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 kx))
(*.f64 (/.f64 (sin.f64 th) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 th) 2)))) (sin.f64 ky))
Outputs
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 (neg.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 (neg.f64 ky)) 2)))) (sin.f64 th))
(*.f64 (sin.f64 th) (/.f64 (neg.f64 (sin.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (neg.f64 (sin.f64 ky)) 2)))))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (neg.f64 (sin.f64 th)))
(*.f64 (/.f64 (neg.f64 (sin.f64 th)) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 ky))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 (neg.f64 th)))
(*.f64 (sin.f64 th) (/.f64 (neg.f64 (sin.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (neg.f64 (sin.f64 ky)) 2)))))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (neg.f64 (sin.f64 th)))
(*.f64 (/.f64 (neg.f64 (sin.f64 th)) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 ky))
(neg.f64 (*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th)))
(*.f64 (sin.f64 th) (/.f64 (neg.f64 (sin.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (neg.f64 (sin.f64 ky)) 2)))))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (neg.f64 (sin.f64 th)))
(*.f64 (/.f64 (neg.f64 (sin.f64 th)) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 ky))
(neg.f64 (*.f64 (/.f64 (sin.f64 (neg.f64 ky)) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 (neg.f64 ky)) 2)))) (sin.f64 th)))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(neg.f64 (*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 (neg.f64 th))))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 kx) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)))) (sin.f64 th))
(*.f64 (sin.f64 th) (/.f64 (sin.f64 kx) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))))
(*.f64 (sin.f64 th) (/.f64 (sin.f64 kx) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 th) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 kx))
(*.f64 (sin.f64 kx) (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 th) 2)))))
(*.f64 (sin.f64 kx) (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 th))))
(/.f64 (sin.f64 kx) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 th)) (sin.f64 ky)))
(*.f64 (/.f64 (sin.f64 th) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 th) 2)))) (sin.f64 ky))
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 th) 2)))))
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 kx) (sin.f64 th))))
(/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 kx) (sin.f64 th)) (sin.f64 th)))
Symmetry

(abs kx)

(negabs ky)

(negabs th)

Compiler

Compiled 159 to 90 computations (43.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.5s
Operation ival-sin, time spent: 1.6s, 65.0% of total-time
Operation ival-pow, time spent: 443.0ms, 17.0% of total-time
Operation ival-add, time spent: 224.0ms, 9.0% of total-time
Operation ival-sqrt, time spent: 130.0ms, 5.0% of total-time
Operation ival-div, time spent: 49.0ms, 2.0% of total-time
Operation const, time spent: 31.0ms, 1.0% of total-time
Operation ival-mult, time spent: 26.0ms, 1.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
92.8%
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
Compiler

Compiled 33 to 23 computations (30.3% saved)

localize1.5s (19.5%)

Compiler

Compiled 103 to 41 computations (60.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.3s
Operation ival-sin, time spent: 795.0ms, 62.0% of total-time
Operation ival-pow, time spent: 217.0ms, 17.0% of total-time
Operation ival-add, time spent: 99.0ms, 8.0% of total-time
Operation ival-sqrt, time spent: 65.0ms, 5.0% of total-time
Operation ival-div, time spent: 44.0ms, 3.0% of total-time
Operation ival-mult, time spent: 25.0ms, 2.0% of total-time
Operation ival-hypot, time spent: 22.0ms, 2.0% of total-time
Operation const, time spent: 16.0ms, 1.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
99.7%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
92.8%
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
Compiler

Compiled 63 to 40 computations (36.5% saved)

regimes30.0ms (0.4%)

Accuracy

Total -4.4b remaining (-2047%)

Threshold costs -4.4b (-2047%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
Outputs
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
Calls

9 calls:

5.0ms
th
3.0ms
(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
3.0ms
(sin.f64 th)
3.0ms
(/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))
3.0ms
(sin.f64 ky)
Results
AccuracySegmentsBranch
99.7%1kx
99.7%1ky
99.7%1th
99.7%1(*.f64 (/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) (sin.f64 th))
99.7%1(/.f64 (sin.f64 ky) (sqrt.f64 (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))
99.7%1(sin.f64 ky)
99.7%1(pow.f64 (sin.f64 kx) 2)
99.7%1(sin.f64 kx)
99.7%1(sin.f64 th)
Compiler

Compiled 69 to 53 computations (23.2% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01647
11747
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
Outputs
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
Compiler

Compiled 14 to 9 computations (35.7% saved)

soundness152.0ms (2%)

Rules
1262×fma-def
834×unswap-sqr
814×associate-/r/
798×distribute-lft-neg-in
694×div-sub
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053717
1123529
2298529
3657529
42780529
57692529
Stop Event
node limit
Compiler

Compiled 267 to 150 computations (43.8% saved)

end0.0ms (0%)

preprocess34.0ms (0.4%)

Remove

(negabs th)

(negabs ky)

(abs kx)

Compiler

Compiled 234 to 154 computations (34.2% saved)

Profiling

Loading profile data...