sqrt A (should all be same)

Time bar (total: 3.6s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

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

sample2.0s (54.2%)

Memory
13.1MiB live, 521.9MiB allocated
Samples
1.8s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 191.0ms
ival-hypot: 183.0ms (95.8% of total)
ival-true: 5.0ms (2.6% of total)
ival-assert: 3.0ms (1.6% of total)
Bogosity

explain71.0ms (1.9%)

Memory
4.9MiB live, 154.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1270-3(-7.189682313890562e-158)(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
00-0-(+.f64 (*.f64 x x) (*.f64 x x))
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))oflow-rescue690
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))overflow1
(+.f64 (*.f64 x x) (*.f64 x x))overflow70
(*.f64 x x)overflow140
sqrt.f64(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))uflow-rescue550
(+.f64 (*.f64 x x) (*.f64 x x))underflow55
(*.f64 x x)underflow110
Confusion
Predicted +Predicted -
+1244
-0128
Precision
1.0
Recall
0.96875
Confusion?
Predicted +Predicted MaybePredicted -
+12404
-00128
Precision?
1.0
Recall?
0.96875
Freqs
test
numberfreq
0132
1124
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
25.0ms512×0valid
Compiler

Compiled 50 to 16 computations (68% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-hypot: 8.0ms (54.4% of total)
ival-mult: 4.0ms (27.2% of total)
ival-add: 2.0ms (13.6% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess19.0ms (0.5%)

Memory
5.5MiB live, 43.7MiB allocated
Algorithm
egg-herbie
Rules
42×associate-*r*
32×distribute-lft-neg-in
32×sub-neg
24×neg-sub0
22×distribute-lft-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
12113
26613
316613
424713
525613
625813
048
076
1116
2146
3176
0174
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(sqrt.f64 (hypot.f64 x x))
Symmetry

(abs x)

Compiler

Compiled 8 to 4 computations (50% saved)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.4%
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Compiler

Compiled 8 to 4 computations (50% saved)

simplify3.0ms (0.1%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff-5632
(+.f64 (*.f64 x x) (*.f64 x x))
cost-diff0
(*.f64 x x)
cost-diff0
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Rules
14×lower-*.f32
12×lower-*.f64
*-commutative
count-2
associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0419
0715
11115
21415
31715
01711
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x x)
x
Outputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(sqrt.f64 (hypot.f64 x x))
(+.f64 (*.f64 x x) (*.f64 x x))
(hypot.f64 x x)
(*.f64 x x)
x

localize19.0ms (0.5%)

Memory
4.7MiB live, 42.9MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x x)
accuracy0.0078125
(+.f64 (*.f64 x x) (*.f64 x x))
accuracy29.167785908597242
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
Samples
14.0ms256×0valid
Compiler

Compiled 21 to 6 computations (71.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 4.0ms (41.6% of total)
ival-hypot: 4.0ms (41.6% of total)
ival-add: 1.0ms (10.4% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

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

3 calls:

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

simplify6.0ms (0.2%)

Memory
10.1MiB live, 10.1MiB allocated
Algorithm
egg-herbie
Rules
38×lower-*.f64
38×lower-fma.f64
38×lower-fma.f32
38×lower-*.f32
36×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08148
115148
232148
338148
442148
554148
666148
777148
897148
9102148
0102148
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(* 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)))
(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))
Outputs
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))

rewrite42.0ms (1.1%)

