normal distribution

Time bar (total: 2.4s)

analyze46.0ms (1.9%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%6.2%93.8%0%0%0%0
0%0%6.2%93.8%0%0%0%1
50%3.1%3.1%93.8%0%0%0%2
50%3.1%3.1%93.8%0%0%0%3
75%4.7%1.6%93.8%0%0%0%4
75%4.7%1.6%93.8%0%0%0%5
87.5%5.5%0.8%93.8%0%0%0%6
87.5%5.5%0.8%93.8%0%0%0%7
93.8%5.8%0.4%93.8%0%0%0%8
93.8%5.8%0.4%93.8%0%0%0%9
96.9%6%0.2%93.8%0%0%0%10
96.9%6%0.2%93.8%0%0%0%11
98.4%6.1%0.1%93.8%0%0%0%12
Compiler

Compiled 36 to 26 computations (27.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 29.0ms
ival-pow: 8.0ms (27.1% of total)
ival-mult: 6.0ms (20.4% of total)
ival-cos: 5.0ms (17% of total)
ival-<=: 3.0ms (10.2% of total)
ival-div: 2.0ms (6.8% of total)
ival-log: 2.0ms (6.8% of total)
ival-pi: 1.0ms (3.4% of total)
ival-add: 1.0ms (3.4% of total)
ival-and: 1.0ms (3.4% of total)
const: 1.0ms (3.4% of total)

sample2.1s (86.4%)

Results
1.7s8256×256valid
Precisions
Click to see histograms. Total time spent on operations: 1.2s
ival-mult: 368.0ms (29.5% of total)
ival-pow: 286.0ms (22.9% of total)
ival-log: 153.0ms (12.3% of total)
ival-<=: 135.0ms (10.8% of total)
ival-cos: 92.0ms (7.4% of total)
ival-div: 84.0ms (6.7% of total)
ival-add: 46.0ms (3.7% of total)
ival-pi: 35.0ms (2.8% of total)
ival-and: 25.0ms (2% of total)
const: 23.0ms (1.8% of total)
Bogosity

preprocess78.0ms (3.2%)

Algorithm
egg-herbie
Rules
475×fma-define
82×fma-neg
57×associate-*l*
56×sub-neg
46×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
047391
1108387
2217379
3423379
4528379
5657379
6795379
7914379
8972379
91170379
101266379
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) (neg.f64 u2)))) #s(literal 1/2 binary64))
(neg.f64 (+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64)))
(neg.f64 (+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) (neg.f64 u2)))) #s(literal 1/2 binary64)))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u2)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u1))) #s(literal 1/2 binary64))
Outputs
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2)))) #s(literal 1/2 binary64))
(fma.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (*.f64 #s(literal 1/6 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2)))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2)))) #s(literal 1/2 binary64))
(fma.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (*.f64 #s(literal 1/6 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2)))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)) #s(literal 1/2 binary64))
(fma.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2))) (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))))) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2))) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))))) #s(literal 1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) (neg.f64 u2)))) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2)))) #s(literal 1/2 binary64))
(fma.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (*.f64 #s(literal 1/6 binary64) (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2)))) #s(literal 1/2 binary64))
(neg.f64 (+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64)))
(neg.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1))))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)) #s(literal 1/2 binary64)))
(-.f64 #s(literal -1/2 binary64) (*.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2))) (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1)))))))
(fma.f64 (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2))) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 (neg.f64 u1)))) #s(literal -1/6 binary64)) #s(literal -1/2 binary64))
(neg.f64 (+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) (neg.f64 u2)))) #s(literal 1/2 binary64)))
(neg.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) (neg.f64 u2))) #s(literal 1/2 binary64)))
(+.f64 #s(literal -1/2 binary64) (*.f64 #s(literal -1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (cos.f64 (*.f64 (PI.f64) (*.f64 #s(literal 2 binary64) u2))))))
(fma.f64 (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2))) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) #s(literal -1/6 binary64)) #s(literal -1/2 binary64))
(fma.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1))) (*.f64 (cos.f64 (*.f64 #s(literal 2 binary64) (*.f64 (PI.f64) u2))) #s(literal -1/6 binary64)) #s(literal -1/2 binary64))
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u2)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u1))) #s(literal 1/2 binary64))
(fma.f64 (*.f64 #s(literal 1/6 binary64) (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u2)))) (cos.f64 (*.f64 u1 (*.f64 #s(literal 2 binary64) (PI.f64)))) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u2))) (cos.f64 (*.f64 u1 (*.f64 #s(literal 2 binary64) (PI.f64))))) #s(literal 1/2 binary64))
(fma.f64 #s(literal 1/6 binary64) (*.f64 (sqrt.f64 (*.f64 #s(literal -2 binary64) (log.f64 u2))) (cos.f64 (*.f64 (PI.f64) (*.f64 u1 #s(literal 2 binary64))))) #s(literal 1/2 binary64))
Symmetry

(abs u2)

explain177.0ms (7.3%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))
00-0-(*.f64 #s(literal 2 binary64) (PI.f64))
00-0-(log.f64 u1)
00-0-#s(literal 2 binary64)
00-0-#s(literal -2 binary64)
00-0-(/.f64 #s(literal 1 binary64) #s(literal 6 binary64))
00-0-#s(literal 6 binary64)
00-0-(*.f64 #s(literal -2 binary64) (log.f64 u1))
00-0-u2
00-0-(PI.f64)
00-0-#s(literal 1/2 binary64)
00-0-(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
00-0-(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)))
00-0-u1
00-0-(*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64)))
00-0-#s(literal 1 binary64)
00-0-(*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2)
00-0-(cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))
Results
98.0ms512×256valid
Compiler

Compiled 193 to 56 computations (71% saved)

Precisions
Click to see histograms. Total time spent on operations: 60.0ms
ival-mult: 18.0ms (29.9% of total)
ival-pow: 16.0ms (26.6% of total)
ival-log: 11.0ms (18.3% of total)
ival-div: 5.0ms (8.3% of total)
ival-cos: 4.0ms (6.7% of total)
ival-add: 3.0ms (5% of total)
ival-pi: 2.0ms (3.3% of total)
const: 2.0ms (3.3% of total)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.5%
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
Compiler

Compiled 42 to 36 computations (14.3% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02559
13659
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
Outputs
(+.f64 (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) #s(literal 6 binary64)) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 (*.f64 #s(literal 1/6 binary64) (pow.f64 (*.f64 #s(literal -2 binary64) (log.f64 u1)) #s(literal 1/2 binary64))) (cos.f64 (*.f64 (*.f64 #s(literal 2 binary64) (PI.f64)) u2))))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 19 to 16 computations (15.8% saved)

preprocess26.0ms (1.1%)

Remove

(abs u2)

Compiler

Compiled 156 to 132 computations (15.4% saved)

end0.0ms (0%)

Profiling

Loading profile data...