VandenBroeck and Keller, Equation (6)

Time bar (total: 4.1s)

analyze273.0ms (6.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
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
21.9%21.9%78%0.1%0%0%0%7
23.4%23.4%76.5%0.1%0%0%0%8
35.2%35.1%64.8%0.1%0%0%0%9
36.3%36.3%63.6%0.1%0%0%0%10
42.4%42.3%57.6%0.1%0%0%0%11
43.1%43%56.9%0.1%0%0%0%12
Compiler

Compiled 17 to 11 computations (35.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 126.0ms
ival-mult: 60.0ms (47.8% of total)
ival-tan: 20.0ms (15.9% of total)
ival-div: 17.0ms (13.5% of total)
ival-pi: 14.0ms (11.2% of total)
ival-sub: 12.0ms (9.6% of total)
const: 3.0ms (2.4% of total)

sample2.8s (69.4%)

Results
1.2s950×2048valid
590.0ms1757×1024valid
398.0ms4826×256valid
152.0ms47×4096valid
146.0ms676×512valid
3.0ms8192exit
Precisions
Click to see histograms. Total time spent on operations: 2.1s
ival-tan: 1.4s (68.6% of total)
ival-mult: 356.0ms (17.2% of total)
ival-div: 125.0ms (6% of total)
ival-sub: 83.0ms (4% of total)
ival-pi: 68.0ms (3.3% of total)
const: 18.0ms (0.9% of total)
Bogosity

preprocess316.0ms (7.8%)

Algorithm
egg-herbie
Rules
394×fma-define
301×times-frac
209×fma-neg
96×associate-*r*
87×associate-/r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
034415
197357
2270357
3708357
41312357
51876357
62255357
72424357
82435357
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 F) (neg.f64 F))) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) (neg.f64 l)) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) (neg.f64 l)))))
(neg.f64 (-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 F) (neg.f64 F))) (tan.f64 (*.f64 (PI.f64) l)))))
(neg.f64 (-.f64 (*.f64 (PI.f64) (neg.f64 l)) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) (neg.f64 l))))))
(-.f64 (*.f64 (PI.f64) F) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 l l)) (tan.f64 (*.f64 (PI.f64) F))))
Outputs
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(fma.f64 (PI.f64) l (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F (neg.f64 F))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(fma.f64 (PI.f64) l (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F (neg.f64 F))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 F) (neg.f64 F))) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(fma.f64 (PI.f64) l (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F (neg.f64 F))))
(-.f64 (*.f64 (PI.f64) (neg.f64 l)) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) (neg.f64 l)))))
(fma.f64 (PI.f64) (neg.f64 l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(-.f64 (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)) (*.f64 (PI.f64) l))
(neg.f64 (-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 F) (neg.f64 F))) (tan.f64 (*.f64 (PI.f64) l)))))
(-.f64 (*.f64 (PI.f64) (neg.f64 l)) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) (neg.f64 l)))))
(fma.f64 (PI.f64) (neg.f64 l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(-.f64 (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)) (*.f64 (PI.f64) l))
(neg.f64 (-.f64 (*.f64 (PI.f64) (neg.f64 l)) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) (neg.f64 l))))))
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(-.f64 (*.f64 (PI.f64) l) (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F F)))
(fma.f64 (PI.f64) l (/.f64 (tan.f64 (*.f64 (PI.f64) l)) (*.f64 F (neg.f64 F))))
(-.f64 (*.f64 (PI.f64) F) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 l l)) (tan.f64 (*.f64 (PI.f64) F))))
(-.f64 (*.f64 (PI.f64) F) (/.f64 (/.f64 (tan.f64 (*.f64 (PI.f64) F)) l) l))
(-.f64 (*.f64 (PI.f64) F) (/.f64 (tan.f64 (*.f64 (PI.f64) F)) (*.f64 l l)))
Symmetry

(abs F)

(negabs l)

explain616.0ms (15.2%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1240-0-(tan.f64 (*.f64 (PI.f64) l))
460-0-(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l)))
10-0-(/.f64 #s(literal 1 binary64) (*.f64 F F))
00-0-(PI.f64)
00-0-F
00-0-l
00-0-(*.f64 F F)
00-0-(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
00-0-#s(literal 1 binary64)
00-0-(*.f64 (PI.f64) l)
Results
376.0ms104×4096valid
154.0ms138×2048valid
31.0ms270×256valid
Compiler

Compiled 108 to 32 computations (70.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 490.0ms
ival-tan: 431.0ms (88% of total)
ival-mult: 32.0ms (6.5% of total)
ival-div: 12.0ms (2.4% of total)
ival-sub: 7.0ms (1.4% of total)
ival-pi: 6.0ms (1.2% of total)
const: 2.0ms (0.4% 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
75.5%
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
Compiler

Compiled 32 to 20 computations (37.5% saved)

simplify6.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01657
12857
24357
35657
46857
59357
612757
712957
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
Outputs
(-.f64 (*.f64 (PI.f64) l) (*.f64 (/.f64 #s(literal 1 binary64) (*.f64 F F)) (tan.f64 (*.f64 (PI.f64) l))))
(+.f64 (*.f64 (PI.f64) l) (*.f64 (tan.f64 (*.f64 (PI.f64) l)) (/.f64 #s(literal -1 binary64) (*.f64 F F))))

soundness0.0ms (0%)

Stop Event
fuel
Compiler

Compiled 16 to 10 computations (37.5% saved)

preprocess28.0ms (0.7%)

Remove

(negabs l)

(abs F)

Compiler

Compiled 192 to 120 computations (37.5% saved)

end0.0ms (0%)

Profiling

Loading profile data...