Linear.Quaternion:$clog from linear-1.19.1.3

Time bar (total: 3.8s)

start0.0ms (0%)

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

analyze2.1s (55.5%)

Memory
-215.4MiB live, 322.8MiB allocated; 2.3s collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
62.5%62.4%37.5%0.1%0%0%0%5
66.7%62.4%31.2%0.1%0%6.2%0%6
75%65.6%21.9%0.1%0%12.5%0%7
80%68.7%17.2%0.1%0%14%0%8
85.7%70.2%11.7%0.1%0%18%0%9
88.9%71.8%9%0.1%0%19.1%0%10
92.3%72.6%6%0.1%0%21.3%0%11
94.1%73.4%4.6%0.1%0%22%0%12
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample846.0ms (22.3%)

Memory
36.4MiB live, 960.8MiB allocated; 282ms collecting garbage
Samples
520.0ms8 256×0valid
13.0ms313×0invalid
Precisions
Click to see histograms. Total time spent on operations: 209.0ms
ival-sqrt: 80.0ms (38.2% of total)
ival-mult: 74.0ms (35.3% of total)
ival-add: 43.0ms (20.5% of total)
ival-true: 7.0ms (3.3% of total)
ival-assert: 3.0ms (1.4% of total)
adjust: 2.0ms (1% of total)
Bogosity

explain67.0ms (1.8%)

Memory
-14.6MiB live, 90.4MiB allocated; 15ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
880-0-(sqrt.f64 (+.f64 (*.f64 x x) y))
00-0-(+.f64 (*.f64 x x) y)
00-0-y
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (*.f64 x x) y))oflow-rescue880
(+.f64 (*.f64 x x) y)overflow88
(*.f64 x x)overflow88
Confusion
Predicted +Predicted -
+880
-0168
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+8800
-00168
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0168
188
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
26.0ms512×0valid
Compiler

Compiled 42 to 19 computations (54.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-sqrt: 7.0ms (48.9% of total)
ival-mult: 4.0ms (28% of total)
ival-add: 2.0ms (14% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess17.0ms (0.5%)

Memory
-15.5MiB live, 31.3MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01534
13234
28634
313234
417834
518034
056
086
1136
2326
3596
4746
0745
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) y))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) y))
(sqrt.f64 (fma.f64 x x y))
Symmetry

(abs x)

Compiler

Compiled 6 to 5 computations (16.7% saved)

eval0.0ms (0%)

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

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(sqrt.f64 (+.f64 (*.f64 x x) y))
Compiler

Compiled 6 to 5 computations (16.7% saved)

series7.0ms (0.2%)

