sqrt D (should all be same)

Time bar (total: 1.6s)

start0.0ms (0%)

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

analyze0.0ms (0%)

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

sample723.0ms (46.6%)

Memory
21.5MiB live, 623.2MiB allocated; 197ms collecting garbage
Samples
461.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 270.0ms
ival-pow2: 116.0ms (42.9% of total)
ival-sqrt: 101.0ms (37.3% of total)
ival-mult!: 52.0ms (19.2% of total)
adjust: 2.0ms (0.7% of total)
Bogosity

preprocess103.0ms (6.6%)

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

series60.0ms (3.9%)

Memory
34.8MiB live, 34.8MiB allocated; 0ms 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

rewrite156.0ms (10.1%)

Memory
-4.5MiB live, 97.4MiB allocated; 37ms 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

eval1.0ms (0.1%)

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

Compiled 120 to 41 computations (65.8% saved)

prune1.0ms (0.1%)

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

series66.0ms (4.3%)

Memory
-36.7MiB live, 55.4MiB 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
6.0ms
x
-inf
1.0ms
x
inf
1.0ms
x
0

rewrite147.0ms (9.5%)

Memory
-5.6MiB live, 97.4MiB allocated; 57ms 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))))

eval12.0ms (0.8%)

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

Compiled 1 299 to 288 computations (77.8% saved)

prune5.0ms (0.4%)

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

series62.0ms (4%)

Memory
3.6MiB live, 50.3MiB allocated; 8ms 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
1.0ms
x
inf
1.0ms
x
-inf
1.0ms
x
0

rewrite155.0ms (10%)

Memory
-18.9MiB live, 168.6MiB allocated; 25ms 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
3.2MiB live, 3.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 172 to 53 computations (69.2% saved)

prune2.0ms (0.1%)

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

regimes28.0ms (1.8%)

Memory
14.6MiB live, 60.4MiB allocated; 3ms 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:

5.0ms
x
3.0ms
x
2.0ms
(pow.f64 x #s(literal 2 binary64))
2.0ms
(sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
2.0ms
(*.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
2.2MiB live, 2.2MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 24 to 12 computations (50% saved)

preprocess25.0ms (1.6%)

Memory
12.0MiB live, 62.0MiB allocated; 7ms 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...