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.3MiB live, 0.3MiB 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)

sample550.0ms (36%)

Memory
-19.2MiB live, 451.4MiB allocated; 173ms collecting garbage
Samples
380.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 223.0ms
ival-hypot: 221.0ms (99.2% of total)
adjust: 1.0ms (0.4% of total)
Bogosity

preprocess151.0ms (9.9%)

Memory
-7.1MiB live, 38.0MiB allocated; 10ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
13419
210019
317119
442219
5205519
6740819
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
56.1%
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Symmetry

(abs x)

Compiler

Compiled 10 to 8 computations (20% saved)

series4.0ms (0.2%)

Memory
3.0MiB live, 3.0MiB 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))) #s(hole binary64 (* x (sqrt 2))))
#s(approx (+ (* x x) (* x x)) #s(hole binary64 (* 2 (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* -1 (* x (sqrt 2)))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((sqrt (+ (* x x) (* x x))) (+ (* x x) (* x x)) (* x x) x)
1.0ms
x
@0
((sqrt (+ (* x x) (* x x))) (+ (* x x) (* x x)) (* x x) x)
1.0ms
x
@-inf
((sqrt (+ (* x x) (* x x))) (+ (* x x) (* x x)) (* x x) x)

rewrite515.0ms (33.8%)

Memory
21.5MiB live, 161.8MiB allocated; 31ms collecting garbage
Counts
9 → 194
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x x)
x
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* x (sqrt 2))))
#s(approx (+ (* x x) (* x x)) #s(hole binary64 (* 2 (pow x 2))))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx x #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* -1 (* x (sqrt 2)))))
Outputs
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (fabs.f64 x))
(*.f64 (pow.f64 x #s(literal 1/2 binary64)) (pow.f64 (+.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (fabs.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(*.f64 (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) (/.f64 #s(literal 1/2 binary64) #s(literal 2 binary64))) (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) (/.f64 #s(literal 1/2 binary64) #s(literal 2 binary64))))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) (sqrt.f64 (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))))
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) #s(literal 1/2 binary64)))
(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 (pow.f64 x #s(literal 1 binary64)) x)
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (fabs.f64 x))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (neg.f64 x))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (exp.f64 (log.f64 x)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (neg.f64 (neg.f64 x)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (exp.f64 (log.f64 x)) x)
(hypot.f64 (exp.f64 (log.f64 x)) (fabs.f64 x))
(hypot.f64 (exp.f64 (log.f64 x)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (exp.f64 (log.f64 x)) (neg.f64 x))
(hypot.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(hypot.f64 (exp.f64 (log.f64 x)) (neg.f64 (neg.f64 x)))
(hypot.f64 (exp.f64 (log.f64 x)) (neg.f64 (fabs.f64 x)))
(hypot.f64 (exp.f64 (log.f64 x)) (fabs.f64 (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)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (neg.f64 x)) (exp.f64 (log.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)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (neg.f64 (fabs.f64 x)) (exp.f64 (log.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)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 x))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (exp.f64 (log.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 (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 x (exp.f64 (log.f64 x)))
(hypot.f64 x (neg.f64 (neg.f64 x)))
(hypot.f64 x (neg.f64 (fabs.f64 x)))
(hypot.f64 x (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 x) (exp.f64 (log.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 x) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (neg.f64 x) (exp.f64 (log.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 x) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 x) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) x)
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 x))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 x))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (exp.f64 (log.f64 x)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (neg.f64 x)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) x)
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 x))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 x))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (exp.f64 (log.f64 x)))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (neg.f64 x)))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (fabs.f64 x)))
(hypot.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 x (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 x) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 x) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (exp.f64 (log.f64 x)) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 (neg.f64 x)) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 x (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 x) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 x) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (exp.f64 (log.f64 x)) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 (neg.f64 x)) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(hypot.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(sqrt.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(*.f64 (+.f64 x x) x)
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 x (+.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 #s(literal 2 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 x (-.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x #s(literal 2 binary64)))
(*.f64 (fabs.f64 x) (+.f64 (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 (neg.f64 x) (-.f64 (neg.f64 x) x))
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 1 binary64))) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (*.f64 (pow.f64 x #s(literal 1 binary64)) #s(literal 2 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (+.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64))))
(+.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 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))) (/.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))))
(+.f64 (*.f64 x x) (*.f64 (neg.f64 (neg.f64 x)) x))
(-.f64 (*.f64 x x) (neg.f64 (*.f64 x x)))
(-.f64 (/.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal 0 binary64)) (/.f64 (*.f64 (*.f64 x x) (*.f64 x x)) #s(literal 0 binary64)))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 (*.f64 x x) (*.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (pow.f64 x #s(literal 1 binary64))))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (neg.f64 #s(literal 0 binary64)) (neg.f64 #s(literal 0 binary64)))
(/.f64 (*.f64 (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64)))
(/.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64)) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) (neg.f64 (fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 x x)) (pow.f64 (neg.f64 (*.f64 x x)) #s(literal 3 binary64))) (fma.f64 (*.f64 x x) (*.f64 x x) (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 (*.f64 x x) (neg.f64 (*.f64 x x))))))
(fma.f64 x x (*.f64 x x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 x x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 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 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (*.f64 x x))
(fma.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (pow.f64 x #s(literal 1 binary64))) (*.f64 x x))
(fma.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (pow.f64 x #s(literal 1 binary64))) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 (neg.f64 (neg.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 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 (neg.f64 (neg.f64 x)) x))
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.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))
(*.f64 x x)
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (pow.f64 x #s(literal 1 binary64))) (fabs.f64 (pow.f64 x #s(literal 1 binary64))))
(*.f64 (neg.f64 (pow.f64 x #s(literal 1 binary64))) (neg.f64 (pow.f64 x #s(literal 1 binary64))))
(fabs.f64 (*.f64 x x))
(+.f64 (cosh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))) (sinh.f64 (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(neg.f64 (neg.f64 (*.f64 x x)))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 (pow.f64 x #s(literal 1 binary64)) #s(literal 2 binary64))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
x
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (/ 0 0) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
#s(approx (* x x) (*.f64 x x))
#s(approx x x)
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))

eval18.0ms (1.2%)

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

Compiled 1 020 to 364 computations (64.3% saved)

prune8.0ms (0.5%)

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

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1865191
Fresh000
Picked101
Done000
Total1875192
Accuracy
100.0%
Counts
192 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
56.2%
(sqrt.f64 (*.f64 (+.f64 x x) x))
2.3%
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
99.2%
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Compiler

Compiled 56 to 56 computations (0% saved)

series9.0ms (0.6%)

Memory
-40.4MiB live, 5.5MiB allocated; 3ms collecting garbage
Counts
15 → 16
Calls
Call 1
Inputs
(hypot.f64 x x)
x
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 x)
(sqrt.f64 (+.f64 x x))
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* x (sqrt 2))))
#s(approx x #s(hole binary64 x))
#s(approx (* (sqrt 2) x) #s(hole binary64 (* x (sqrt 2))))
#s(approx (* (sqrt 2) (neg x)) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (neg x) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (* (+ x x) x)) #s(hole binary64 (* x (sqrt 2))))
#s(approx (* (+ x x) x) #s(hole binary64 (* 2 (pow x 2))))
#s(approx (+ x x) #s(hole binary64 (* 2 x)))
#s(approx (* (sqrt x) (sqrt (+ x x))) #s(hole binary64 (* x (sqrt 2))))
#s(approx (sqrt x) #s(hole binary64 (sqrt x)))
#s(approx (sqrt (+ x x)) #s(hole binary64 (* (sqrt x) (sqrt 2))))
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (sqrt (* (+ x x) x)) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (* (sqrt x) (sqrt (+ x x))) #s(hole binary64 (* -1 (* x (* (sqrt -2) (sqrt -1))))))
#s(approx (sqrt x) #s(hole binary64 (* -1 (* (sqrt x) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ x x)) #s(hole binary64 (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))))
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@inf
((sqrt (+ (* x x) (* x x))) x (sqrt (/ 0 0)) (* (sqrt 2) x) (sqrt 2) 2 (sqrt (/ 0 0)) (* (sqrt 2) (neg x)) (neg x) (sqrt (* (+ x x) x)) (* (+ x x) x) (+ x x) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)))
3.0ms
x
@-inf
((sqrt (+ (* x x) (* x x))) x (sqrt (/ 0 0)) (* (sqrt 2) x) (sqrt 2) 2 (sqrt (/ 0 0)) (* (sqrt 2) (neg x)) (neg x) (sqrt (* (+ x x) x)) (* (+ x x) x) (+ x x) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)))
2.0ms
x
@0
((sqrt (+ (* x x) (* x x))) x (sqrt (/ 0 0)) (* (sqrt 2) x) (sqrt 2) 2 (sqrt (/ 0 0)) (* (sqrt 2) (neg x)) (neg x) (sqrt (* (+ x x) x)) (* (+ x x) x) (+ x x) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)))