Memory
10.7MiB live, 10.7MiB allocated; 0ms collecting garbage
Counts
5 → 31
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) y))
(+.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
Outputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (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) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Calls

6 calls:

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

simplify195.0ms (5.1%)

Memory
12.3MiB live, 156.0MiB allocated; 57ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0167727
1457712
21913691
07007624
Stop Event
iter limit
iter limit
node limit
Counts
31 → 31
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (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) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx y #s(hole binary64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Outputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) (sqrt.f64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) (sqrt.f64 y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) #s(literal 1/2 binary64))) (*.f64 x x) (sqrt.f64 y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) #s(literal -1/8 binary64))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) (sqrt.f64 y))))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (* x x) #s(hole binary64 (pow x 2)))
#s(approx (* x x) (*.f64 x x))
#s(approx x #s(hole binary64 x))
#s(approx x x)
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) x)
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 1/2 binary64) #s(literal 1 binary64)) x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 1/2 binary64) #s(literal 1 binary64))) x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (pow.f64 y #s(literal 3 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 1/2 binary64) #s(literal 1 binary64)))) x))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) y) (*.f64 (fma.f64 (/.f64 y (*.f64 x x)) x x) x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) (neg.f64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) x) (/.f64 y x) #s(literal -1 binary64)) x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 #s(literal 1/8 binary64) (*.f64 (/.f64 y (pow.f64 x #s(literal 4 binary64))) y) (fma.f64 (/.f64 #s(literal -1/2 binary64) x) (/.f64 y x) #s(literal -1 binary64))) x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (neg.f64 x) (fma.f64 (pow.f64 y #s(literal 3 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) (fma.f64 (/.f64 y (*.f64 x x)) #s(literal 1/2 binary64) #s(literal 1 binary64))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (/.f64 y (pow.f64 x #s(literal 3 binary64))) #s(literal -1/8 binary64) (/.f64 #s(literal 1/2 binary64) x)) y x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (fma.f64 (/.f64 y (pow.f64 x #s(literal 5 binary64))) #s(literal 1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 3 binary64)))) y (/.f64 #s(literal 1/2 binary64) x)) y x))
#s(approx y #s(hole binary64 y))
#s(approx y y)
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1/16 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 7 binary64)))) (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))))) y))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) (fma.f64 (/.f64 (*.f64 x x) y) y y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) (sqrt.f64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 7 binary64)))) (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))))) y))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) y) (*.f64 (neg.f64 y) (fma.f64 (neg.f64 x) (/.f64 x y) #s(literal -1 binary64))))

rewrite72.0ms (1.9%)

Memory
-17.3MiB live, 29.8MiB allocated; 6ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0516
0816
13016
021514
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 43
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) y))
(+.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
Outputs
(*.f64 (pow.f64 (fma.f64 x x y) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 x x y) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (sqrt.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (hypot.f64 (pow.f64 y #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3 binary64))) (sqrt.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(sqrt.f64 (fma.f64 x x y))
(exp.f64 (*.f64 (log.f64 (fma.f64 x x y)) #s(literal 1/2 binary64)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 x #s(literal 4 binary64))) (-.f64 y (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y)) (-.f64 (*.f64 x x) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 y y (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) y)
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) y)
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) y)
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) y)
(fma.f64 (neg.f64 x) (neg.f64 x) y)
(fma.f64 (fabs.f64 x) (fabs.f64 x) y)
(fma.f64 x x y)
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 x x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 x x) y)))
(-.f64 y (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 y (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 y (*.f64 (neg.f64 x) x))
(-.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 y (*.f64 x x))
(+.f64 (*.f64 x x) y)
(*.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 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
x
y

eval8.0ms (0.2%)

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

Compiled 1 121 to 270 computations (75.9% saved)

prune3.0ms (0.1%)

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

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New71475
Fresh000
Picked101
Done000
Total72476
Accuracy
100.0%
Counts
76 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(sqrt.f64 (fma.f64 x x y))
33.0%
(sqrt.f64 #s(approx (+ (* x x) y) y))
69.4%
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
69.2%
#s(approx (sqrt (+ (* x x) y)) x)
Compiler

Compiled 34 to 25 computations (26.5% saved)

series6.0ms (0.2%)

Memory
7.6MiB live, 7.6MiB allocated; 0ms collecting garbage
Counts
11 → 39
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) x)
x
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
(fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x)
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
y
(sqrt.f64 #s(approx (+ (* x x) y) y))
#s(approx (+ (* x x) y) y)
(sqrt.f64 (fma.f64 x x y))
(fma.f64 x x y)
Outputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* 1/2 (/ y x))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (/ (+ (* 1/2 y) (pow x 2)) x)))
#s(approx (/ 1/2 x) #s(hole binary64 (/ 1/2 x)))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 x))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* x (- (* -1/2 (/ y (pow x 2))) 1)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx y #s(hole binary64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* y (+ (* 1/2 (/ 1 x)) (/ x y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* y (- (* -1 (/ x y)) (* 1/2 (/ 1 x)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
((sqrt (+ (* x x) y)) x (sqrt (+ (* x x) y)) (+ (* (/ 1/2 x) y) x) (/ 1/2 x) 1/2 y (sqrt (+ (* x x) y)) (+ (* x x) y) (sqrt (+ (* x x) y)) (+ (* x x) y))
1.0ms
x
@inf
((sqrt (+ (* x x) y)) x (sqrt (+ (* x x) y)) (+ (* (/ 1/2 x) y) x) (/ 1/2 x) 1/2 y (sqrt (+ (* x x) y)) (+ (* x x) y) (sqrt (+ (* x x) y)) (+ (* x x) y))
1.0ms
x
@0
((sqrt (+ (* x x) y)) x (sqrt (+ (* x x) y)) (+ (* (/ 1/2 x) y) x) (/ 1/2 x) 1/2 y (sqrt (+ (* x x) y)) (+ (* x x) y) (sqrt (+ (* x x) y)) (+ (* x x) y))
1.0ms
y
@-inf
((sqrt (+ (* x x) y)) x (sqrt (+ (* x x) y)) (+ (* (/ 1/2 x) y) x) (/ 1/2 x) 1/2 y (sqrt (+ (* x x) y)) (+ (* x x) y) (sqrt (+ (* x x) y)) (+ (* x x) y))
1.0ms
y
@inf
((sqrt (+ (* x x) y)) x (sqrt (+ (* x x) y)) (+ (* (/ 1/2 x) y) x) (/ 1/2 x) 1/2 y (sqrt (+ (* x x) y)) (+ (* x x) y) (sqrt (+ (* x x) y)) (+ (* x x) y))

