VandenBroeck and Keller, Equation (20)

Time bar (total: 7.5s)

analyze262.0ms (3.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%75%0%0%25%0%3
0%0%62.5%0%0%25%12.5%4
0%0%56.2%0%0%25%18.7%5
6.3%3.1%46.9%0%0%28.1%21.9%6
6.5%3.1%45.3%0%0%28.1%23.4%7
6.6%3.1%44.5%0%0%28.1%24.2%8
7.4%3.5%44.1%0%0%28.1%24.2%9
7.8%3.7%43.9%0%0%28.1%24.2%10
8%3.8%43.8%0%0%28.1%24.2%11
8%3.8%43.8%0%0%28.1%24.3%12
Compiler

Compiled 39 to 17 computations (56.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 156.0ms
ival-mult: 44.0ms (28.2% of total)
ival-div: 32.0ms (20.5% of total)
ival-exp: 22.0ms (14.1% of total)
ival-neg: 15.0ms (9.6% of total)
ival-pi: 12.0ms (7.7% of total)
ival-log: 11.0ms (7% of total)
ival-add: 9.0ms (5.8% of total)
ival-sub: 8.0ms (5.1% of total)
const: 2.0ms (1.3% of total)

sample6.4s (85.7%)

Results
1.8s3974×1024valid
1.4s4019×1024invalid
522.0ms1943×512invalid
514.0ms2016×512valid
467.0ms1726×256valid
432.0ms540×2048valid
123.0ms1009×256invalid
1.0ms10×256unsamplable
1.0ms2048invalid
Precisions
Click to see histograms. Total time spent on operations: 4.3s
ival-div: 1.2s (27.1% of total)
ival-exp: 1.1s (25.6% of total)
ival-mult: 567.0ms (13.1% of total)
ival-log: 513.0ms (11.8% of total)
ival-neg: 359.0ms (8.3% of total)
ival-add: 196.0ms (4.5% of total)
ival-pi: 185.0ms (4.3% of total)
ival-sub: 180.0ms (4.1% of total)
const: 54.0ms (1.2% of total)
Bogosity

preprocess400.0ms (5.4%)

Algorithm
egg-herbie
Rules
1850×fma-define
839×fma-neg
353×distribute-lft-in
325×distribute-rgt-in
303×div-sub
Iterations

Useful iterations: 11 (0.0ms)

IterNodesCost
033584
192484
2250484
3630484
41254484
51914484
62508484
72719484
83048484
93270484
103714364
114435316
124891316
135709316
146279316
156349316
166493316
176645316
186661316
196949316
Stop Event
node limit
Calls
Call 1
Inputs
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f)))))))))
(neg.f64 (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))))))))
Outputs
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (PI.f64)) #s(literal 4 binary64)) (neg.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f))) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)))))))
(/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f)))) (/.f64 (PI.f64) #s(literal -4 binary64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f) (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal -1/2 binary64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (*.f64 (PI.f64) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) f) (PI.f64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal 1/2 binary64))))) (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal -1/2 binary64))))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (PI.f64)) #s(literal 4 binary64)) (neg.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f))) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)))))))
(/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f)))) (/.f64 (PI.f64) #s(literal -4 binary64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f) (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal -1/2 binary64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (*.f64 (PI.f64) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) f) (PI.f64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal 1/2 binary64))))) (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal -1/2 binary64))))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f)))))))))
(*.f64 (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (PI.f64)) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 (neg.f64 f))))) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 (neg.f64 f))))))))
(/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)))) (/.f64 (PI.f64) #s(literal -4 binary64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal -1/2 binary64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (*.f64 (PI.f64) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) f) (PI.f64)))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(*.f64 (log.f64 (+.f64 (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal 1/2 binary64))))) (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal -1/2 binary64))))))) (/.f64 #s(literal -4 binary64) (PI.f64)))
(neg.f64 (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))))))))
(*.f64 (*.f64 (/.f64 #s(literal 1 binary64) (PI.f64)) #s(literal 4 binary64)) (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 (neg.f64 f))))) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 (neg.f64 f))))))))
(*.f64 (/.f64 #s(literal 4 binary64) (PI.f64)) (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)))))
(*.f64 #s(literal 4 binary64) (/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal -4 binary64))) f) (pow.f64 (exp.f64 (/.f64 (PI.f64) #s(literal 4 binary64))) f)))) (PI.f64)))
(*.f64 #s(literal 4 binary64) (/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal -1/4 binary64))) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)))) (PI.f64)))
(*.f64 #s(literal 4 binary64) (/.f64 (log.f64 (/.f64 (+.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)) (-.f64 (pow.f64 (pow.f64 (exp.f64 #s(literal -1/4 binary64)) (PI.f64)) f) (pow.f64 (exp.f64 (*.f64 (PI.f64) #s(literal 1/4 binary64))) f)))) (PI.f64)))
(*.f64 (/.f64 #s(literal 4 binary64) (PI.f64)) (log.f64 (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (pow.f64 (pow.f64 (exp.f64 (PI.f64)) f) #s(literal -1/2 binary64)))))))
(*.f64 (/.f64 #s(literal 4 binary64) (PI.f64)) (log.f64 (+.f64 (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (*.f64 (PI.f64) f) #s(literal 1/2 binary64)))) (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (*.f64 #s(literal -1/2 binary64) f) (PI.f64)))))))
(*.f64 (/.f64 #s(literal 4 binary64) (PI.f64)) (log.f64 (+.f64 (/.f64 #s(literal -1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal 1/2 binary64))))) (/.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (PI.f64) (*.f64 f #s(literal -1/2 binary64))))))))

explain373.0ms (5%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2410-0-(-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))
110-0-(/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))))
30-0-(log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))
00-0-(PI.f64)
00-0-(*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)
00-0-(neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))
00-0-(/.f64 (PI.f64) #s(literal 4 binary64))
00-0-(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
00-0-f
00-0-(+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))
00-0-#s(literal 4 binary64)
00-0-(/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64)))
00-0-(*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))))))
00-0-#s(literal 1 binary64)
00-0-(exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))
00-0-(exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))
Results
147.0ms250×1024valid
51.0ms50×2048valid
50.0ms96×512valid
20.0ms116×256valid
Compiler

Compiled 434 to 50 computations (88.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 158.0ms
ival-exp: 46.0ms (29.2% of total)
ival-log: 29.0ms (18.4% of total)
ival-div: 24.0ms (15.2% of total)
ival-mult: 19.0ms (12.1% of total)
ival-neg: 16.0ms (10.1% of total)
ival-pi: 9.0ms (5.7% of total)
ival-add: 7.0ms (4.4% of total)
ival-sub: 6.0ms (3.8% of total)
const: 2.0ms (1.3% of total)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
8.2%
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
Compiler

Compiled 76 to 32 computations (57.9% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
29×neg-mul-1
21×unsub-neg
13×distribute-lft-neg-in
13×distribute-rgt-neg-in
12×*-commutative
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
021139
144139
272139
390135
4103135
5144135
6202135
Stop Event
saturated
Calls
Call 1
Inputs
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
Outputs
(neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (neg.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f))))))))
(*.f64 (/.f64 #s(literal 1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))) (neg.f64 (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f))))))))
(*.f64 (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f)))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) (neg.f64 f)))))) (/.f64 #s(literal -1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))))
(*.f64 (log.f64 (/.f64 (+.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 f (/.f64 (neg.f64 (PI.f64)) #s(literal 4 binary64))))) (-.f64 (exp.f64 (*.f64 (/.f64 (PI.f64) #s(literal 4 binary64)) f)) (exp.f64 (*.f64 f (/.f64 (neg.f64 (PI.f64)) #s(literal 4 binary64))))))) (/.f64 #s(literal -1 binary64) (/.f64 (PI.f64) #s(literal 4 binary64))))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 37 to 17 computations (54.1% saved)

preprocess25.0ms (0.3%)

Compiler

Compiled 150 to 66 computations (56% saved)

end0.0ms (0%)

Profiling

Loading profile data...