rewrite213.0ms (14%)

Memory
8.6MiB live, 54.4MiB allocated; 7ms collecting garbage
Counts
31 → 32
Calls
Call 1
Inputs
(hypot.f64 x x)
x
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 x)
(sqrt.f64 (+.f64 x x))
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* x (sqrt 2))))
#s(approx x #s(hole binary64 x))
#s(approx (* (sqrt 2) x) #s(hole binary64 (* x (sqrt 2))))
#s(approx (* (sqrt 2) (neg x)) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (neg x) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (* (+ x x) x)) #s(hole binary64 (* x (sqrt 2))))
#s(approx (* (+ x x) x) #s(hole binary64 (* 2 (pow x 2))))
#s(approx (+ x x) #s(hole binary64 (* 2 x)))
#s(approx (* (sqrt x) (sqrt (+ x x))) #s(hole binary64 (* x (sqrt 2))))
#s(approx (sqrt x) #s(hole binary64 (sqrt x)))
#s(approx (sqrt (+ x x)) #s(hole binary64 (* (sqrt x) (sqrt 2))))
#s(approx (sqrt (+ (* x x) (* x x))) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (sqrt (* (+ x x) x)) #s(hole binary64 (* -1 (* x (sqrt 2)))))
#s(approx (* (sqrt x) (sqrt (+ x x))) #s(hole binary64 (* -1 (* x (* (sqrt -2) (sqrt -1))))))
#s(approx (sqrt x) #s(hole binary64 (* -1 (* (sqrt x) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ x x)) #s(hole binary64 (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))))
Outputs
(hypot.f64 x x)
(sqrt.f64 (fma.f64 x x (*.f64 x x)))
x
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 x)
(sqrt.f64 (+.f64 x x))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx x x)
#s(approx (* (sqrt 2) x) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx (* (sqrt 2) (neg x)) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
#s(approx (neg x) (*.f64 #s(literal -1 binary64) x))
#s(approx (sqrt (* (+ x x) x)) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#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))
#s(approx (* (sqrt x) (sqrt (+ x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
#s(approx (sqrt x) (sqrt.f64 x))
#s(approx (sqrt (+ x x)) (*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64))))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
#s(approx (sqrt (* (+ x x) x)) (*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64)))))
#s(approx (* (sqrt x) (sqrt (+ x x))) (*.f64 #s(literal -1 binary64) (*.f64 x (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))))
#s(approx (sqrt x) (*.f64 #s(literal -1 binary64) (*.f64 (sqrt.f64 x) (pow.f64 (sqrt.f64 #s(literal -1 binary64)) #s(literal 2 binary64)))))
#s(approx (sqrt (+ x x)) (*.f64 #s(literal -1 binary64) (*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))))

