Rosa's FloatVsDoubleBenchmark

Time bar (total: 3.1s)

analyze1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
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
100%99.9%0%0.1%0%0%0%2
Compiler

Compiled 129 to 37 computations (71.3% saved)

sample2.4s (77.9%)

Memory
43.1MiB live, 3 773.7MiB allocated
Samples
1.5s7 633×0valid
175.0ms501×1valid
100.0ms122×2valid
Precisions
Click to see histograms. Total time spent on operations: 1.4s
ival-mult: 702.0ms (50.2% of total)
ival-add: 293.0ms (21% of total)
ival-sub: 235.0ms (16.8% of total)
ival-div: 109.0ms (7.8% of total)
adjust: 34.0ms (2.4% of total)
exact: 17.0ms (1.2% of total)
ival-true: 5.0ms (0.4% of total)
ival-assert: 3.0ms (0.2% of total)
Bogosity

preprocess689.0ms (22.1%)

Memory
-6.8MiB live, 1 266.0MiB allocated
Algorithm
egg-herbie
Rules
18 694×accelerator-lowering-fma.f32
18 694×accelerator-lowering-fma.f64
6 102×*-lowering-*.f32
6 102×*-lowering-*.f64
3 384×+-lowering-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0114782
1423751
21732720
035127
1111125
2374119
31909105
46333105
0859787
Stop Event
iter limit
node limit
node limit
Calls
Call 1
Inputs
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))))
Outputs
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))))
(+.f64 x1 (fma.f64 (fma.f64 x1 x1 #s(literal 1 binary64)) (+.f64 x1 (fma.f64 (/.f64 (fma.f64 x1 (fma.f64 x1 #s(literal 3 binary64) #s(literal -1 binary64)) (fma.f64 #s(literal 2 binary64) x2 #s(literal 0 binary64))) (fma.f64 x1 x1 #s(literal 1 binary64))) (fma.f64 x1 (fma.f64 (fma.f64 x1 (fma.f64 x1 #s(literal 3 binary64) #s(literal -1 binary64)) (fma.f64 #s(literal 2 binary64) x2 #s(literal 0 binary64))) (/.f64 #s(literal 2 binary64) (fma.f64 x1 x1 #s(literal 1 binary64))) #s(literal -6 binary64)) (*.f64 (*.f64 x1 x1) #s(literal 4 binary64))) (*.f64 x1 (*.f64 x1 #s(literal -6 binary64))))) (*.f64 #s(literal 3 binary64) (fma.f64 (fma.f64 x1 (fma.f64 x1 #s(literal 3 binary64) #s(literal -1 binary64)) (fma.f64 #s(literal 2 binary64) x2 #s(literal 0 binary64))) (/.f64 (*.f64 x1 x1) (fma.f64 x1 x1 #s(literal 1 binary64))) (/.f64 (fma.f64 x1 (fma.f64 x1 #s(literal 3 binary64) #s(literal -1 binary64)) (fma.f64 x2 #s(literal -2 binary64) #s(literal 0 binary64))) (fma.f64 x1 x1 #s(literal 1 binary64)))))))
Call 2
Inputs
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))))
(+ (neg x1) (+ (+ (+ (+ (* (+ (* (* (* 2 (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) (- (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)) 3)) (* (* (neg x1) (neg x1)) (- (* 4 (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) 6))) (+ (* (neg x1) (neg x1)) 1)) (* (* (* 3 (neg x1)) (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))) (* (* (neg x1) (neg x1)) (neg x1))) (neg x1)) (* 3 (/ (- (- (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))))
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))))
(neg (+ (neg x1) (+ (+ (+ (+ (* (+ (* (* (* 2 (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) (- (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)) 3)) (* (* (neg x1) (neg x1)) (- (* 4 (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) 6))) (+ (* (neg x1) (neg x1)) 1)) (* (* (* 3 (neg x1)) (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))) (* (* (neg x1) (neg x1)) (neg x1))) (neg x1)) (* 3 (/ (- (- (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))))))
(neg (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))))))
(+ x2 (+ (+ (+ (+ (* (+ (* (* (* 2 x2) (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1))) (- (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)) 3)) (* (* x2 x2) (- (* 4 (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1))) 6))) (+ (* x2 x2) 1)) (* (* (* 3 x2) x2) (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)))) (* (* x2 x2) x2)) x2) (* 3 (/ (- (- (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)))))
Outputs
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))))
(+ x1 (+ (+ (/ (* (* x1 (* x1 3)) (+ (* x1 (* x1 3)) (- (+ x2 x2) x1))) (+ (* x1 x1) 1)) (* (+ (* x1 x1) 1) (+ (* x1 (+ (* 2 (* (/ (+ (* x1 (* x1 3)) (- (+ x2 x2) x1)) (+ (* x1 x1) 1)) (+ (/ (+ (* x1 (* x1 3)) (- (+ x2 x2) x1)) (+ (* x1 x1) 1)) -3))) (* x1 (+ (* (/ (+ (* x1 (* x1 3)) (- (+ x2 x2) x1)) (+ (* x1 x1) 1)) 4) -6)))) x1))) (* 3 (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1)))))
(+ (neg x1) (+ (+ (+ (+ (* (+ (* (* (* 2 (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) (- (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)) 3)) (* (* (neg x1) (neg x1)) (- (* 4 (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) 6))) (+ (* (neg x1) (neg x1)) 1)) (* (* (* 3 (neg x1)) (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))) (* (* (neg x1) (neg x1)) (neg x1))) (neg x1)) (* 3 (/ (- (- (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))))
(+ (+ (- (* 3 (/ (+ (* x1 (* x1 3)) (+ x1 (* x2 -2))) (+ (* x1 x1) 1))) x1) (/ (* (* x1 (* x1 3)) (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2)))) (+ (* x1 x1) 1))) (* (+ (* x1 x1) 1) (+ (+ (* (* x1 -2) (* (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1)) (+ (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1)) -3))) (* (* x1 x1) (+ (* 4 (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1))) -6))) (neg x1))))
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))))
(+ x1 (+ (/ (* (* x1 (* x1 3)) (+ (* x1 (* x1 3)) (- (* x2 -2) x1))) (+ (* x1 x1) 1)) (+ (* (+ (* x1 x1) 1) (+ (* x1 (+ (* 2 (* (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1)) (+ (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1)) -3))) (* x1 (+ (* 4 (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1))) -6)))) x1)) (* 3 (/ (+ (* x1 (* x1 3)) (- (+ x2 x2) x1)) (+ (* x1 x1) 1))))))
(neg (+ (neg x1) (+ (+ (+ (+ (* (+ (* (* (* 2 (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) (- (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)) 3)) (* (* (neg x1) (neg x1)) (- (* 4 (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))) 6))) (+ (* (neg x1) (neg x1)) 1)) (* (* (* 3 (neg x1)) (neg x1)) (/ (- (+ (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1)))) (* (* (neg x1) (neg x1)) (neg x1))) (neg x1)) (* 3 (/ (- (- (* (* 3 (neg x1)) (neg x1)) (* 2 x2)) (neg x1)) (+ (* (neg x1) (neg x1)) 1))))))
(+ x1 (- (* (/ (+ (* x1 (* x1 3)) (+ x1 (* x2 -2))) (+ (* x1 x1) 1)) -3) (+ (/ (* (* x1 (* x1 3)) (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2)))) (+ (* x1 x1) 1)) (* (+ (* x1 x1) 1) (+ (+ (* (* x1 -2) (* (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1)) (+ (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1)) -3))) (* (* x1 x1) (+ (* 4 (/ (+ (* x1 (* x1 3)) (+ x1 (+ x2 x2))) (+ (* x1 x1) 1))) -6))) (neg x1))))))
(neg (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 (neg x2))) x1) (+ (* x1 x1) 1))))))
(- (- (* (/ (+ (* x1 (* x1 3)) (- (+ x2 x2) x1)) (+ (* x1 x1) 1)) -3) (+ (/ (* (* x1 (* x1 3)) (+ (* x1 (* x1 3)) (- (* x2 -2) x1))) (+ (* x1 x1) 1)) (* (+ (* x1 x1) 1) (+ (* x1 (+ (* 2 (* (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1)) (+ (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1)) -3))) (* x1 (+ (* 4 (/ (+ (* x1 (* x1 3)) (- (* x2 -2) x1)) (+ (* x1 x1) 1))) -6)))) x1)))) x1)
(+ x2 (+ (+ (+ (+ (* (+ (* (* (* 2 x2) (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1))) (- (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)) 3)) (* (* x2 x2) (- (* 4 (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1))) 6))) (+ (* x2 x2) 1)) (* (* (* 3 x2) x2) (/ (- (+ (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)))) (* (* x2 x2) x2)) x2) (* 3 (/ (- (- (* (* 3 x2) x2) (* 2 x1)) x2) (+ (* x2 x2) 1)))))
(+ x2 (+ (+ (* 3 (/ (+ (* x1 -2) (- (* 3 (* x2 x2)) x2)) (+ 1 (* x2 x2)))) (/ (* (* 3 (* x2 x2)) (+ (* 3 (* x2 x2)) (- (+ x1 x1) x2))) (+ 1 (* x2 x2)))) (* (+ 1 (* x2 x2)) (+ (* x2 (+ (* 2 (* (/ (+ (* 3 (* x2 x2)) (- (+ x1 x1) x2)) (+ 1 (* x2 x2))) (+ (/ (+ (* 3 (* x2 x2)) (- (+ x1 x1) x2)) (+ 1 (* x2 x2))) -3))) (* x2 (+ (/ (* 4 (+ (* 3 (* x2 x2)) (- (+ x1 x1) x2))) (+ 1 (* x2 x2))) -6)))) x2))))

explain1.0ms (0%)

Memory
2.9MiB live, 2.9MiB allocated
Compiler

Compiled 995 to 37 computations (96.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...