simplify224.0ms (5.9%)

Memory
-4.3MiB live, 138.9MiB allocated; 22ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0193860
1514845
22051793
07479715
Stop Event
iter limit
iter limit
node limit
Counts
39 → 39
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx x #s(hole binary64 x))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* 1/2 (/ y x))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (/ (+ (* 1/2 y) (pow x 2)) x)))
#s(approx (/ 1/2 x) #s(hole binary64 (/ 1/2 x)))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 x))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* x (- (* -1/2 (/ y (pow x 2))) 1)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx y #s(hole binary64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* y (+ (* 1/2 (/ 1 x)) (/ x y)))))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* y (- (* -1 (/ x y)) (* 1/2 (/ 1 x)))))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
Outputs
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (sqrt y)))
#s(approx (sqrt (+ (* x x) y)) (sqrt.f64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* 1/2 (* (pow x 2) (sqrt (/ 1 y)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) (sqrt.f64 y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* -1/8 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* 1/2 (sqrt (/ 1 y))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) #s(literal 1/2 binary64))) (*.f64 x x) (sqrt.f64 y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ (sqrt y) (* (pow x 2) (+ (* 1/2 (sqrt (/ 1 y))) (* (pow x 2) (+ (* -1/8 (sqrt (/ 1 (pow y 3)))) (* 1/16 (* (pow x 2) (sqrt (/ 1 (pow y 5))))))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (pow.f64 x #s(literal 4 binary64)) (fma.f64 (*.f64 #s(literal 1/16 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (*.f64 (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) #s(literal -1/8 binary64))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)) (sqrt.f64 y))))
#s(approx x #s(hole binary64 x))
#s(approx x x)
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* 1/2 (/ y x))))
#s(approx (+ (* (/ 1/2 x) y) x) (*.f64 (/.f64 #s(literal 1/2 binary64) x) y))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (/ (+ (* 1/2 y) (pow x 2)) x)))
#s(approx (+ (* (/ 1/2 x) y) x) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx (/ 1/2 x) #s(hole binary64 (/ 1/2 x)))
#s(approx (/ 1/2 x) (/.f64 #s(literal 1/2 binary64) x))
#s(approx (+ (* x x) y) #s(hole binary64 y))
#s(approx (+ (* x x) y) y)
#s(approx (+ (* x x) y) #s(hole binary64 (+ y (pow x 2))))
#s(approx (+ (* x x) y) (fma.f64 x x y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 x))
#s(approx (sqrt (+ (* x x) y)) x)
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)) x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (pow.f64 y #s(literal 3 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))) x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 x))
#s(approx (+ (* (/ 1/2 x) y) x) x)
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* x (+ 1 (* 1/2 (/ y (pow x 2)))))))
#s(approx (+ (* (/ 1/2 x) y) x) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx (+ (* x x) y) #s(hole binary64 (pow x 2)))
#s(approx (+ (* x x) y) (*.f64 x x))
#s(approx (+ (* x x) y) #s(hole binary64 (* (pow x 2) (+ 1 (/ y (pow x 2))))))
#s(approx (+ (* x x) y) (fma.f64 (/.f64 y x) x (*.f64 x x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 x)))
#s(approx (sqrt (+ (* x x) y)) (neg.f64 x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (* 1/2 (/ y (pow x 2))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal -1/2 binary64) x) y (neg.f64 x)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (* 1/2 (/ y (pow x 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) #s(literal 1 binary64)) (neg.f64 x) (*.f64 (/.f64 #s(literal -1/2 binary64) x) y)))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* x (+ 1 (+ (* -1/8 (/ (pow y 2) (pow x 4))) (+ (* 1/16 (/ (pow y 3) (pow x 6))) (* 1/2 (/ y (pow x 2))))))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (pow.f64 y #s(literal 3 binary64)) (/.f64 #s(literal 1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (fma.f64 (*.f64 #s(literal -1/8 binary64) y) (/.f64 y (pow.f64 x #s(literal 4 binary64))) #s(literal 1 binary64))) (neg.f64 x) (*.f64 (/.f64 #s(literal -1/2 binary64) x) y)))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* x (- (* -1/2 (/ y (pow x 2))) 1)))))
#s(approx (+ (* (/ 1/2 x) y) x) (neg.f64 (fma.f64 (/.f64 #s(literal -1/2 binary64) x) y (neg.f64 x))))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* -1/8 (/ y (pow x 3))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (/.f64 y (pow.f64 x #s(literal 3 binary64))) #s(literal -1/8 binary64) (/.f64 #s(literal 1/2 binary64) x)) y x))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (+ x (* y (+ (* y (- (* 1/16 (/ y (pow x 5))) (* 1/8 (/ 1 (pow x 3))))) (* 1/2 (/ 1 x)))))))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (fma.f64 (fma.f64 (/.f64 y (pow.f64 x #s(literal 5 binary64))) #s(literal 1/16 binary64) (/.f64 #s(literal -1/8 binary64) (pow.f64 x #s(literal 3 binary64)))) y (/.f64 #s(literal 1/2 binary64) x)) y x))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (+ x (* 1/2 (/ y x)))))
#s(approx (+ (* (/ 1/2 x) y) x) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
#s(approx y #s(hole binary64 y))
#s(approx y y)
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* y (+ (sqrt (/ 1 y)) (+ (* -1/8 (* (pow x 4) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (pow x 6) (sqrt (/ 1 (pow y 7))))) (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3)))))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 1/16 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 7 binary64)))) (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))))) y))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* y (+ (* 1/2 (/ 1 x)) (/ x y)))))
#s(approx (+ (* (/ 1/2 x) y) x) (*.f64 (-.f64 (/.f64 x y) (/.f64 #s(literal -1/2 binary64) x)) y))
#s(approx (+ (* x x) y) #s(hole binary64 (* y (+ 1 (/ (pow x 2) y)))))
#s(approx (+ (* x x) y) (*.f64 (fma.f64 (/.f64 x y) x #s(literal 1 binary64)) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* (sqrt y) (pow (sqrt -1) 2)))))
#s(approx (sqrt (+ (* x x) y)) (sqrt.f64 y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y)))) y))
#s(approx (sqrt (+ (* x x) y)) #s(hole binary64 (* -1 (* y (+ (* -1/8 (* (/ (pow x 4) (pow (sqrt -1) 2)) (sqrt (/ 1 (pow y 5))))) (+ (* 1/16 (* (/ (pow x 6) (pow (sqrt -1) 4)) (sqrt (/ 1 (pow y 7))))) (+ (* 1/2 (* (pow x 2) (sqrt (/ 1 (pow y 3))))) (* (sqrt (/ 1 y)) (pow (sqrt -1) 2)))))))))
#s(approx (sqrt (+ (* x x) y)) (*.f64 (fma.f64 (*.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1/8 binary64)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 5 binary64)))) (fma.f64 (*.f64 #s(literal -1/16 binary64) (pow.f64 x #s(literal 6 binary64))) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 7 binary64)))) (fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (sqrt.f64 (/.f64 #s(literal 1 binary64) (pow.f64 y #s(literal 3 binary64)))) (sqrt.f64 (/.f64 #s(literal 1 binary64) y))))) y))
#s(approx (+ (* (/ 1/2 x) y) x) #s(hole binary64 (* -1 (* y (- (* -1 (/ x y)) (* 1/2 (/ 1 x)))))))
#s(approx (+ (* (/ 1/2 x) y) x) (*.f64 (neg.f64 y) (-.f64 (/.f64 #s(literal -1/2 binary64) x) (/.f64 x y))))
#s(approx (+ (* x x) y) #s(hole binary64 (* -1 (* y (- (* -1 (/ (pow x 2) y)) 1)))))
#s(approx (+ (* x x) y) (*.f64 (neg.f64 y) (fma.f64 (neg.f64 x) (/.f64 x y) #s(literal -1 binary64))))