eval2.0ms (0.1%)

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

Compiled 150 to 86 computations (42.7% saved)

prune3.0ms (0.2%)

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

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New22022
Fresh000
Picked055
Done000
Total22527
Accuracy
100.0%
Counts
27 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
56.2%
(sqrt.f64 (*.f64 (+.f64 x x) x))
2.3%
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
99.2%
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Compiler

Compiled 54 to 49 computations (9.3% saved)

regimes10.0ms (0.7%)

Memory
8.9MiB live, 8.9MiB allocated; 0ms collecting garbage
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(hypot.f64 x x)
Outputs
(hypot.f64 x x)
Calls

4 calls:

3.0ms
x
2.0ms
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
2.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
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 12 to 10 computations (16.7% saved)

regimes9.0ms (0.6%)

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

4 calls:

2.0ms
x
2.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
2.0ms
(*.f64 x x)
2.0ms
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Results
AccuracySegmentsBranch
99.5%1(*.f64 x x)
99.5%1(+.f64 (*.f64 x x) (*.f64 x x))
99.5%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
99.5%1x
Compiler

Compiled 12 to 10 computations (16.7% saved)

regimes7.0ms (0.5%)

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

Total -62.1b remaining (-12920.2%)

Threshold costs -62.1b (-12920.2%)

Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(sqrt.f64 (*.f64 (+.f64 x x) x))
Outputs
#s(approx (sqrt (/ 0 0)) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Calls

4 calls:

2.0ms
x
2.0ms
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
2.0ms
(*.f64 x x)
2.0ms
(+.f64 (*.f64 x x) (*.f64 x x))
Results
AccuracySegmentsBranch
99.2%1(*.f64 x x)
99.2%1(+.f64 (*.f64 x x) (*.f64 x x))
99.2%1(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
99.2%1x
Compiler

Compiled 12 to 10 computations (16.7% saved)

derivations1.0ms (0%)

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

Compiled 13 to 13 computations (0% saved)

preprocess26.0ms (1.7%)

Memory
-16.9MiB live, 29.5MiB allocated; 3ms collecting garbage
Compiler

Compiled 48 to 47 computations (2.1% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...