sqrt A (should all be same)

Time bar (total: 1.5s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB 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 10 to 4 computations (60% saved)

sample634.0ms (41.1%)

Memory
-2.7MiB live, 459.9MiB allocated; 229ms collecting garbage
Samples
406.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 238.0ms
ival-hypot: 223.0ms (93.6% of total)
adjust: 15.0ms (6.3% of total)
Bogosity

preprocess86.0ms (5.6%)

Memory
-17.9MiB live, 28.6MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
13819
211719
320919
460119
5325019
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.4%
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Symmetry

(abs x)

Compiler

Compiled 16 to 8 computations (50% saved)

series65.0ms (4.2%)

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

3 calls:

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

rewrite168.0ms (10.9%)

Memory
19.5MiB live, 65.1MiB allocated; 10ms collecting garbage
Counts
4 → 25
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x x)
x
Outputs
(fabs.f64 (sqrt.f64 (*.f64 x (+.f64 x x))))
(hypot.f64 x x)
(hypot.f64 (neg.f64 x) x)
(hypot.f64 (neg.f64 x) (neg.f64 x))
(hypot.f64 (neg.f64 x) (fabs.f64 x))
(hypot.f64 (fabs.f64 x) x)
(hypot.f64 (fabs.f64 x) (neg.f64 x))
(hypot.f64 (fabs.f64 x) (fabs.f64 x))
(hypot.f64 x (neg.f64 x))
(hypot.f64 x (fabs.f64 x))
(pow.f64 (*.f64 x (+.f64 x x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 x x))
(-.f64 (*.f64 x x) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 x x) (*.f64 (neg.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))
(*.f64 x x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(pow.f64 x #s(literal 2 binary64))
x

eval3.0ms (0.2%)

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

Compiled 220 to 62 computations (71.8% saved)

prune2.0ms (0.1%)

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

4 alts after pruning (4 fresh and 0 done)

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

Compiled 37 to 24 computations (35.1% saved)

series75.0ms (4.8%)

Memory
-26.2MiB live, 19.8MiB allocated; 3ms collecting garbage
Counts
12 → 5
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 (+ (* x x) (* x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(+.f64 x x)
(hypot.f64 x x)
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 x)) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64))))
#s(approx (+ x x) (*.f64 #s(literal 2 binary64) x))
Calls

3 calls:

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

rewrite174.0ms (11.3%)

Memory
30.0MiB live, 79.5MiB allocated; 19ms collecting garbage
Counts
12 → 166
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 (+ (* x x) (* x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(+.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 (neg.f64 x) #s(literal 2 binary64))
(*.f64 (+.f64 x x) #s(literal -1 binary64))
(*.f64 #s(literal 2 binary64) (neg.f64 x))
(+.f64 (neg.f64 x) (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)))
(-.f64 (neg.f64 x) x)
(fma.f64 #s(literal -1 binary64) x (neg.f64 x))
(fma.f64 x #s(literal -1 binary64) (neg.f64 x))
(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 (neg.f64 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))
(neg.f64 (*.f64 x #s(literal -2 binary64)))
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 x (+.f64 x x))))
(fabs.f64 (neg.f64 (sqrt.f64 (*.f64 x (+.f64 x x)))))
(hypot.f64 x 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 (neg.f64 x) x)
(hypot.f64 (neg.f64 x) (fabs.f64 x))
(hypot.f64 (neg.f64 x) (neg.f64 x))
(hypot.f64 x (fabs.f64 x))
(hypot.f64 x (neg.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 x (+.f64 x x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(sqrt.f64 (*.f64 (sqrt.f64 (*.f64 x (+.f64 x x))) (sqrt.f64 (*.f64 x (+.f64 x x)))))
(*.f64 x (+.f64 x x))
(*.f64 (neg.f64 x) (*.f64 x #s(literal -2 binary64)))
(*.f64 (+.f64 x x) x)
(*.f64 (*.f64 x #s(literal -2 binary64)) (neg.f64 x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.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) (fabs.f64 x)))
(+.f64 (*.f64 x x) (*.f64 x x))
(+.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 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 #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 (neg.f64 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))
(neg.f64 (*.f64 x #s(literal -2 binary64)))
(fabs.f64 (sqrt.f64 (*.f64 x (+.f64 x x))))
(fabs.f64 (neg.f64 (sqrt.f64 (*.f64 x (+.f64 x x)))))
(hypot.f64 x 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 (neg.f64 x) x)
(hypot.f64 (neg.f64 x) (fabs.f64 x))
(hypot.f64 (neg.f64 x) (neg.f64 x))
(hypot.f64 x (fabs.f64 x))
(hypot.f64 x (neg.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 x (+.f64 x x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(sqrt.f64 (*.f64 (sqrt.f64 (*.f64 x (+.f64 x x))) (sqrt.f64 (*.f64 x (+.f64 x x)))))

eval22.0ms (1.4%)

Memory
-25.2MiB live, 17.7MiB allocated; 12ms collecting garbage
Compiler

Compiled 1 354 to 258 computations (80.9% saved)

prune5.0ms (0.3%)

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

6 alts after pruning (2 fresh and 4 done)

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

Compiled 61 to 37 computations (39.3% saved)

series65.0ms (4.2%)

Memory
-10.0MiB live, 36.0MiB allocated; 12ms collecting garbage
Counts
6 → 5
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (+ (* x x) (* x x))) (+.f64 x x))
(+.f64 x x)
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 (sqrt (+ (* x x) (* x x))) (*.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

rewrite126.0ms (8.2%)

Memory
6.0MiB live, 51.3MiB allocated; 14ms collecting garbage
Counts
6 → 9
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (+ (* x x) (* x x))) (+.f64 x x))
(+.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)
x
#s(literal -2 binary64)
#s(approx (sqrt (* 2 (* x x))) (+.f64 x x))
(*.f64 #s(literal 2 binary64) x)
(+.f64 x x)
(-.f64 x (neg.f64 x))

eval1.0ms (0.1%)

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

Compiled 119 to 32 computations (73.1% saved)

prune3.0ms (0.2%)

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

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New909
Fresh000
Picked022
Done044
Total9615
Accuracy
100.0%
Counts
15 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
54.4%
(sqrt.f64 (*.f64 x (+.f64 x x)))
20.3%
#s(approx (sqrt (+ (* x x) (* x x))) (+.f64 x x))
99.4%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x #s(literal -2 binary64)))
2.1%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 61 to 37 computations (39.3% saved)

regimes51.0ms (3.3%)

Memory
-20.7MiB live, 36.2MiB allocated; 10ms collecting garbage
Accuracy

Total -11.7b remaining (-22.7%)

Threshold costs -11.7b (-22.7%)

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

12 calls:

10.0ms
(*.f64 x x)
6.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
5.0ms
x
4.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
4.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
20.3%1(*.f64 x x)
20.3%1(+.f64 (*.f64 x x) (*.f64 x x))
20.3%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
20.3%1x
99.4%1(*.f64 x x)
99.4%1(+.f64 (*.f64 x x) (*.f64 x x))
99.4%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
99.4%1x
100.0%1(*.f64 x x)
100.0%1(+.f64 (*.f64 x x) (*.f64 x x))
100.0%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
100.0%1x
Compiler

Compiled 126 to 52 computations (58.7% saved)

derivations1.0ms (0%)

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

Compiled 28 to 11 computations (60.7% saved)

preprocess63.0ms (4.1%)

Memory
17.4MiB live, 63.3MiB allocated; 24ms collecting garbage
Compiler

Compiled 92 to 47 computations (48.9% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...