Bouland and Aaronson, Equation (25)

Time bar (total: 3.3s)

analyze14.0ms (0.4%)

Memory
-11.4MiB live, 4.4MiB 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 67 to 40 computations (40.3% saved)

sample3.1s (95.3%)

Memory
39.8MiB live, 1 056.8MiB allocated
Samples
868.0ms8 256×0valid-baseline
765.0ms8 256×0valid-rival
558.0ms8 256×0valid-sollya
Precisions
Click to see Rival histograms. Total time spent on operations: 573.0ms
ival-mult: 280.0ms (48.9% of total)
ival-add: 132.0ms (23% of total)
ival-pow2: 73.0ms (12.7% of total)
ival-sub: 70.0ms (12.2% of total)
...in/eval/compile.rkt:110:19: 7.0ms (1.2% of total)
ival-true: 7.0ms (1.2% of total)
ival-assert: 3.0ms (0.5% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 599.0ms
ival-mult: 287.0ms (47.9% of total)
ival-add: 140.0ms (23.4% of total)
ival-sub: 84.0ms (14% of total)
ival-pow: 70.0ms (11.7% of total)
const: 19.0ms (3.2% of total)
Bogosity

preprocess113.0ms (3.4%)

Memory
6.9MiB live, 22.5MiB allocated
Algorithm
egg-herbie
Rules
649×sub-neg
512×fma-define
509×unsub-neg
479×fmm-def
295×distribute-lft-neg-out
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060807
1211771
2772715
33580715
47881715
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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.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 1 binary64) (*.f64 #s(literal 3 binary64) a)))))) #s(literal 1 binary64))
(+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (+.f64 a #s(literal 1 binary64))) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 a #s(literal -3 binary64)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 b (*.f64 b (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 b b) (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64)) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 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 1 binary64) (*.f64 #s(literal 3 binary64) a)))))) #s(literal 1 binary64))
(+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (+.f64 a #s(literal 1 binary64))) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 a #s(literal -3 binary64)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 b (*.f64 b (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 b b) (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64)) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 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 1 binary64) (*.f64 #s(literal 3 binary64) (neg.f64 a))))))) #s(literal 1 binary64))
(+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) (neg.f64 a))))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 a #s(literal 3 binary64)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 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 b (*.f64 b (fma.f64 a #s(literal 3 binary64) #s(literal 1 binary64))))) #s(literal -1 binary64)))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (fma.f64 a #s(literal 3 binary64) #s(literal 1 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 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 1 binary64) (*.f64 #s(literal 3 binary64) a)))))) #s(literal 1 binary64))
(+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (+.f64 a #s(literal 1 binary64))) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 a #s(literal -3 binary64)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 b (*.f64 b (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64))
(+.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 b b) (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64)) (fma.f64 a a (pow.f64 a #s(literal 3 binary64)))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 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 1 binary64) (*.f64 #s(literal 3 binary64) (neg.f64 a))))))) #s(literal 1 binary64)))
(neg.f64 (+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) (neg.f64 a))))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64)))
(+.f64 (neg.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.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 b (*.f64 b (fma.f64 a #s(literal 3 binary64) #s(literal 1 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 a (*.f64 a (-.f64 #s(literal 1 binary64) a)) (*.f64 (*.f64 b b) (fma.f64 a #s(literal 3 binary64) #s(literal 1 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 1 binary64) (*.f64 #s(literal 3 binary64) a)))))) #s(literal 1 binary64)))
(neg.f64 (+.f64 (+.f64 (*.f64 #s(literal 4 binary64) (fma.f64 (*.f64 a a) (+.f64 a #s(literal 1 binary64)) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 binary64) a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64))) #s(literal -1 binary64)))
(+.f64 (neg.f64 (fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (+.f64 a #s(literal 1 binary64))) (*.f64 b (*.f64 b (+.f64 #s(literal 1 binary64) (*.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 b (*.f64 b (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 a a (pow.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 b b) (fma.f64 a #s(literal -3 binary64) #s(literal 1 binary64)) (fma.f64 a a (pow.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 1 binary64) (*.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 b #s(literal 1 binary64)) (*.f64 (*.f64 a a) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -3 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 a (*.f64 a (+.f64 #s(literal 1 binary64) (*.f64 b #s(literal -3 binary64)))) (+.f64 (*.f64 b b) (pow.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 (fma.f64 b #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 b b (pow.f64 b #s(literal 3 binary64)))) #s(literal -1 binary64)))
(fma.f64 #s(literal 4 binary64) (fma.f64 a (*.f64 a (fma.f64 b #s(literal -3 binary64) #s(literal 1 binary64))) (fma.f64 b b (pow.f64 b #s(literal 3 binary64)))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) #s(literal 2 binary64)) #s(literal -1 binary64)))
Symmetry

(abs b)

Compiler

Compiled 33 to 19 computations (42.4% 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
74.5%
(-.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 1 binary64) (*.f64 #s(literal 3 binary64) a)))))) #s(literal 1 binary64))
Compiler

Compiled 66 to 38 computations (42.4% saved)

simplify4.0ms (0.1%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Rules
11×+-commutative
10×neg-mul-1
unsub-neg
*-commutative
sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024121
145121
259121
370121
487121
5110121
6112121
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 1 binary64) (*.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 1 binary64) (*.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 a #s(literal 1 binary64))) (*.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) (*.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 a #s(literal 1 binary64))) (*.f64 (*.f64 b b) (-.f64 #s(literal 1 binary64) (*.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 33 to 20 computations (39.4% saved)

preprocess21.0ms (0.6%)

Memory
-6.4MiB live, 24.9MiB allocated
Remove

(abs b)

Compiler

Compiled 264 to 158 computations (40.2% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...