sqrt E (should all be same)

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

sample587.0ms (44.7%)

Memory
38.9MiB live, 740.9MiB allocated
Samples
369.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 202.0ms
ival-pow2: 100.0ms (49.5% of total)
ival-sqrt: 58.0ms (28.7% of total)
ival-add: 36.0ms (17.8% of total)
ival-true: 6.0ms (3% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain72.0ms (5.5%)

Memory
-7.5MiB live, 115.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1270-1(-3.205063124266989e-162)(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
00-0-(pow.f64 x #s(literal 2 binary64))
00-0-#s(literal 2 binary64)
00-0-(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))oflow-rescue640
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))overflow64
(pow.f64 x #s(literal 2 binary64))overflow128
sqrt.f64(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))uflow-rescue620
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))underflow62
(pow.f64 x #s(literal 2 binary64))underflow124
Confusion
Predicted +Predicted -
+1261
-0129
Precision
1.0
Recall
0.9921259842519685
Confusion?
Predicted +Predicted MaybePredicted -
+12601
-00129
Precision?
1.0
Recall?
0.9921259842519685
Freqs
test
numberfreq
0130
1126
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
24.0ms512×0valid
Compiler

Compiled 72 to 24 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-pow2: 6.0ms (46.8% of total)
ival-sqrt: 4.0ms (31.2% of total)
ival-add: 2.0ms (15.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess19.0ms (1.5%)

Memory
-16.9MiB live, 20.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0715
11513
23513
314613
428613
531313
631513
058
086
1106
2156
3186
0183
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Outputs
(hypot.f64 x x)
Compiler

Compiled 8 to 5 computations (37.5% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune1.0ms (0.1%)

Memory
1.5MiB live, 1.5MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
53.9%
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Compiler

Compiled 8 to 5 computations (37.5% saved)

simplify3.0ms (0.2%)

Memory
3.1MiB live, 3.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff-5184
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
cost-diff192
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
cost-diff6144
(pow.f64 x #s(literal 2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0520
0816
11016
21516
31816
01813
Stop Event
iter limit
saturated
iter limit
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
(hypot.f64 x x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)

localize17.0ms (1.3%)

Memory
22.6MiB live, 22.6MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(pow.f64 x #s(literal 2 binary64))
accuracy0
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
accuracy29.528840470955043
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Samples
12.0ms256×0valid
Compiler

Compiled 42 to 12 computations (71.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-pow2: 3.0ms (48.5% of total)
ival-sqrt: 2.0ms (32.3% of total)
ival-add: 1.0ms (16.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.3%)

Memory
6.2MiB live, 6.2MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (pow.f64 x #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify7.0ms (0.5%)

Memory
-32.4MiB live, 5.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08148
115148
232148
337148
441148
553148
665148
776148
896148
9101148
0101148
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
Outputs
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))

rewrite30.0ms (2.3%)

Memory
35.6MiB live, 35.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0518
0814
12810
01709
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 33
Calls
Call 1
Inputs
(pow.f64 x #s(literal 2 binary64))
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval12.0ms (0.9%)

Memory
-21.8MiB live, 15.9MiB allocated
Compiler

Compiled 945 to 118 computations (87.5% saved)

prune5.0ms (0.3%)

Memory
9.8MiB live, 9.8MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New83487
Fresh000
Picked101
Done000
Total84488
Accuracy
100.0%
Counts
88 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
53.9%
(sqrt.f64 (*.f64 x (+.f64 x x)))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
Compiler

Compiled 36 to 25 computations (30.6% saved)

simplify12.0ms (0.9%)

Memory
12.9MiB live, 12.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(hypot.f64 x x)
cost-diff-5184
(sqrt.f64 (*.f64 x (+.f64 x x)))
cost-diff-128
(+.f64 x x)
cost-diff0
(*.f64 x (+.f64 x x))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(neg.f64 x)
cost-diff0
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01565
02552
13652
24852
35952
46552
57652
610452
712352
813852
921652
1034652
1136052
1236452
036452
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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)
x
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
x
(+.f64 x x)
(hypot.f64 x x)
x
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 x)
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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)
x
(hypot.f64 x x)
(*.f64 (*.f64 #s(literal 2 binary64) x) x)
x
(*.f64 #s(literal 2 binary64) x)
(hypot.f64 x x)
x

localize46.0ms (3.5%)

Memory
-24.9MiB live, 54.7MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.02734375
(hypot.f64 x x)
accuracy0
(+.f64 x x)
accuracy0
(*.f64 x (+.f64 x x))
accuracy29.528840470955043
(sqrt.f64 (*.f64 x (+.f64 x x)))
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0.41796875
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
accuracy31.29591355370109
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0
(neg.f64 x)
accuracy0.41796875
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
accuracy31.260703610900592
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
Samples
36.0ms256×0valid
Compiler

Compiled 126 to 31 computations (75.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 26.0ms
ival-sqrt: 11.0ms (42.3% of total)
ival-mult: 5.0ms (19.2% of total)
ival-hypot: 4.0ms (15.4% of total)
ival-pow2: 3.0ms (11.5% of total)
ival-add: 2.0ms (7.7% of total)
ival-neg: 1.0ms (3.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.5%)

Memory
10.1MiB live, 10.1MiB allocated
Counts
10 → 108
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (sqrt.f64 #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify6.0ms (0.4%)

Memory
7.1MiB live, 7.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010436
119436
233436
337436
445436
556436
667436
789436
8100436
9100436
0100436
Stop Event
iter limit
saturated
Counts
108 → 108
Calls
Call 1
Inputs
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
Outputs
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(neg.f64 x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))

rewrite32.0ms (2.4%)

Memory
-9.1MiB live, 28.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01557
02542
16642
030342
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
10 → 111
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
(sqrt.f64 #s(literal 2 binary64))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 x (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (*.f64 x (+.f64 x x)))
(hypot.f64 x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval23.0ms (1.7%)

Memory
-0.4MiB live, 36.8MiB allocated
Compiler

Compiled 2 728 to 262 computations (90.4% saved)

prune92.0ms (7%)

Memory
-15.3MiB live, 34.6MiB allocated
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New2212223
Fresh000
Picked044
Done000
Total2216227
Accuracy
100.0%
Counts
227 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
3.5%
(sqrt.f64 (+.f64 x x))
53.9%
(sqrt.f64 (*.f64 x (+.f64 x x)))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
50.6%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
Compiler

Compiled 56 to 40 computations (28.6% saved)

simplify3.0ms (0.3%)

Memory
3.8MiB live, 3.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
cost-diff-128
(+.f64 x x)
cost-diff0
(sqrt.f64 (+.f64 x x))
cost-diff0
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))
cost-diff0
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
cost-diff12480
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01345
01937
12734
23534
03531
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 1/2 binary64)
x
(sqrt.f64 (+.f64 x x))
(+.f64 x x)
x
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
(*.f64 #s(literal 1/2 binary64) (log.f64 #s(literal 2 binary64)))
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
#s(literal 1/2 binary64)
x
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
x

localize37.0ms (2.8%)

Memory
6.4MiB live, 46.1MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 x x)
accuracy0
(sqrt.f64 (+.f64 x x))
accuracy0
(log.f64 #s(literal 2 binary64))
accuracy0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
accuracy0.1953125
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
accuracy0.5
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
Samples
15.0ms128×0invalid
13.0ms128×0valid
Compiler

Compiled 84 to 28 computations (66.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 6.0ms (29.6% of total)
ival-exp: 3.0ms (14.8% of total)
ival-log: 3.0ms (14.8% of total)
ival-sqrt: 3.0ms (14.8% of total)
ival-pow2: 3.0ms (14.8% of total)
ival-add: 2.0ms (9.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series5.0ms (0.4%)

Memory
7.5MiB live, 7.5MiB allocated
Counts
7 → 48
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())
#s(alt #<batchref> (patch (log.f64 #s(literal 2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (sqrt.f64 (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 x x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
((exp (* (log 2) 1/2)) (sqrt (+ (pow x 2) (pow x 2))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (sqrt (+ x x)) (+ x x) (log 2))
1.0ms
x
@0
((exp (* (log 2) 1/2)) (sqrt (+ (pow x 2) (pow x 2))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (sqrt (+ x x)) (+ x x) (log 2))
1.0ms
x
@inf
((exp (* (log 2) 1/2)) (sqrt (+ (pow x 2) (pow x 2))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (sqrt (+ x x)) (+ x x) (log 2))

simplify9.0ms (0.7%)

Memory
11.0MiB live, 11.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015212
130212
274212
3132212
4149212
5195212
6240212
7271212
8327212
9338212
10338212
0338212
Stop Event
iter limit
saturated
Counts
48 → 48
Calls
Call 1
Inputs
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
Outputs
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 #s(literal 2 binary64) x)

rewrite27.0ms (2.1%)

Memory
-14.1MiB live, 23.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
01933
15128
026426
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
7 → 51
Calls
Call 1
Inputs
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))
(sqrt.f64 (+.f64 x x))
(+.f64 x x)
(log.f64 #s(literal 2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval9.0ms (0.7%)

Memory
19.5MiB live, 19.5MiB allocated
Compiler

Compiled 1 133 to 158 computations (86.1% saved)

prune12.0ms (0.9%)

Memory
-17.5MiB live, 19.2MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New99099
Fresh000
Picked022
Done044
Total996105
Accuracy
100.0%
Counts
105 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
3.5%
(sqrt.f64 (+.f64 x x))
53.9%
(sqrt.f64 (*.f64 x (+.f64 x x)))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
50.8%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
50.6%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
Compiler

Compiled 120 to 66 computations (45% saved)

regimes12.0ms (0.9%)

Memory
21.6MiB live, 21.6MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(hypot.f64 x x)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Outputs
(hypot.f64 x x)
Calls

4 calls:

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

Compiled 19 to 13 computations (31.6% saved)

regimes15.0ms (1.1%)

Memory
-23.5MiB live, 18.5MiB allocated
Counts
4 → 2
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Calls

4 calls:

8.0ms
(pow.f64 x #s(literal 2 binary64))
2.0ms
x
2.0ms
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
2.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Results
AccuracySegmentsBranch
99.3%2x
77.4%3(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
77.4%3(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
77.4%3(pow.f64 x #s(literal 2 binary64))
Compiler

Compiled 19 to 13 computations (31.6% saved)

regimes7.0ms (0.5%)

Memory
13.6MiB live, 13.6MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Calls

4 calls:

2.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
2.0ms
x
1.0ms
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
1.0ms
(pow.f64 x #s(literal 2 binary64))
Results
AccuracySegmentsBranch
50.8%1(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
50.8%1(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
50.8%1(pow.f64 x #s(literal 2 binary64))
50.8%1x
Compiler

Compiled 19 to 13 computations (31.6% saved)

regimes9.0ms (0.7%)

Memory
-26.3MiB live, 11.9MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 x x))
Outputs
(sqrt.f64 (+.f64 x x))
Calls

4 calls:

5.0ms
x
1.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
1.0ms
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
1.0ms
(pow.f64 x #s(literal 2 binary64))
Results
AccuracySegmentsBranch
3.5%1x
3.5%1(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
3.5%1(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
3.5%1(pow.f64 x #s(literal 2 binary64))
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch10.0ms (0.8%)

Memory
15.4MiB live, 15.4MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
-3.4272565673255887e-307
7.894148361671454e-308
Samples
5.0ms112×0valid
Compiler

Compiled 200 to 155 computations (22.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-add: 1.0ms (39% of total)
ival-sqrt: 1.0ms (39% of total)
ival-pow2: 1.0ms (39% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify25.0ms (1.9%)

Memory
6.0MiB live, 44.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01751
12551
23251
33751
44051
54151
Stop Event
saturated
Calls
Call 1
Inputs
(hypot.f64 x x)
(if (<=.f64 x #s(literal -202402253307311/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(sqrt.f64 (+.f64 x x))
Outputs
(hypot.f64 x x)
(if (<=.f64 x #s(literal -202402253307311/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(sqrt.f64 (+.f64 x x))

soundness63.0ms (4.8%)

Memory
-11.4MiB live, 71.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0518
0814
12810
01709
01557
02542
16642
030342
08148
115148
232148
337148
441148
553148
665148
776148
896148
9101148
0101148
Stop Event
done
iter limit
saturated
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
iter limit
iter limit
unsound
iter limit
Compiler

Compiled 99 to 50 computations (49.5% saved)

preprocess96.0ms (7.3%)

Memory
-8.1MiB live, 67.2MiB allocated
Compiler

Compiled 118 to 46 computations (61% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...