Toniolo and Linder, Equation (3a)

Time bar (total: 3.3s)

analyze160.0ms (4.9%)

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
50%49.9%49.9%0.2%0%0%0%3
50%49.9%49.9%0.2%0%0%0%4
50%49.9%49.9%0.2%0%0%0%5
50%49.9%49.9%0.2%0%0%0%6
75%74.9%25%0.2%0%0%0%7
75%74.9%25%0.2%0%0%0%8
75%74.9%25%0.2%0%0%0%9
75%74.9%25%0.2%0%0%0%10
87.5%87.3%12.5%0.2%0%0%0%11
87.5%87.3%12.5%0.2%0%0%0%12
Compiler

Compiled 34 to 23 computations (32.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 104.0ms
ival-pow: 28.0ms (26.9% of total)
ival-sin: 24.0ms (23.1% of total)
ival-mult: 15.0ms (14.4% of total)
ival-div: 14.0ms (13.5% of total)
ival-add: 11.0ms (10.6% of total)
ival-sqrt: 11.0ms (10.6% of total)
const: 1.0ms (1% of total)

sample2.7s (82.8%)

Results
2.3s8256×256valid
Precisions
Click to see histograms. Total time spent on operations: 2.0s
ival-mult: 505.0ms (25.6% of total)
ival-sin: 417.0ms (21.1% of total)
ival-pow: 384.0ms (19.5% of total)
ival-sqrt: 299.0ms (15.2% of total)
ival-div: 217.0ms (11% of total)
ival-add: 138.0ms (7% of total)
const: 14.0ms (0.7% of total)
Bogosity

preprocess92.0ms (2.8%)

Algorithm
egg-herbie
Rules
560×associate-*r*
549×associate-*l*
491×distribute-lft-neg-out
423×distribute-rgt-neg-out
381×distribute-lft-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01421552
13561376
29681376
342701376
Stop Event
node limit
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) (neg.f64 l)) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) (neg.f64 Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 (neg.f64 ky)) #s(literal 2 binary64))))))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) (neg.f64 l)) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) (neg.f64 Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 (neg.f64 ky)) #s(literal 2 binary64)))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) Om) l) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) kx) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 l) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) ky) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) kx) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 Om) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) ky) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 kx) #s(literal 2 binary64))))))))))
Outputs
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) (neg.f64 l)) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) (neg.f64 Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 (neg.f64 ky)) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) (neg.f64 l)) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 (neg.f64 l) Om)) #s(literal 2 binary64))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64)))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) (neg.f64 Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 (neg.f64 l) Om)) #s(literal 2 binary64))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64)))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 (neg.f64 kx)) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 (neg.f64 l) Om)) #s(literal 2 binary64))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64)))))))
(neg.f64 (sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 (neg.f64 ky)) #s(literal 2 binary64)))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 (neg.f64 l) Om)) #s(literal 2 binary64))))))))))
(neg.f64 (sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64)))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) Om) l) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 Om l)) #s(literal 2 binary64)))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 Om l)) #s(literal 2 binary64)) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) kx) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 l) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 kx Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 kx Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 kx (/.f64 #s(literal 2 binary64) Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) ky) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) ky) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 ky (/.f64 #s(literal 2 binary64) Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 ky Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 l) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) kx) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 Om) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) kx) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l kx)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) ky) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l ky)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l ky)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 l (/.f64 #s(literal 2 binary64) ky)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 Om) #s(literal 2 binary64))) #s(literal 1 binary64))))))
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 ky) #s(literal 2 binary64)) (pow.f64 (sin.f64 kx) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (sqrt.f64 (fma.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (/.f64 l Om)) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))) #s(literal 1 binary64))))))
Symmetry

(abs l)

(abs Om)

(abs kx)

(abs ky)

(sort kx ky)

explain252.0ms (7.7%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
390-0-(sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))
90-2(1.0173456551160464e-168 1.293614575433717e-187 1.9321655450638346e-200 1.8674837081875753e-159)(*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))
60-0-(/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))
00-0-l
00-0-(+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))
00-0-#s(literal 2 binary64)
00-0-(sin.f64 kx)
00-0-(+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))
098(1.700867947521315e+299 4.5552125682529346e+216 8.84924155950138e+103 2.8510603080153544e+298)0-(pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64))
00-0-(*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))))))))
00-0-(/.f64 #s(literal 1 binary64) #s(literal 2 binary64))
047(2.2062902112550583e-77 9.943299514726938e-22 2.8628904084511535e-267 1.1337998823872702e-67)0-(pow.f64 (sin.f64 ky) #s(literal 2 binary64))
00-0-kx
00-0-ky
00-0-(/.f64 (*.f64 #s(literal 2 binary64) l) Om)
00-0-(sin.f64 ky)
00-0-(*.f64 #s(literal 2 binary64) l)
075(3.047559389451082e-32 1.7268910246807403e-89 7.110447557888864e-105 2.1470415175967253e+135)0-(pow.f64 (sin.f64 kx) #s(literal 2 binary64))
00-0-(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
00-0-#s(literal 1 binary64)
00-0-Om
00-0-(+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64)))
Results
138.0ms512×256valid
Compiler

Compiled 451 to 68 computations (84.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 79.0ms
ival-sin: 23.0ms (29.2% of total)
ival-pow: 17.0ms (21.6% of total)
ival-div: 11.0ms (14% of total)
ival-mult: 11.0ms (14% of total)
ival-add: 7.0ms (8.9% of total)
ival-sqrt: 7.0ms (8.9% of total)
const: 1.0ms (1.3% of total)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.2%
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
Compiler

Compiled 66 to 44 computations (33.3% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03195
14295
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
Outputs
(sqrt.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))
(sqrt.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 #s(literal 2 binary64) l) Om) #s(literal 2 binary64)) (+.f64 (pow.f64 (sin.f64 kx) #s(literal 2 binary64)) (pow.f64 (sin.f64 ky) #s(literal 2 binary64))))))))))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 31 to 22 computations (29% saved)

preprocess56.0ms (1.7%)

Remove

(sort kx ky)

(abs ky)

(abs kx)

(abs Om)

(abs l)

Compiler

Compiled 748 to 528 computations (29.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...