Bouland and Aaronson, Equation (24)

Time bar (total: 3.3s)

analyze15.0ms (0.4%)

Memory
-18.6MiB live, 4.2MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 63 to 39 computations (38.1% saved)

sample3.2s (95.3%)

Memory
-109.0MiB live, 1 009.6MiB allocated
Samples
811.0ms8 256×73valid-baseline
689.0ms8 256×73valid-rival
544.0ms8 256×73valid-sollya
Precisions
Click to see Rival histograms. Total time spent on operations: 532.0ms
ival-mult: 228.0ms (42.9% of total)
ival-add: 132.0ms (24.8% of total)
ival-sub: 78.0ms (14.7% of total)
ival-pow: 74.0ms (13.9% of total)
...in/eval/compile.rkt:110:19: 10.0ms (1.9% of total)
ival-true: 7.0ms (1.3% of total)
ival-assert: 3.0ms (0.6% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 550.0ms
ival-mult: 242.0ms (44% of total)
ival-add: 142.0ms (25.8% of total)
ival-sub: 76.0ms (13.8% of total)
ival-pow: 70.0ms (12.7% of total)
const: 20.0ms (3.6% of total)
Bogosity

preprocess117.0ms (3.5%)

Memory
4.0MiB live, 22.4MiB allocated
Algorithm
egg-herbie
Rules
641×sub-neg
559×unsub-neg
452×fmm-def
366×fma-define
315×distribute-lft-neg-out
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
057765
1194729
2770713
33534713
47886713
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (-.f64 #s(literal 1 binary64) (neg.f64 a))) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) (neg.f64 a)))))) #s(literal 1 binary64))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (-.f64 #s(literal 1 binary64) (neg.f64 a))) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) (neg.f64 a)))))) #s(literal 1 binary64)))
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64)))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) b)) (*.f64 (*.f64 a a) (+.f64 #s(literal 3 binary64) b))))) #s(literal 1 binary64))
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 a #s(literal 3 binary64)))))) #s(literal 1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 a #s(literal 3 binary64)))))) #s(literal 1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (-.f64 #s(literal 1 binary64) (neg.f64 a))) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) (neg.f64 a)))))) #s(literal 1 binary64))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) (neg.f64 a)) (*.f64 b (*.f64 b (-.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 (*.f64 b b) (-.f64 #s(literal 3 binary64) a))) #s(literal -1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 b (*.f64 b (-.f64 #s(literal 3 binary64) a)) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 a #s(literal 3 binary64)))))) #s(literal 1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) #s(literal -1 binary64)))
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (-.f64 #s(literal 1 binary64) (neg.f64 a))) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) (neg.f64 a)))))) #s(literal 1 binary64)))
(neg.f64 (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) (neg.f64 a)) (*.f64 b (*.f64 b (-.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))))
(+.f64 (neg.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 (*.f64 b b) (-.f64 #s(literal 3 binary64) a))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)))) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (fma.f64 #s(literal 4 binary64) (fma.f64 b (*.f64 b (-.f64 #s(literal 3 binary64) a)) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))))
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64)))
(neg.f64 (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 a #s(literal 3 binary64)))))) #s(literal 1 binary64))))
(+.f64 (neg.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)))) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))))
(-.f64 #s(literal 1 binary64) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) b)) (*.f64 (*.f64 a a) (+.f64 #s(literal 3 binary64) b))))) #s(literal 1 binary64))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) b) (*.f64 (*.f64 a a) (+.f64 b #s(literal 3 binary64))))) #s(literal 1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (+.f64 b #s(literal 3 binary64))) (*.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) b))) #s(literal -1 binary64)))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) b) (*.f64 a (*.f64 a (+.f64 b #s(literal 3 binary64))))) #s(literal -1 binary64)))
Symmetry

(abs b)

Compiler

Compiled 31 to 18 computations (41.9% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.8%
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
Compiler

Compiled 62 to 36 computations (41.9% saved)

simplify3.0ms (0.1%)

Memory
1.0MiB live, 1.0MiB allocated
Algorithm
egg-herbie
Rules
+-commutative
unsub-neg
*-commutative
neg-mul-1
sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023115
140115
247115
353115
461115
572115
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 #s(literal 3 binary64) a))))) #s(literal 1 binary64))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))))) #s(literal 1 binary64))
(+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) #s(literal 2 binary64)) (*.f64 #s(literal 4 binary64) (+.f64 (*.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (+.f64 a #s(literal 3 binary64)))))) #s(literal -1 binary64))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 31 to 19 computations (38.7% saved)

preprocess21.0ms (0.6%)

Memory
-6.6MiB live, 24.5MiB allocated
Remove

(abs b)

Compiler

Compiled 248 to 150 computations (39.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...