sqrt D (should all be same)

Time bar (total: 1.9s)

start0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.8MiB live, 0.9MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
100%100%0%0%0%0%0%1
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample875.0ms (46.6%)

Memory
62.4MiB live, 774.3MiB allocated; 851ms collecting garbage
Samples
412.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 196.0ms
ival-pow2: 96.0ms (49% of total)
ival-sqrt: 58.0ms (29.6% of total)
ival-mult!: 40.0ms (20.4% of total)
adjust: 2.0ms (1% of total)
Bogosity

preprocess109.0ms (5.8%)

Memory
-22.2MiB live, 23.7MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01020
12319
26919
324019
487719
5530919
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.4%
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
Symmetry

(abs x)

Compiler

Compiled 12 to 10 computations (16.7% saved)

series61.0ms (3.3%)

Memory
6.8MiB live, 53.0MiB allocated; 6ms collecting garbage
Counts
5 → 5
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal 2 binary64)
(pow.f64 x #s(literal 2 binary64))
x
Outputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx (* 2 (pow x 2)) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (pow x 2) (pow.f64 x #s(literal 2 binary64)))
#s(approx x x)
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Calls

3 calls:

TimeVariablePoint
1.0ms
x
inf
1.0ms
x
-inf
1.0ms
x
0

rewrite179.0ms (9.5%)

Memory
3.3MiB live, 105.8MiB allocated; 153ms collecting garbage
Counts
5 → 13
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
#s(literal 2 binary64)
(pow.f64 x #s(literal 2 binary64))
x
Outputs
(fabs.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x))))
(hypot.f64 x x)
(pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(+.f64 (*.f64 x x) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
#s(literal 2 binary64)
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
x

eval16.0ms (0.9%)

Memory
3.2MiB live, 3.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 120 to 41 computations (65.8% saved)

prune3.0ms (0.1%)

Memory
3.3MiB live, 3.3MiB allocated; 0ms collecting garbage
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New11415
Fresh000
Picked101
Done000
Total12416
Accuracy
100.0%
Counts
16 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
54.4%
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
99.4%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 33 to 27 computations (18.2% saved)

series68.0ms (3.6%)

Memory
-4.4MiB live, 42.3MiB allocated; 8ms collecting garbage
Counts
12 → 5
Calls
Call 1
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(literal -1 binary64)
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
(hypot.f64 x x)
Outputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx (* -1 (* x (sqrt 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
#s(approx x x)
#s(approx (* (* x x) 2) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (* x x) (pow.f64 x #s(literal 2 binary64)))
Calls

3 calls:

TimeVariablePoint
2.0ms
x
0
2.0ms
x
inf
2.0ms
x
-inf

rewrite207.0ms (11%)

Memory
-4.1MiB live, 137.2MiB allocated; 22ms collecting garbage
Counts
12 → 168
Calls
Call 1
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(literal -1 binary64)
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
(hypot.f64 x x)
Outputs
#s(approx (sqrt (* 2 (* x x))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
(*.f64 #s(literal -2 binary64) x)
(*.f64 #s(literal -1 binary64) (+.f64 x x))
(*.f64 (+.f64 x x) #s(literal -1 binary64))
(*.f64 (neg.f64 x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (neg.f64 x))
(+.f64 (*.f64 #s(literal 1 binary64) (neg.f64 x)) (*.f64 #s(literal 1 binary64) (neg.f64 x)))
(+.f64 (*.f64 (neg.f64 x) #s(literal 1 binary64)) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (neg.f64 x) (*.f64 #s(literal 1 binary64) (neg.f64 x)))
(fma.f64 (neg.f64 x) #s(literal 1 binary64) (*.f64 (neg.f64 x) #s(literal 1 binary64)))
(neg.f64 (+.f64 x x))
#s(literal -1 binary64)
(neg.f64 #s(literal 1 binary64))
(*.f64 x #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
(+.f64 x x)
(+.f64 (*.f64 x #s(literal 1 binary64)) (*.f64 x #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) x) (*.f64 #s(literal 1 binary64) x))
(-.f64 x (neg.f64 x))
(fma.f64 x #s(literal 1 binary64) (*.f64 x #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) x (*.f64 #s(literal 1 binary64) x))
x
#s(literal 2 binary64)
(*.f64 #s(literal 2 binary64) #s(literal 1 binary64))
(fabs.f64 #s(literal 2 binary64))
(fabs.f64 #s(literal -2 binary64))
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) #s(literal -1 binary64))
(pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64))
(pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64))
(sqrt.f64 #s(literal 2 binary64))
(sqrt.f64 #s(literal 4 binary64))
#s(literal 2 binary64)
(*.f64 #s(literal 2 binary64) #s(literal 1 binary64))
(fabs.f64 #s(literal 2 binary64))
(fabs.f64 #s(literal -2 binary64))
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) #s(literal -1 binary64))
(pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64))
(pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64))
(sqrt.f64 #s(literal 2 binary64))
(sqrt.f64 #s(literal 4 binary64))
#s(approx (sqrt (* 2 (* x x))) (+.f64 x x))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 x x) x)))
(fabs.f64 (neg.f64 (sqrt.f64 (*.f64 (+.f64 x x) x))))
(hypot.f64 x x)
(hypot.f64 (neg.f64 x) x)
(hypot.f64 (neg.f64 x) (fabs.f64 x))
(hypot.f64 (neg.f64 x) (neg.f64 x))
(hypot.f64 (fabs.f64 x) x)
(hypot.f64 (fabs.f64 x) (fabs.f64 x))
(hypot.f64 (fabs.f64 x) (neg.f64 x))
(hypot.f64 x (neg.f64 x))
(hypot.f64 x (fabs.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) x)
(hypot.f64 (neg.f64 (neg.f64 x)) (fabs.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (neg.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) x)
(hypot.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) x)
(hypot.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 x))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 x (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 x (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 x (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (fabs.f64 (fabs.f64 x)))
(pow.f64 (*.f64 (+.f64 x x) x) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(sqrt.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 x x) x)) (sqrt.f64 (*.f64 (+.f64 x x) x))))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (+.f64 x x) x)
(*.f64 (neg.f64 x) (*.f64 x #s(literal -2 binary64)))
(*.f64 (*.f64 x #s(literal -2 binary64)) (neg.f64 x))
(*.f64 x (+.f64 x x))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (neg.f64 x)))
(*.f64 (fabs.f64 x) (+.f64 (fabs.f64 x) (fabs.f64 x)))
(*.f64 (neg.f64 x) (-.f64 (neg.f64 x) x))
(+.f64 (*.f64 x x) (*.f64 x x))
(+.f64 (*.f64 #s(literal 1 binary64) (*.f64 x x)) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(+.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 (neg.f64 x)) x))
(-.f64 (*.f64 x x) (neg.f64 (*.f64 x x)))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 x x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 x x))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 x x (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 (neg.f64 (neg.f64 x)) x))
(neg.f64 (-.f64 (neg.f64 (*.f64 x x)) (*.f64 x x)))
(*.f64 x x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(fabs.f64 (*.f64 x x))
(neg.f64 (neg.f64 (*.f64 x x)))
(pow.f64 x #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 x x) x)))
(fabs.f64 (neg.f64 (sqrt.f64 (*.f64 (+.f64 x x) x))))
(hypot.f64 x x)
(hypot.f64 (neg.f64 x) x)
(hypot.f64 (neg.f64 x) (fabs.f64 x))
(hypot.f64 (neg.f64 x) (neg.f64 x))
(hypot.f64 (fabs.f64 x) x)
(hypot.f64 (fabs.f64 x) (fabs.f64 x))
(hypot.f64 (fabs.f64 x) (neg.f64 x))
(hypot.f64 x (neg.f64 x))
(hypot.f64 x (fabs.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) x)
(hypot.f64 (neg.f64 (neg.f64 x)) (fabs.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (neg.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) x)
(hypot.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) x)
(hypot.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 x))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 x (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 x (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 x (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (fabs.f64 (fabs.f64 x)))
(pow.f64 (*.f64 (+.f64 x x) x) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(sqrt.f64 (*.f64 (sqrt.f64 (*.f64 (+.f64 x x) x)) (sqrt.f64 (*.f64 (+.f64 x x) x))))

eval16.0ms (0.8%)

Memory
20.5MiB live, 20.5MiB allocated; 0ms collecting garbage
Compiler

Compiled 1 299 to 288 computations (77.8% saved)

prune7.0ms (0.4%)

Memory
8.5MiB live, 8.5MiB allocated; 0ms collecting garbage
Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1323135
Fresh000
Picked134
Done000
Total1336139
Accuracy
100.0%
Counts
139 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
54.4%
(sqrt.f64 (*.f64 (+.f64 x x) x))
20.3%
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
99.4%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
2.1%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 53 to 41 computations (22.6% saved)

series66.0ms (3.5%)

Memory
-15.0MiB live, 30.9MiB allocated; 23ms collecting garbage
Counts
8 → 6
Calls
Call 1
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
Outputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx (* x -2) (*.f64 #s(literal -2 binary64) x))
#s(approx x x)
#s(approx (+ x x) (*.f64 #s(literal 2 binary64) x))
#s(approx (* (+ x x) x) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Calls

3 calls:

TimeVariablePoint
2.0ms
x
inf
1.0ms
x
-inf
1.0ms
x
0

rewrite151.0ms (8%)

Memory
-8.3MiB live, 85.7MiB allocated; 30ms collecting garbage
Counts
8 → 14
Calls
Call 1
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
Outputs
#s(approx (sqrt (* (* x x) 2)) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
(*.f64 #s(literal -2 binary64) x)
x
#s(literal -2 binary64)
#s(approx (sqrt (* (* x x) 2)) (+.f64 x x))
(*.f64 #s(literal 2 binary64) x)
(+.f64 x x)
(-.f64 x (neg.f64 x))
(fabs.f64 (sqrt.f64 (*.f64 (+.f64 x x) x)))
(pow.f64 (*.f64 (+.f64 x x) x) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
(*.f64 x (+.f64 x x))

eval2.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Compiler

Compiled 172 to 53 computations (69.2% saved)

prune2.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated; 0ms collecting garbage
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New17017
Fresh000
Picked033
Done033
Total17623
Accuracy
100.0%
Counts
23 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
54.4%
(sqrt.f64 (*.f64 (+.f64 x x) x))
20.3%
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
99.4%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
2.1%
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 53 to 41 computations (22.6% saved)

regimes26.0ms (1.4%)

Memory
27.2MiB live, 27.2MiB allocated; 0ms collecting garbage
Accuracy

Total -11.7b remaining (-22.7%)

Threshold costs -11.7b (-22.7%)

Counts
2 → 1
6 → 1
8 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
Outputs
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
Call 2
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (+.f64 x x) x))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
Outputs
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
Call 3
Inputs
#s(approx (sqrt (* 2 (pow x 2))) (+.f64 x x))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x #s(literal -2 binary64)))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (+.f64 x x) x))
#s(approx (sqrt (* 2 (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(hypot.f64 x x)
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
Outputs
(hypot.f64 x x)
Calls

12 calls:

3.0ms
x
2.0ms
(pow.f64 x #s(literal 2 binary64))
2.0ms
(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
2.0ms
x
2.0ms
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
Results
AccuracySegmentsBranch
20.3%1(pow.f64 x #s(literal 2 binary64))
20.3%1(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
20.3%1(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
20.3%1x
99.4%1(pow.f64 x #s(literal 2 binary64))
99.4%1(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
99.4%1(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
99.4%1x
100.0%1(pow.f64 x #s(literal 2 binary64))
100.0%1(*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))
100.0%1(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
100.0%1x
Compiler

Compiled 110 to 65 computations (40.9% saved)

derivations1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 24 to 12 computations (50% saved)

preprocess90.0ms (4.8%)

Memory
-11.5MiB live, 35.7MiB allocated; 3ms collecting garbage
Compiler

Compiled 78 to 53 computations (32.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...