Memory
-35.2MiB live, 52.7MiB allocated
Rules
66×lower-*.f32
64×lower-*.f64
42×lower-fma.f64
42×lower-fma.f32
34×lower-/.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0418
0714
12310
016010
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 33
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(*.f64 x x)
(+.f64 (*.f64 x x) (*.f64 x x))
Outputs
(*.f64 (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)) (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/2 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/2 binary64)))
(pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(sqrt.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) x) x)
(*.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x (*.f64 #s(literal 2 binary64) x))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)) (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) x)
(hypot.f64 x (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 x x)
(+.f64 (*.f64 x x) (*.f64 x x))

eval8.0ms (0.2%)

Memory
17.0MiB live, 17.0MiB allocated
Compiler

Compiled 673 to 111 computations (83.5% saved)

prune3.0ms (0.1%)

Memory
9.8MiB live, 9.8MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New82385
Fresh000
Picked101
Done000
Total83386
Accuracy
99.9%
Counts
86 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
54.4%
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
99.4%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Compiler

Compiled 18 to 16 computations (11.1% saved)

simplify7.0ms (0.2%)

Memory
-30.3MiB live, 8.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 2 binary64) x)
cost-diff0
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
cost-diff0
(sqrt.f64 x)
cost-diff0
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
cost-diff-5824
(*.f64 (*.f64 x x) #s(literal 2 binary64))
cost-diff0
(*.f64 x x)
cost-diff0
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
cost-diff0
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Rules
22×lower-*.f32
12×lower-*.f64
10×lift-*.f64
lift-sqrt.f64
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01555
02453
13253
23353
03347
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(sqrt.f64 x)
x
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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 (*.f64 x x) #s(literal 2 binary64)))
(sqrt.f64 (hypot.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(hypot.f64 x x)
(*.f64 x x)
x
#s(literal 2 binary64)
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(sqrt.f64 x)
x
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)

localize38.0ms (1%)

Memory
33.0MiB live, 71.3MiB allocated
Localize:

Found 10 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 #s(literal 2 binary64) x)
accuracy0
(sqrt.f64 x)
accuracy0.23827791536057094
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
accuracy0.33041000976844204
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
accuracy0
(*.f64 x x)
accuracy0.0078125
(*.f64 (*.f64 x x) #s(literal 2 binary64))
accuracy29.167785908597242
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
accuracy0.39453125
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
Samples
28.0ms256×0valid
Compiler

Compiled 52 to 14 computations (73.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 7.0ms (41.3% of total)
ival-sqrt: 6.0ms (35.4% of total)
ival-hypot: 4.0ms (23.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series15.0ms (0.4%)

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

3 calls:

TimeVariablePointExpression
7.0ms
x
@0
((sqrt (+ (* x x) (* x x))) (* (sqrt 2) x) (sqrt 2) (sqrt (* (* x x) 2)) (* x x) (* (* x x) 2) (* (sqrt x) (sqrt (* 2 x))) (sqrt x) (sqrt (* 2 x)) (* 2 x))
3.0ms
x
@-inf
((sqrt (+ (* x x) (* x x))) (* (sqrt 2) x) (sqrt 2) (sqrt (* (* x x) 2)) (* x x) (* (* x x) 2) (* (sqrt x) (sqrt (* 2 x))) (sqrt x) (sqrt (* 2 x)) (* 2 x))
2.0ms
x
@inf
((sqrt (+ (* x x) (* x x))) (* (sqrt 2) x) (sqrt 2) (sqrt (* (* x x) 2)) (* x x) (* (* x x) 2) (* (sqrt x) (sqrt (* 2 x))) (sqrt x) (sqrt (* 2 x)) (* 2 x))

simplify138.0ms (3.8%)

Memory
22.6MiB live, 57.9MiB allocated
Algorithm
egg-herbie
Rules
1 460×associate-*r*
1 232×lower-*.f64
1 232×lower-fma.f64
1 232×lower-fma.f32
1 232×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022448
150448
2136448
3263448
4491448
5809448
61420448
71546448
81601448
91639448
101822448
112036448
122080448
132108448
142112448
152112448
162253448
172437448
183518448
193636448
203660448
213668448
223672448
233676448
243788448
253836448
263836448
274001448
04001448
Stop Event
iter limit
saturated
Counts
108 → 108
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))
(* 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))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* (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))
(* 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))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* (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 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* 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) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 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
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(* -1 (* x (sqrt 2)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* 2 (pow x 2))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)

rewrite34.0ms (0.9%)

Memory
4.1MiB live, 41.0MiB allocated
Rules
90×lower-*.f32
80×lower-*.f64
42×lower-fma.f64
42×lower-fma.f32
38×lower-pow.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01549
02446
15238
020238
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
10 → 65
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(sqrt.f64 x)
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)) (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)))
(pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64))
(sqrt.f64 #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)) (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)))
(*.f64 (fabs.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (fabs.f64 x))
(pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(sqrt.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) #s(literal 1/2 binary64)))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 x #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(*.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(*.f64 (*.f64 #s(literal 2 binary64) x) x)
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x (*.f64 #s(literal 2 binary64) x))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64))))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)) (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)))
(hypot.f64 (fabs.f64 x) (fabs.f64 x))
(hypot.f64 (fabs.f64 x) x)
(hypot.f64 x (fabs.f64 x))
(hypot.f64 x x)
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)) (pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/4 binary64)))
(*.f64 (fabs.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (fabs.f64 x))
(pow.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 #s(literal 0 binary64) (pow.f64 x #s(literal 4 binary64)))))
(sqrt.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(exp.f64 (*.f64 (log.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(exp.f64 (*.f64 (log.f64 (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x #s(literal 0 binary64)))
(/.f64 #s(literal 0 binary64) (-.f64 x x))
(+.f64 x x)

eval20.0ms (0.6%)

Memory
8.7MiB live, 46.5MiB allocated
Compiler

Compiled 1 258 to 173 computations (86.2% saved)

prune28.0ms (0.8%)

Memory
-25.5MiB live, 32.8MiB allocated
Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1703173
Fresh000
Picked123
Done000
Total1715176
Accuracy
100.0%
Counts
176 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.1%
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
54.4%
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
99.4%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
99.1%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
Compiler

Compiled 38 to 31 computations (18.4% saved)

simplify5.0ms (0.1%)

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

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
cost-diff0
(pow.f64 x #s(literal 1/4 binary64))
cost-diff0
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
cost-diff12608
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
cost-diff-128
(+.f64 x x)
cost-diff0
(sqrt.f64 (+.f64 x x))
cost-diff0
(sqrt.f64 x)
cost-diff0
(*.f64 (sqrt.f64 x) (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 (+ (* x x) (* x x))) (*.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)))
Rules
36×lower-*.f32
26×lower-*.f64
14×*-commutative
12×lift-*.f64
lower-sqrt.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02186
03468
15165
26065
06063
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.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
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 x)
x
(sqrt.f64 (+.f64 x x))
(+.f64 x x)
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 x #s(literal 1/4 binary64))
x
#s(literal 1/4 binary64)
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)
Outputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/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
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(sqrt.f64 x)
x
(sqrt.f64 (+.f64 x x))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(+.f64 x x)
(*.f64 #s(literal 2 binary64) x)
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(sqrt.f64 x)
(pow.f64 x #s(literal 1/4 binary64))
x
#s(literal 1/4 binary64)
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
#s(literal 2 binary64)

localize61.0ms (1.7%)

Memory
5.2MiB live, 81.3MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(pow.f64 x #s(literal 1/4 binary64))
accuracy0.23827791536057094
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
accuracy0.33041000976844204
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
accuracy0.49447250976844204
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
accuracy0
(+.f64 x x)
accuracy0
(sqrt.f64 x)
accuracy0.23827791536057094
(sqrt.f64 (+.f64 x x))
accuracy0.33041000976844204
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
accuracy0
(log.f64 #s(literal 2 binary64))
accuracy0
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
accuracy0.39453125
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
accuracy1.0
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
Samples
45.0ms256×0valid
Compiler

Compiled 80 to 20 computations (75% saved)

Precisions
Click to see histograms. Total time spent on operations: 34.0ms
ival-mult: 12.0ms (35.6% of total)
ival-sqrt: 5.0ms (14.9% of total)
ival-pow: 5.0ms (14.9% of total)
ival-hypot: 4.0ms (11.9% of total)
ival-exp: 3.0ms (8.9% of total)
ival-log: 3.0ms (8.9% of total)
ival-add: 1.0ms (3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series69.0ms (1.9%)

Memory
-25.7MiB live, 92.2MiB allocated
Counts
13 → 120
Calls
Call 1
Inputs
#s(alt (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) (patch (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) #<representation:binary64>) () ())
#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())
#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())
#s(alt (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)) (patch (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)) #<representation:binary64>) () ())
#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())
#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())
#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())
#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())
#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())
#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())
#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())
#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())
#s(alt (log.f64 #s(literal 2 binary64)) (patch (log.f64 #s(literal 2 binary64)) #<representation:binary64>) () ())
Outputs
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor 0 x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor -inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor -inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor -inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor -inf x) (#s(alt (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) (patch (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* 2 x) (taylor -inf x) (#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
31.0ms
x
@0
((exp (* (log 2) 1/2)) (sqrt (+ (* x x) (* x x))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)) (+ x x) (* (pow x 1/4) (pow x 1/4)) (* (* (pow x 1/4) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/4) (sqrt (* 2 x)) (log 2))
23.0ms
x
@-inf
((exp (* (log 2) 1/2)) (sqrt (+ (* x x) (* x x))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)) (+ x x) (* (pow x 1/4) (pow x 1/4)) (* (* (pow x 1/4) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/4) (sqrt (* 2 x)) (log 2))
7.0ms
x
@inf
((exp (* (log 2) 1/2)) (sqrt (+ (* x x) (* x x))) (* (exp (* (log 2) 1/2)) x) (* (log 2) 1/2) (* (sqrt x) (sqrt (+ x x))) (sqrt x) (sqrt (+ x x)) (+ x x) (* (pow x 1/4) (pow x 1/4)) (* (* (pow x 1/4) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/4) (sqrt (* 2 x)) (log 2))

simplify302.0ms (8.3%)

Memory
11.0MiB live, 86.5MiB allocated
Algorithm
egg-herbie
Rules
1 408×lower-fma.f64
1 408×lower-fma.f32
1 244×lower-*.f64
1 244×lower-*.f32
1 082×distribute-rgt-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031500
173500
2203500
3403500
4650500
51012500
61746500
72166500
82989500
93160500
103262500
113295500
123304500
133304500
143434500
153731500
163887500
174728500
185283500
195663500
205843500
215908500
226111500
236832500
247163500
257311500
267457500
277603500
287749500
297904500
307904500
317928500
327928500
337928500
07928500
Stop Event
iter limit
saturated
Counts
120 → 120
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))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt 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))
(* x (sqrt 2))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* -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 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 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)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(* -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))))
Outputs
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (sqrt 2)))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* 2 x)
(*.f64 #s(literal 2 binary64) x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -1 binary64)) (sqrt.f64 #s(literal -2 binary64))) (sqrt.f64 x)))

rewrite46.0ms (1.3%)

Memory
9.2MiB live, 54.1MiB allocated
Rules
152×lower-*.f32
142×lower-*.f64
72×lower-fma.f64
72×lower-fma.f32
56×lower-pow.f32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02176
03460
18347
032747
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
13 → 143
Calls
Call 1
Inputs
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
#s(approx (sqrt (+ (* x x) (* x x))) (*.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))
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(sqrt.f64 x)
(sqrt.f64 (+.f64 x x))
(+.f64 x x)
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(pow.f64 x #s(literal 1/4 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(log.f64 #s(literal 2 binary64))
Outputs
(*.f64 (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)) (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)))
(pow.f64 (exp.f64 #s(literal 1/2 binary64)) (log.f64 #s(literal 2 binary64)))
(pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64))
(sqrt.f64 #s(literal 2 binary64))
(exp.f64 (*.f64 #s(literal 1/2 binary64) (log.f64 #s(literal 2 binary64))))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 #s(literal 1/2 binary64) (log.f64 #s(literal 2 binary64)))
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)) (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/8 binary64))) (pow.f64 x #s(literal 1/8 binary64)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/4 binary64))))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/4 binary64))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(exp.f64 (fma.f64 (log.f64 x) #s(literal 1/4 binary64) (*.f64 (log.f64 x) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 x #s(literal 1/4 binary64))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x x)) #s(literal 1/4 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)) (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(*.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 0 binary64))))
(*.f64 (*.f64 x #s(literal 2 binary64)) x)
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x (*.f64 x #s(literal 2 binary64)))
(*.f64 x #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 #s(literal 2 binary64) x)
(/.f64 (*.f64 x (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (fma.f64 x x #s(literal 0 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 x x #s(literal 0 binary64)) (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))))
(/.f64 #s(literal 1 binary64) (*.f64 x #s(literal 2 binary64)))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (neg.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (neg.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64))) (fma.f64 x x #s(literal 0 binary64)))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
(-.f64 (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)) (/.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64)))
(-.f64 (/.f64 (*.f64 x x) #s(literal 0 binary64)) (/.f64 (*.f64 x x) #s(literal 0 binary64)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 (pow.f64 x #s(literal 1 binary64)) x)
(hypot.f64 x (pow.f64 x #s(literal 1 binary64)))
(hypot.f64 x x)
(+.f64 (*.f64 x x) (*.f64 x x))
(+.f64 x x)
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/8 binary64))) (pow.f64 x #s(literal 1/8 binary64)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/4 binary64))))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/4 binary64))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(exp.f64 (fma.f64 (log.f64 x) #s(literal 1/4 binary64) (*.f64 (log.f64 x) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 x #s(literal 1/4 binary64))) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x x)) #s(literal 1/4 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)) (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/8 binary64)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/8 binary64))
(pow.f64 x #s(literal 1/4 binary64))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)) (pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 x #s(literal 2 binary64))))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 (*.f64 x #s(literal 2 binary64)))))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(pow.f64 (*.f64 x #s(literal 2 binary64)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64)))) (sqrt.f64 (+.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x #s(literal 2 binary64))) #s(literal 1/2 binary64)))
(log.f64 #s(literal 2 binary64))

eval27.0ms (0.8%)

Memory
6.7MiB live, 45.1MiB allocated
Compiler

Compiled 2 891 to 319 computations (89% saved)

prune13.0ms (0.3%)

Memory
-12.8MiB live, 25.2MiB allocated
Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New2783281
Fresh000
Picked123
Done022
Total2797286
Accuracy
100.0%
Counts
286 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.1%
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
99.0%
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
99.0%
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
54.4%
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
99.4%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
99.1%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
Compiler

Compiled 58 to 48 computations (17.2% saved)

simplify39.0ms (1.1%)

Memory
-10.0MiB live, 28.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (+.f64 x x))
cost-diff0
(pow.f64 x #s(literal 1/4 binary64))
cost-diff0
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
cost-diff12288
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
cost-diff0
(pow.f64 x #s(literal 1/8 binary64))
cost-diff0
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
cost-diff6464
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
cost-diff12608
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
cost-diff0
(sqrt.f64 x)
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
cost-diff1600
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
Rules
1 200×lower-*.f32
1 190×lower-*.f64
1 088×associate-*r*
630×associate-*l*
344×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01992
03482
15064
27562
310262
419862
555662
6123462
7131862
8133162
9133162
10133162
11145262
12145362
13145462
0145462
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
(sqrt.f64 x)
x
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(pow.f64 x #s(literal 1/8 binary64))
x
#s(literal 1/8 binary64)
#s(literal 2 binary64)
(pow.f64 x #s(literal 1/4 binary64))
#s(literal 1/4 binary64)
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(*.f64 #s(literal 2 binary64) x)
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 x #s(literal 1/4 binary64))
x
#s(literal 1/4 binary64)
#s(literal 2 binary64)
(sqrt.f64 (+.f64 x x))
(+.f64 x x)
Outputs
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
x
(sqrt.f64 x)
x
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(sqrt.f64 x)
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(pow.f64 x #s(literal 1/4 binary64))
(pow.f64 x #s(literal 1/8 binary64))
x
#s(literal 1/8 binary64)
#s(literal 2 binary64)
(pow.f64 x #s(literal 1/4 binary64))
#s(literal 1/4 binary64)
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) x)
(*.f64 x #s(literal 2 binary64))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 (*.f64 x #s(literal 2 binary64))) (sqrt.f64 x))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(sqrt.f64 x)
(pow.f64 x #s(literal 1/4 binary64))
x
#s(literal 1/4 binary64)
#s(literal 2 binary64)
(sqrt.f64 (+.f64 x x))
(sqrt.f64 (*.f64 x #s(literal 2 binary64)))
(+.f64 x x)
(*.f64 x #s(literal 2 binary64))

localize61.0ms (1.7%)

Memory
26.3MiB live, 66.9MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(pow.f64 x #s(literal 1/4 binary64))
accuracy0.23827791536057094
(sqrt.f64 (+.f64 x x))
accuracy0.33041000976844204
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
accuracy0.49447250976844204
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
accuracy0.23827791536057094
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
accuracy0.33041000976844204
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
accuracy0.48275375976844204
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
accuracy0.49447250976844204
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
accuracy0
(sqrt.f64 x)
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0.39453125
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
accuracy0.48046875
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
Samples
47.0ms256×0valid
Compiler

Compiled 94 to 21 computations (77.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 33.0ms
ival-pow: 10.0ms (30% of total)
ival-mult: 8.0ms (24% of total)
ival-pow2: 7.0ms (21% of total)
ival-sqrt: 6.0ms (18% of total)
ival-add: 1.0ms (3% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series78.0ms (2.2%)

Memory
-34.7MiB live, 42.4MiB allocated
Counts
13 → 144
Calls
Call 1
Inputs
#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())
#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())
#s(alt (sqrt.f64 #s(literal 2 binary64)) (patch (sqrt.f64 #s(literal 2 binary64)) #<representation:binary64>) () ())
#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())
#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())
#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())
#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())
#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())
#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())
#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())
#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())
#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())
#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor 0 x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/8) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (sqrt x) (taylor inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (pow (* 1 x) 1/4) (taylor inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* (sqrt x) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 x) (sqrt.f64 x)) (patch (*.f64 (sqrt.f64 x) (sqrt.f64 x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2)))) (taylor -inf x) (#s(alt (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) (patch (*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (sqrt.f64 x) (patch (sqrt.f64 x) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) (patch (*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x))) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/8 binary64)) (patch (pow.f64 x #s(literal 1/8 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (pow (sqrt -1) 2))) (taylor -inf x) (#s(alt (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (patch (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* x (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) (patch (*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x))) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 1/4 binary64)) (patch (pow.f64 x #s(literal 1/4 binary64)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (+.f64 x x)) (patch (sqrt.f64 (+.f64 x x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
#s(alt (* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1)))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (patch (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) #<representation:binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
56.0ms
x
@0
((* (sqrt x) (sqrt x)) (* (sqrt 2) (* (sqrt x) (sqrt x))) (sqrt 2) (sqrt x) (* (pow (pow x 1/8) 2) (pow x 1/4)) (pow (pow x 1/8) 2) (* (* (pow (pow x 1/8) 2) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/8) (pow (pow x 1/4) 2) (* (pow (pow x 1/4) 2) (sqrt (+ x x))) (pow x 1/4) (sqrt (+ x x)) (sqrt (* 2 x)))
9.0ms
x
@-inf
((* (sqrt x) (sqrt x)) (* (sqrt 2) (* (sqrt x) (sqrt x))) (sqrt 2) (sqrt x) (* (pow (pow x 1/8) 2) (pow x 1/4)) (pow (pow x 1/8) 2) (* (* (pow (pow x 1/8) 2) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/8) (pow (pow x 1/4) 2) (* (pow (pow x 1/4) 2) (sqrt (+ x x))) (pow x 1/4) (sqrt (+ x x)) (sqrt (* 2 x)))
7.0ms
x
@inf
((* (sqrt x) (sqrt x)) (* (sqrt 2) (* (sqrt x) (sqrt x))) (sqrt 2) (sqrt x) (* (pow (pow x 1/8) 2) (pow x 1/4)) (pow (pow x 1/8) 2) (* (* (pow (pow x 1/8) 2) (pow x 1/4)) (sqrt (* 2 x))) (pow x 1/8) (pow (pow x 1/4) 2) (* (pow (pow x 1/4) 2) (sqrt (+ x x))) (pow x 1/4) (sqrt (+ x x)) (sqrt (* 2 x)))

simplify225.0ms (6.2%)

Memory
10.9MiB live, 92.6MiB allocated
Algorithm
egg-herbie
Rules
1 504×lower-fma.f64
1 504×lower-fma.f32
1 240×lower-*.f64
1 240×lower-*.f32
828×associate-*r/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038520
196520
2287520
3649520
41006520
51576520
62244520
72786520
83343520
93524520
103640520
113824520
123900520
134440520
144540520
154613520
164669520
174677520
184677520
194689520
204689520
214689520
04689520
Stop Event
iter limit
saturated
Counts
144 → 136
Calls
Call 1
Inputs
x
x
x
x
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
x
x
x
x
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(pow (* 1 x) 1/8)
(sqrt x)
(sqrt x)
(sqrt x)
(sqrt x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(pow (* 1 x) 1/4)
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* (sqrt x) (sqrt 2))
(* -1 (* x (pow (sqrt -1) 2)))
(* -1 (* x (pow (sqrt -1) 2)))
(* -1 (* x (pow (sqrt -1) 2)))
(* -1 (* x (pow (sqrt -1) 2)))
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(* -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))))
(* -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))))
Outputs
x
x
x
x
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
x
x
x
x
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(pow (* 1 x) 1/8)
(pow.f64 x #s(literal 1/8 binary64))
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(sqrt x)
(sqrt.f64 x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* x (sqrt 2))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(pow (* 1 x) 1/4)
(pow.f64 x #s(literal 1/4 binary64))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* (sqrt x) (sqrt 2))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(* -1 (* x (pow (sqrt -1) 2)))
x
(* -1 (* x (pow (sqrt -1) 2)))
x
(* -1 (* x (pow (sqrt -1) 2)))
x
(* -1 (* x (pow (sqrt -1) 2)))
x
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* x (* (pow (sqrt -1) 2) (sqrt 2))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/8 binary64))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/8 binary64))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/8 binary64))
(exp (* 1/8 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/8 binary64))
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* (sqrt x) (pow (sqrt -1) 2)))
(sqrt.f64 x)
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(* -1 (* x (* (sqrt -2) (sqrt -1))))
(*.f64 (neg.f64 x) (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(exp (* 1/4 (+ (log -1) (* -1 (log (/ -1 x))))))
(pow.f64 x #s(literal 1/4 binary64))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))
(* -1 (* (sqrt x) (* (sqrt -2) (sqrt -1))))
(neg.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal -2 binary64)) (sqrt.f64 #s(literal -1 binary64))) (sqrt.f64 x)))

rewrite35.0ms (1%)

Memory
24.6MiB live, 24.6MiB allocated
Rules
178×lower-*.f32
168×lower-*.f64
88×lower-pow.f32
80×lower-pow.f64
64×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01974
03438
19038
034838
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
13 → 151
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(sqrt.f64 #s(literal 2 binary64))
(sqrt.f64 x)
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(pow.f64 x #s(literal 1/8 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
(pow.f64 x #s(literal 1/4 binary64))
(sqrt.f64 (+.f64 x x))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
Outputs
(*.f64 (*.f64 (sqrt.f64 x) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (sqrt.f64 x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 x))
(pow.f64 (*.f64 x x) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 4 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 1 binary64))
(sqrt.f64 (*.f64 x x))
(fabs.f64 x)
(exp.f64 (fma.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64) (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64))))
(exp.f64 (*.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 x)) #s(literal 2 binary64)))
x
(*.f64 (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64)))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x) #s(literal 1/2 binary64))
(pow.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(sqrt.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x))
(sqrt.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)))
(*.f64 (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)) (pow.f64 #s(literal 2 binary64) #s(literal 1/4 binary64)))
(pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64))
(sqrt.f64 #s(literal 2 binary64))
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/8 binary64))) (pow.f64 x #s(literal 1/8 binary64)))
(*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/4 binary64))))
(pow.f64 (*.f64 x x) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 4 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1 binary64))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(fabs.f64 (sqrt.f64 x))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 1/4 binary64) (*.f64 (log.f64 x) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/8 binary64))) (pow.f64 x #s(literal 1/8 binary64)))
(*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/4 binary64))))
(pow.f64 (*.f64 x x) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 4 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1 binary64))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(fabs.f64 (sqrt.f64 x))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 1/4 binary64) (*.f64 (log.f64 x) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/16 binary64))) (pow.f64 x #s(literal 1/16 binary64)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/16 binary64)) (*.f64 (pow.f64 x #s(literal 1/16 binary64)) (pow.f64 x #s(literal 1/8 binary64))))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/8 binary64)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 1/4 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/8 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1/2 binary64))
(pow.f64 x #s(literal 1/4 binary64))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64)))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x) #s(literal 1/2 binary64))
(pow.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(sqrt.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x))
(sqrt.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/16 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 x #s(literal 1/16 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1/16 binary64)) (pow.f64 x #s(literal 1/16 binary64)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 1/8 binary64))
(pow.f64 (pow.f64 x #s(literal 1/16 binary64)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/16 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 1 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1/4 binary64))
(pow.f64 x #s(literal 1/8 binary64))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/8 binary64)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/8 binary64)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/8 binary64))) (pow.f64 x #s(literal 1/8 binary64)))
(*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x)))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/4 binary64))))
(pow.f64 (*.f64 x x) #s(literal 1/4 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 4 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1 binary64))
(pow.f64 x #s(literal 1/2 binary64))
(sqrt.f64 x)
(fabs.f64 (sqrt.f64 x))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 1/4 binary64) (*.f64 (log.f64 x) #s(literal 1/4 binary64))))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 2 binary64)))
(*.f64 (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (sqrt.f64 x))
(*.f64 (pow.f64 x #s(literal 1/4 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64))))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (*.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) x)) (pow.f64 x #s(literal 1/4 binary64)))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 x (sqrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x) #s(literal 1/2 binary64))
(pow.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64))
(sqrt.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(sqrt.f64 (*.f64 (*.f64 #s(literal 2 binary64) x) x))
(sqrt.f64 (*.f64 x (*.f64 #s(literal 2 binary64) x)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/16 binary64))) (pow.f64 x #s(literal 1/16 binary64)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1/2 binary64)) (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/16 binary64)) (*.f64 (pow.f64 x #s(literal 1/16 binary64)) (pow.f64 x #s(literal 1/8 binary64))))
(*.f64 (pow.f64 x #s(literal 1/8 binary64)) (pow.f64 x #s(literal 1/8 binary64)))
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 1/4 binary64))
(pow.f64 (*.f64 x x) #s(literal 1/8 binary64))
(pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 1 binary64))
(pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64))
(pow.f64 (sqrt.f64 x) #s(literal 1/2 binary64))
(pow.f64 x #s(literal 1/4 binary64))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)) #s(literal 1 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 1/4 binary64)))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(exp.f64 (*.f64 (log.f64 (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (pow.f64 x #s(literal 1/4 binary64)))
(*.f64 (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 x))
(*.f64 (sqrt.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 3 binary64)))) (sqrt.f64 (fma.f64 x x #s(literal 0 binary64))))
(sqrt.f64 (*.f64 #s(literal 2 binary64) x))
(exp.f64 (*.f64 (log.f64 (*.f64 #s(literal 2 binary64) x)) #s(literal 1/2 binary64)))

eval80.0ms (2.2%)

Memory
-11.7MiB live, 63.2MiB allocated
Compiler

Compiled 3 779 to 383 computations (89.9% saved)

prune16.0ms (0.4%)

Memory
-4.3MiB live, 33.8MiB allocated
Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New3343337
Fresh000
Picked123
Done044
Total3359344
Accuracy
100.0%
Counts
344 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.6%
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 4 binary64)) (sqrt.f64 (+.f64 x x)))
99.0%
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
99.0%
(*.f64 (*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (+.f64 x x)))
99.5%
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
98.8%
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 x)))
99.0%
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
54.4%
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
99.4%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
99.1%
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
Compiler

Compiled 203 to 107 computations (47.3% saved)

regimes16.0ms (0.4%)

Memory
25.1MiB live, 25.1MiB allocated
Counts
13 → 1
Calls
Call 1
Inputs
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(sqrt.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(sqrt.f64 (+.f64 (*.f64 x x) (*.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (sqrt.f64 x) (sqrt.f64 x)))
(*.f64 (*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (*.f64 (*.f64 (sqrt.f64 (sqrt.f64 x)) (sqrt.f64 (sqrt.f64 x))) (sqrt.f64 x)))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 4 binary64)) (sqrt.f64 (+.f64 x x)))
(*.f64 (pow.f64 (pow.f64 x #s(literal 1/4 binary64)) #s(literal 2 binary64)) (sqrt.f64 (+.f64 x x)))
(*.f64 (*.f64 (pow.f64 x #s(literal 1/4 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
(*.f64 (*.f64 (pow.f64 (pow.f64 x #s(literal 1/8 binary64)) #s(literal 2 binary64)) (pow.f64 x #s(literal 1/4 binary64))) (sqrt.f64 (*.f64 #s(literal 2 binary64) x)))
Outputs
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
Calls

4 calls:

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

Compiled 19 to 10 computations (47.4% saved)

regimes9.0ms (0.3%)

Memory
-30.9MiB live, 12.1MiB allocated
Accuracy

Total -29.0b remaining (-7340.4%)

Threshold costs -29b (-7340.4%)

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

4 calls:

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

Compiled 19 to 10 computations (47.4% saved)

simplify26.0ms (0.7%)

Memory
13.6MiB live, 52.5MiB allocated
Algorithm
egg-herbie
Rules
*-commutative-binary64-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
11420
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Outputs
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 x))
#s(approx (sqrt (+ (* x x) (* x x))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))

soundness76.0ms (2.1%)

Memory
-4.5MiB live, 33.8MiB allocated
Rules
90×lower-*.f32
80×lower-*.f64
66×lower-*.f32
64×lower-*.f64
42×lower-fma.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
08148
115148
232148
338148
442148
554148
666148
777148
897148
9102148
0102148
0418
0714
12310
016010
01549
02446
15238
020238
Stop Event
fuel
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
saturated
Compiler

Compiled 45 to 31 computations (31.1% saved)

preprocess26.0ms (0.7%)

Memory
4.7MiB live, 43.0MiB allocated
Compiler

Compiled 68 to 46 computations (32.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...