rewrite48.0ms (1.3%)

Memory
11.0MiB live, 56.5MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01453
02053
16053
039753
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
11 → 57
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) x)
x
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
(fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x)
(/.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
y
(sqrt.f64 #s(approx (+ (* x x) y) y))
#s(approx (+ (* x x) y) y)
(sqrt.f64 (fma.f64 x x y))
(fma.f64 x x y)
Outputs
#s(approx (sqrt (+ (* x x) y)) x)
x
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64))) (-.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64)))) (neg.f64 (fma.f64 x (-.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (*.f64 x x)) (-.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64))) (fma.f64 x x (-.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x))))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64))) (fma.f64 x (-.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64))))
(fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x)
(fma.f64 #s(literal 1/2 binary64) (/.f64 y x) x)
(fma.f64 y (/.f64 #s(literal 1/2 binary64) x) x)
(-.f64 (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)) (-.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x)))
(-.f64 x (*.f64 (neg.f64 (/.f64 #s(literal 1/2 binary64) x)) y))
(-.f64 x (*.f64 (neg.f64 y) (/.f64 #s(literal 1/2 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))) (/.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x (-.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y)) (pow.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) #s(literal 2 binary64)))))
(+.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) x) y) x)
(+.f64 x (*.f64 (/.f64 #s(literal 1/2 binary64) x) y))
(/.f64 #s(literal -1/2 binary64) (neg.f64 x))
(/.f64 #s(literal 1/2 binary64) (neg.f64 (neg.f64 x)))
(/.f64 #s(literal 1/2 binary64) x)
(neg.f64 (/.f64 #s(literal -1/2 binary64) x))
(neg.f64 (/.f64 #s(literal 1/2 binary64) (neg.f64 x)))
#s(literal 1/2 binary64)
y
(*.f64 (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 1/4 binary64)) (pow.f64 #s(approx (+ (* x x) y) y) #s(literal 1/4 binary64)))
(pow.f64 #s(approx (+ (* x x) y) y) #s(literal 1/2 binary64))
(sqrt.f64 #s(approx (+ (* x x) y) y))
(exp.f64 (*.f64 (log.f64 #s(approx (+ (* x x) y) y)) #s(literal 1/2 binary64)))
#s(approx (+ (* x x) y) y)
(*.f64 (pow.f64 (fma.f64 x x y) #s(literal 1/4 binary64)) (pow.f64 (fma.f64 x x y) #s(literal 1/4 binary64)))
(pow.f64 (fma.f64 x x y) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (sqrt.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (hypot.f64 (pow.f64 y #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3 binary64))) (sqrt.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(sqrt.f64 (fma.f64 x x y))
(exp.f64 (*.f64 (log.f64 (fma.f64 x x y)) #s(literal 1/2 binary64)))
(/.f64 (-.f64 (*.f64 y y) (pow.f64 x #s(literal 4 binary64))) (-.f64 y (*.f64 x x)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y))) (neg.f64 (-.f64 (*.f64 x x) y)))
(/.f64 (neg.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y y)) (-.f64 (*.f64 x x) y))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 y y (-.f64 (pow.f64 x #s(literal 4 binary64)) (*.f64 y (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 y #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) y)
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) y)
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) y)
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) y)
(fma.f64 (neg.f64 x) (neg.f64 x) y)
(fma.f64 (fabs.f64 x) (fabs.f64 x) y)
(fma.f64 x x y)
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 x x) y)) (/.f64 (*.f64 y y) (-.f64 (*.f64 x x) y)))
(-.f64 y (*.f64 (neg.f64 (neg.f64 x)) (neg.f64 x)))
(-.f64 y (*.f64 (neg.f64 (fabs.f64 x)) (fabs.f64 x)))
(-.f64 y (*.f64 (neg.f64 x) x))
(-.f64 y (*.f64 x (neg.f64 x)))
(+.f64 (/.f64 (pow.f64 x #s(literal 6 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))) (/.f64 (pow.f64 y #s(literal 3 binary64)) (fma.f64 y (-.f64 y (*.f64 x x)) (pow.f64 x #s(literal 4 binary64)))))
(+.f64 y (*.f64 x x))
(+.f64 (*.f64 x x) y)

eval21.0ms (0.5%)

Memory
-24.1MiB live, 21.1MiB allocated; 4ms collecting garbage
Compiler

Compiled 1 732 to 321 computations (81.5% saved)

prune4.0ms (0.1%)

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

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New1010101
Fresh000
Picked044
Done000
Total1014105
Accuracy
100.0%
Counts
105 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(sqrt.f64 (fma.f64 x x y))
33.0%
(sqrt.f64 #s(approx (+ (* x x) y) y))
69.4%
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
69.2%
#s(approx (sqrt (+ (* x x) y)) x)
Compiler

Compiled 74 to 42 computations (43.2% saved)

regimes10.0ms (0.3%)

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

5 calls:

2.0ms
y
2.0ms
x
2.0ms
(sqrt.f64 (+.f64 (*.f64 x x) y))
2.0ms
(+.f64 (*.f64 x x) y)
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%2(*.f64 x x)
100.0%2(+.f64 (*.f64 x x) y)
100.0%2(sqrt.f64 (+.f64 (*.f64 x x) y))
100.0%2x
84.7%2y
Compiler

Compiled 16 to 16 computations (0% saved)

regimes23.0ms (0.6%)

Memory
-31.9MiB live, 13.9MiB allocated; 3ms collecting garbage
Counts
4 → 2
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) x)
(sqrt.f64 #s(approx (+ (* x x) y) y))
(sqrt.f64 (fma.f64 x x y))
#s(approx (sqrt (+ (* x x) y)) (fma.f64 (/.f64 #s(literal 1/2 binary64) x) y x))
Outputs
(sqrt.f64 (fma.f64 x x y))
#s(approx (sqrt (+ (* x x) y)) x)
Calls

4 calls:

18.0ms
(sqrt.f64 (+.f64 (*.f64 x x) y))
2.0ms
x
2.0ms
(+.f64 (*.f64 x x) y)
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%2(*.f64 x x)
100.0%2(+.f64 (*.f64 x x) y)
100.0%2(sqrt.f64 (+.f64 (*.f64 x x) y))
100.0%2x
Compiler

Compiled 15 to 14 computations (6.7% saved)

regimes5.0ms (0.1%)

Memory
11.7MiB live, 11.7MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) x)
(sqrt.f64 #s(approx (+ (* x x) y) y))
Outputs
(sqrt.f64 #s(approx (+ (* x x) y) y))
#s(approx (sqrt (+ (* x x) y)) x)
Calls

4 calls:

1.0ms
x
1.0ms
(sqrt.f64 (+.f64 (*.f64 x x) y))
1.0ms
(+.f64 (*.f64 x x) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
93.1%2(*.f64 x x)
74.0%2(+.f64 (*.f64 x x) y)
74.0%2(sqrt.f64 (+.f64 (*.f64 x x) y))
93.1%2x
Compiler

Compiled 15 to 14 computations (6.7% saved)

regimes5.0ms (0.1%)

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

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) y)) x)
Outputs
#s(approx (sqrt (+ (* x x) y)) x)
Calls

5 calls:

1.0ms
x
1.0ms
y
1.0ms
(sqrt.f64 (+.f64 (*.f64 x x) y))
1.0ms
(+.f64 (*.f64 x x) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
69.2%1(+.f64 (*.f64 x x) y)
69.2%1(sqrt.f64 (+.f64 (*.f64 x x) y))
69.2%1y
69.2%1(*.f64 x x)
69.2%1x
Compiler

Compiled 16 to 16 computations (0% saved)

bsearch2.0ms (0%)

Memory
2.7MiB live, 2.7MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
1.0ms
2.711074683617067e+146
4.893058138059611e+147
Samples
1.0ms16×0valid
Compiler

Compiled 23 to 23 computations (0% saved)

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

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
0.0ms
2.711074683617067e+146
4.893058138059611e+147
Compiler

Compiled 22 to 22 computations (0% saved)

bsearch28.0ms (0.7%)

Memory
-39.7MiB live, 19.0MiB allocated; 4ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
27.0ms
4.230998621721818e-64
1.5924908486526198e-62
Samples
16.0ms25×0invalid
7.0ms112×0valid
Compiler

Compiled 121 to 108 computations (10.7% saved)

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

simplify10.0ms (0.3%)

Memory
10.1MiB live, 10.1MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02063
12563
24463
37163
48663
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal 499999999999999988998191202828830087182411944733900540386126622484631969614553746213463024711630256984884134207768538734419216153365573197681917952 binary64)) (sqrt.f64 (+.f64 (*.f64 x x) y)) #s(approx (sqrt (+ (* x x) y)) x))
(if (<=.f64 x #s(literal 499999999999999988998191202828830087182411944733900540386126622484631969614553746213463024711630256984884134207768538734419216153365573197681917952 binary64)) (sqrt.f64 (fma.f64 x x y)) #s(approx (sqrt (+ (* x x) y)) x))
(if (<=.f64 x #s(literal 6715941175764339/463168356949264781694283940034751631413079938662562256157830336031652518559744 binary64)) (sqrt.f64 #s(approx (+ (* x x) y) y)) #s(approx (sqrt (+ (* x x) y)) x))
#s(approx (sqrt (+ (* x x) y)) x)
Outputs
(if (<=.f64 x #s(literal 499999999999999988998191202828830087182411944733900540386126622484631969614553746213463024711630256984884134207768538734419216153365573197681917952 binary64)) (sqrt.f64 (+.f64 (*.f64 x x) y)) #s(approx (sqrt (+ (* x x) y)) x))
(if (<=.f64 x #s(literal 499999999999999988998191202828830087182411944733900540386126622484631969614553746213463024711630256984884134207768538734419216153365573197681917952 binary64)) (sqrt.f64 (fma.f64 x x y)) #s(approx (sqrt (+ (* x x) y)) x))
(if (<=.f64 x #s(literal 6715941175764339/463168356949264781694283940034751631413079938662562256157830336031652518559744 binary64)) (sqrt.f64 #s(approx (+ (* x x) y) y)) #s(approx (sqrt (+ (* x x) y)) x))
#s(approx (sqrt (+ (* x x) y)) x)

derivations61.0ms (1.6%)

Memory
-15.4MiB live, 31.5MiB allocated; 3ms collecting garbage
Stop Event
done
Compiler

Compiled 63 to 20 computations (68.3% saved)

preprocess26.0ms (0.7%)

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

Compiled 232 to 106 computations (54.3% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...