Bouland and Aaronson, Equation (25)

Time bar (total: 3.1s)

analyze13.0ms (0.4%)

Memory
4.0MiB live, 4.0MiB 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)

sample2.9s (94.9%)

Memory
-8.9MiB live, 938.6MiB allocated
Samples
741.0ms8 256×0valid-baseline
715.0ms8 256×0valid-rival
552.0ms8 256×0valid-sollya
Bogosity

preprocess114.0ms (3.7%)

Memory
6.9MiB live, 22.6MiB 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.2MiB live, 0.2MiB 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
73.7%
(-.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)

preprocess25.0ms (0.8%)

Memory
-6.9MiB live, 26.4MiB 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...