sqrt E (should all be same)

Time bar (total: 1.8s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB 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 6 computations (40% saved)

sample909.0ms (50%)

Memory
-12.3MiB live, 552.7MiB allocated; 258ms collecting garbage
Samples
638.0ms8 255×0valid
0.0ms1valid
Precisions
Click to see histograms. Total time spent on operations: 423.0ms
ival-pow2: 261.0ms (61.7% of total)
ival-sqrt: 125.0ms (29.5% of total)
ival-add!: 36.0ms (8.5% of total)
adjust: 2.0ms (0.5% of total)
Bogosity

preprocess92.0ms (5.1%)

Memory
0.6MiB live, 47.8MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01020
12519
27219
318919
460919
5356619
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.4%
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Symmetry

(abs x)

Compiler

Compiled 16 to 10 computations (37.5% saved)

series62.0ms (3.4%)

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

rewrite128.0ms (7.1%)

Memory
26.7MiB live, 165.4MiB allocated; 37ms collecting garbage
Counts
5 → 13
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
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) (*.f64 x x))
(-.f64 (*.f64 x x) (neg.f64 (*.f64 x x)))
(fma.f64 x x (*.f64 x x))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))

eval14.0ms (0.8%)

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

Compiled 143 to 42 computations (70.6% saved)

prune4.0ms (0.2%)

Memory
2.5MiB live, 2.5MiB 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 #s(literal 2 binary64) (*.f64 x x)))
99.4%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 37 to 27 computations (27% saved)

series88.0ms (4.8%)

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

3 calls:

TimeVariablePoint
20.0ms
x
-inf
4.0ms
x
inf
3.0ms
x
0

rewrite216.0ms (11.9%)

Memory
-5.6MiB live, 99.4MiB allocated; 60ms collecting garbage
Counts
12 → 168
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 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 (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(*.f64 #s(literal 2 binary64) (*.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 (+.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 #s(literal 2 binary64) (*.f64 x x))
(*.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 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x (+.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))))

eval38.0ms (2.1%)

Memory
-22.1MiB live, 25.6MiB allocated; 7ms collecting garbage
Compiler

Compiled 1 397 to 286 computations (79.5% saved)

prune6.0ms (0.4%)

Memory
7.1MiB live, 7.1MiB 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 (+ (pow x 2) (pow x 2))) (+.f64 x x))
99.4%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
2.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 61 to 41 computations (32.8% saved)

series64.0ms (3.5%)

Memory
-13.3MiB live, 32.8MiB allocated; 5ms collecting garbage
Counts
8 → 6
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (+ (pow x 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 (+ (pow x 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 (+ (pow x 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
2.0ms
x
-inf
1.0ms
x
0

rewrite117.0ms (6.4%)

Memory
13.8MiB live, 109.3MiB allocated; 16ms collecting garbage
Counts
8 → 14
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
(*.f64 x #s(literal -2 binary64))
x
#s(literal -2 binary64)
#s(approx (sqrt (+ (pow x 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 (* 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))
(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.0MiB live, 3.0MiB allocated; 0ms collecting garbage
Compiler

Compiled 186 to 53 computations (71.5% saved)

prune2.0ms (0.1%)

Memory
3.9MiB live, 3.9MiB 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 (+ (pow x 2) (pow x 2))) (+.f64 x x))
99.4%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
2.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
2.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
Compiler

Compiled 61 to 41 computations (32.8% saved)

regimes27.0ms (1.5%)

Memory
0.1MiB live, 45.9MiB 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 (+ (pow x 2) (pow x 2))) (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (+.f64 x x))
Call 2
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (+.f64 x x) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
Call 3
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x #s(literal -2 binary64)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (+.f64 x x) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(hypot.f64 x x)
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Outputs
(hypot.f64 x x)
Calls

12 calls:

5.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
3.0ms
x
2.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
2.0ms
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
2.0ms
(pow.f64 x #s(literal 2 binary64))
Results
AccuracySegmentsBranch
20.3%1(pow.f64 x #s(literal 2 binary64))
20.3%1(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
20.3%1(sqrt.f64 (+.f64 (pow.f64 x #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 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
99.4%1(sqrt.f64 (+.f64 (pow.f64 x #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 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
100.0%1(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
100.0%1x
Compiler

Compiled 132 to 65 computations (50.8% saved)

derivations1.0ms (0%)

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

Compiled 28 to 12 computations (57.1% saved)

preprocess46.0ms (2.5%)

Memory
-5.1MiB live, 40.1MiB allocated; 12ms collecting garbage
Compiler

Compiled 92 to 53 computations (42.4% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...