sqrt E (should all be same)

Time bar (total: 2.2s)

start0.0ms (0%)

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

sample599.0ms (27.8%)

Memory
25.1MiB live, 807.1MiB allocated
Samples
387.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 243.0ms
ival-pow2: 118.0ms (48.5% of total)
ival-sqrt: 68.0ms (27.9% of total)
ival-add: 48.0ms (19.7% of total)
ival-true: 6.0ms (2.5% of total)
ival-assert: 3.0ms (1.2% of total)
Bogosity

explain71.0ms (3.3%)

Memory
-19.3MiB live, 94.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1300-3(3.397533577224967e-160)(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
00-0-(pow.f64 x #s(literal 2 binary64))
00-0-#s(literal 2 binary64)
00-0-(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
sqrt.f64(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))uflow-rescue640
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))underflow64
(pow.f64 x #s(literal 2 binary64))underflow128
sqrt.f64(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))oflow-rescue630
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))overflow63
(pow.f64 x #s(literal 2 binary64))overflow126
Confusion
Predicted +Predicted -
+1273
-0126
Precision
1.0
Recall
0.9769230769230769
Confusion?
Predicted +Predicted MaybePredicted -
+12703
-00126
Precision?
1.0
Recall?
0.9769230769230769
Freqs
test
numberfreq
0129
1127
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
25.0ms512×0valid
Compiler

Compiled 53 to 19 computations (64.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-pow2: 6.0ms (42.1% of total)
ival-sqrt: 5.0ms (35.1% of total)
ival-add: 2.0ms (14% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess17.0ms (0.8%)

Memory
22.6MiB live, 22.6MiB allocated
Algorithm
egg-herbie
Rules
58×associate-*r*
54×unsub-neg
38×distribute-rgt-neg-out
38×distribute-lft-neg-out
38×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 9 to 5 computations (44.4% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

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

Compiled 9 to 5 computations (44.4% saved)

simplify8.0ms (0.4%)

Memory
-38.3MiB live, 4.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
cost-diff320
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
cost-diff6144
(pow.f64 x #s(literal 2 binary64))
Rules
14×lower-*.f64
14×lower-*.f32
*-commutative
count-2
associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0520
0816
11016
21516
31816
01813
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(pow.f64 x #s(literal 2 binary64))
x
#s(literal 2 binary64)
Outputs
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(*.f64 (+.f64 x x) x)
(pow.f64 x #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)

localize16.0ms (0.7%)

Memory
23.1MiB live, 23.1MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 22 to 7 computations (68.2% saved)

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

series4.0ms (0.2%)

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

3 calls:

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

simplify5.0ms (0.2%)

Memory
6.2MiB live, 6.2MiB 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
337148
441148
553148
665148
776148
896148
9101148
0101148
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
Outputs
(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))
(* 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)))

rewrite35.0ms (1.6%)

Memory
4.5MiB live, 42.4MiB allocated
Rules
70×lower-*.f64
70×lower-*.f32
44×lower-fma.f64
44×lower-fma.f32
34×lower-pow.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0518
0814
12810
01709
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 33
Calls
Call 1
Inputs
(pow.f64 x #s(literal 2 binary64))
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
Outputs
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(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 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 x (+.f64 x x))
(/.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (neg.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))))
(/.f64 #s(literal 1 binary64) (*.f64 x (+.f64 x x)))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(fma.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)) (*.f64 x x))
(fma.f64 x x (*.f64 x x))
(-.f64 (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64)) (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 (pow.f64 (*.f64 x (+.f64 x x)) #s(literal 1/4 binary64)) (pow.f64 (*.f64 x (+.f64 x x)) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (sqrt.f64 (*.f64 x x)))
(*.f64 (pow.f64 #s(literal 2 binary64) #s(literal 1/2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(pow.f64 (*.f64 x (+.f64 x x)) #s(literal 1/2 binary64))
(/.f64 (sqrt.f64 #s(literal 0 binary64)) (sqrt.f64 #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(hypot.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(hypot.f64 (exp.f64 (log.f64 x)) x)
(hypot.f64 x (exp.f64 (log.f64 x)))
(hypot.f64 x x)
(exp.f64 (*.f64 (log.f64 (*.f64 x (+.f64 x x))) #s(literal 1/2 binary64)))

eval12.0ms (0.6%)

Memory
-18.0MiB live, 19.8MiB allocated
Compiler

Compiled 774 to 103 computations (86.7% saved)

prune9.0ms (0.4%)

Memory
18.6MiB live, 18.6MiB allocated
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New82587
Fresh000
Picked101
Done000
Total83588
Accuracy
100.0%
Counts
88 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
17.2%
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
53.2%
(sqrt.f64 (*.f64 x (+.f64 x x)))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
53.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
Compiler

Compiled 100 to 50 computations (50% saved)

simplify230.0ms (10.7%)

Memory
-24.4MiB live, 92.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
cost-diff0
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
cost-diff64
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
cost-diff1280
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
cost-diff0
(+.f64 x x)
cost-diff0
(*.f64 x (+.f64 x x))
cost-diff0
(sqrt.f64 (*.f64 x (+.f64 x x)))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(neg.f64 x)
cost-diff0
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
cost-diff0
(sqrt.f64 #s(literal 2 binary64))
cost-diff0
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
cost-diff5312
(hypot.f64 x x)
Rules
2 560×lower-fma.f32
2 558×lower-fma.f64
1 984×lower-*.f32
1 974×lower-*.f64
1 226×unsub-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
022149
038125
157105
211898
321592
430192
557692
668592
773492
889692
9137992
10228492
11297992
12314392
13330992
14334192
15376592
16397192
17397792
18397792
19397792
20397792
21399792
22400592
23400592
24400592
25401192
0401192
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(hypot.f64 x x)
x
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
x
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
x
(+.f64 x x)
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(*.f64 x x)
x
#s(literal 0 binary64)
(*.f64 x (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
Outputs
(hypot.f64 x x)
(sqrt.f64 (*.f64 (+.f64 x x) x))
x
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
x
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
x
(sqrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(sqrt.f64 (*.f64 x (+.f64 x x)))
(sqrt.f64 (*.f64 (+.f64 x x) x))
(*.f64 x (+.f64 x x))
(*.f64 (+.f64 x x) x)
x
(+.f64 x x)
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) (*.f64 (*.f64 x x) x))) (*.f64 x x))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) (*.f64 (*.f64 x x) x)))
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) (*.f64 (*.f64 x x) x))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 x x)
x
#s(literal 0 binary64)
(*.f64 x (+.f64 x x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(*.f64 x x)

localize59.0ms (2.7%)

Memory
6.0MiB live, 81.9MiB allocated
Localize:

Found 15 expressions of interest:

NewMetricScoreProgram
accuracy0.109375
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
accuracy10.02233057032397
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
accuracy14.650927223198476
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
accuracy40.49702220496416
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
accuracy0
(+.f64 x x)
accuracy0
(*.f64 x (+.f64 x x))
accuracy29.963682352233448
(sqrt.f64 (*.f64 x (+.f64 x x)))
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0
(neg.f64 x)
accuracy0.43359375
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
accuracy29.829060396763886
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
accuracy0
(sqrt.f64 #s(literal 2 binary64))
accuracy0.43359375
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
accuracy32.742611001342006
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
accuracy0.01171875
(hypot.f64 x x)
Samples
45.0ms256×0valid
Compiler

Compiled 151 to 23 computations (84.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-mult: 9.0ms (28.5% of total)
ival-sqrt: 8.0ms (25.3% of total)
ival-hypot: 5.0ms (15.8% of total)
ival-pow2: 4.0ms (12.7% of total)
ival-add: 3.0ms (9.5% of total)
ival-div: 1.0ms (3.2% of total)
ival-neg: 1.0ms (3.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series10.0ms (0.5%)

Memory
16.0MiB live, 16.0MiB allocated
Counts
14 → 156
Calls
Call 1
Inputs
#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())
#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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 #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())
#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())
#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())
#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())
#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())
#s(alt (+.f64 x x) (patch (+.f64 x x) #<representation binary64>) () ())
#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())
#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())
Outputs
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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 #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.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 (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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 #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.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 (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (hypot.f64 x x) (patch (hypot.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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 #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) (patch (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 x (+.f64 x x))) (patch (sqrt.f64 (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 x (+.f64 x x)) (patch (*.f64 x (+.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 (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify80.0ms (3.7%)

Memory
-27.0MiB live, 20.8MiB allocated
Algorithm
egg-herbie
Rules
130×lower-*.f64
130×lower-fma.f64
130×lower-fma.f32
130×lower-*.f32
66×distribute-lft-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
016636
132636
266636
3116636
4144636
5190636
6225636
7277636
8293636
9293636
0293636
Stop Event
iter limit
saturated
Counts
156 → 156
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))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (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))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 (pow x 2))
(* 2 x)
(* 2 x)
(* 2 x)
(* 2 x)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 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)
(* 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)
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(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)
(* 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))
(* 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)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 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 x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) 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)
(* 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)
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(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)
(* 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))
(* 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)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 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 x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* -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)))
(* -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)))
(*.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)))
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -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)))
(* 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))
(* 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)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 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)))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))

rewrite49.0ms (2.3%)

Memory
21.2MiB live, 59.9MiB allocated
Rules
178×lower-*.f32
172×lower-*.f64
140×lower-fma.f32
138×lower-fma.f64
104×lower-/.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022114
03859
111738
087638
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
14 → 75
Calls
Call 1
Inputs
(hypot.f64 x x)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(sqrt.f64 #s(literal 2 binary64))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(neg.f64 x)
(sqrt.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
Outputs
#s(literal 0 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) x)
(*.f64 x (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)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal -1 binary64)) x)
(*.f64 (neg.f64 (sqrt.f64 #s(literal 2 binary64))) x)
(*.f64 #s(literal -1 binary64) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(*.f64 x (neg.f64 (sqrt.f64 #s(literal 2 binary64))))
(neg.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(-.f64 #s(literal 0 binary64) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
(*.f64 #s(literal -1 binary64) x)
(*.f64 x #s(literal -1 binary64))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 x x) x)) (+.f64 #s(literal 0 binary64) (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 #s(literal 0 binary64) x))
(neg.f64 x)
(-.f64 #s(literal 0 binary64) x)
(+.f64 #s(literal 0 binary64) (neg.f64 x))
#s(literal 0 binary64)
#s(literal 0 binary64)
#s(literal 0 binary64)
(*.f64 (pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/4 binary64)) (pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 (*.f64 x x) x)) (sqrt.f64 x))
(*.f64 (sqrt.f64 (*.f64 x x)) (sqrt.f64 (*.f64 x x)))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 1/2 binary64)) (sqrt.f64 x))
(*.f64 (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 (*.f64 x x) x)))
(*.f64 (sqrt.f64 x) (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 1/2 binary64)))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 x x) x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))))
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x (*.f64 (*.f64 x x) x))
(pow.f64 (*.f64 x x) #s(literal 2 binary64))
(pow.f64 x #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))) #s(literal 0 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))) (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)))
(/.f64 (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))) (neg.f64 (*.f64 (*.f64 (*.f64 x x) x) x)))
(/.f64 (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)))) (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)) (*.f64 (*.f64 (*.f64 x x) x) x))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)))))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)))
(fma.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 0 binary64))
(fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))
(fma.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 x x))) #s(literal 0 binary64))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(fma.f64 x (*.f64 (*.f64 x x) x) #s(literal 0 binary64))
(-.f64 (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 (*.f64 (*.f64 x x) x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))
(-.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 2 binary64) (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x x)) #s(literal 2 binary64)))
(+.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 x x) x) x))
#s(literal 0 binary64)
#s(literal 0 binary64)

eval40.0ms (1.9%)

Memory
-12.7MiB live, 58.8MiB allocated
Compiler

Compiled 5 054 to 307 computations (93.9% saved)

prune28.0ms (1.3%)

Memory
6.1MiB live, 55.9MiB allocated
Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New2955300
Fresh000
Picked145
Done000
Total2969305
Accuracy
100.0%
Counts
305 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
18.3%
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
17.2%
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
53.2%
(sqrt.f64 (*.f64 x (+.f64 x x)))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
53.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
52.9%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
3.8%
#s(literal 0 binary64)
Compiler

Compiled 156 to 91 computations (41.7% saved)

simplify220.0ms (10.2%)

Memory
-2.4MiB live, 73.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))
cost-diff0
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
cost-diff12480
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
cost-diff0
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
cost-diff0
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
cost-diff64
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
cost-diff1280
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
cost-diff0
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
cost-diff0
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
cost-diff0
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
cost-diff64
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
cost-diff0
(neg.f64 x)
cost-diff0
(*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))
cost-diff0
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
cost-diff12480
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
Rules
2 560×lower-fma.f32
2 558×lower-fma.f64
1 988×lower-*.f32
1 972×lower-*.f64
1 226×unsub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028241
048208
177164
2148152
3235140
4319140
5586140
6695140
7761140
8924140
91418140
102327140
113025140
123194140
133360140
143392140
153816140
164022140
174028140
184028140
194028140
204028140
214048140
224056140
234056140
244056140
254062140
04062134
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
(*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))
(neg.f64 x)
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)
#s(literal 0 binary64)
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(*.f64 x x)
x
#s(literal 0 binary64)
(*.f64 x (+.f64 x x))
(+.f64 x x)
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
(*.f64 x (+.f64 x x))
(+.f64 x x)
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
#s(literal 0 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)
(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
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x)))
(*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 x)
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)
#s(literal 0 binary64)
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))) (*.f64 x x))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x)))
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 x x)
x
#s(literal 0 binary64)
(*.f64 x (+.f64 x x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))) (*.f64 x x))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
(*.f64 x (+.f64 x x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(*.f64 x x)
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(*.f64 (*.f64 (*.f64 x x) x) x)
#s(literal 0 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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

localize148.0ms (6.9%)

Memory
-6.1MiB live, 114.3MiB allocated
Localize:

Found 16 expressions of interest:

NewMetricScoreProgram
accuracy0
(log.f64 #s(literal 2 binary64))
accuracy0.43359375
(*.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)))
accuracy32.742611001342006
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
accuracy0.109375
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
accuracy10.02233057032397
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
accuracy14.650927223198476
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
accuracy40.49702220496416
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
accuracy0.0703125
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
accuracy0.109375
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
accuracy10.02233057032397
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
accuracy40.49702220496416
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
accuracy0
(log.f64 #s(literal 2 binary64))
accuracy0.43359375
(*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))
accuracy1.0
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
accuracy29.829060396763886
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
Samples
68.0ms256×0valid
Compiler

Compiled 233 to 29 computations (87.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 38.0ms
ival-mult: 15.0ms (39.8% of total)
ival-sqrt: 6.0ms (15.9% of total)
ival-div: 3.0ms (8% of total)
ival-add: 3.0ms (8% of total)
ival-exp: 3.0ms (8% of total)
ival-log: 3.0ms (8% of total)
ival-pow2: 3.0ms (8% of total)
ival-neg: 1.0ms (2.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series11.0ms (0.5%)

Memory
24.5MiB live, 24.5MiB allocated
Counts
15 → 144
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 (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())
#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())
#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())
#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())
#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())
#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())
#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())
#s(alt (*.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 (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 (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 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 inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 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))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) (patch (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (patch (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) (patch (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) (patch (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) (patch #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 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>) () ())) ())
Calls

3 calls:

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

simplify14.0ms (0.7%)

Memory
-24.3MiB live, 13.8MiB allocated
Algorithm
egg-herbie
Rules
122×lower-*.f64
122×lower-*.f32
118×lower-fma.f64
118×lower-fma.f32
58×distribute-lft-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017624
132624
264624
3113624
4141624
5187624
6223624
7268624
8281624
9281624
0281624
Stop Event
iter limit
saturated
Counts
144 → 144
Calls
Call 1
Inputs
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (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))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (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))
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)
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 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 x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #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)
(* 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 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) 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)
(* 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)
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 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 x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #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)
(* 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 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) 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)
(* 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 (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)))
(* -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)))
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 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)))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #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)
(* -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)))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -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)

rewrite56.0ms (2.6%)

Memory
6.2MiB live, 44.7MiB allocated
Rules
184×lower-*.f32
172×lower-*.f64
140×lower-fma.f32
138×lower-fma.f64
126×lower-/.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
028164
048138
114843
094043
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
15 → 78
Calls
Call 1
Inputs
(exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
(*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))))
(neg.f64 x)
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x))))
(*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))
(sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
(*.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))
(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 (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) #s(literal -1 binary64)) x)
(*.f64 (neg.f64 (sqrt.f64 #s(literal 2 binary64))) x)
(*.f64 #s(literal -1 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))
(*.f64 x (neg.f64 (sqrt.f64 #s(literal 2 binary64))))
(*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))
(neg.f64 (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(-.f64 #s(literal 0 binary64) (*.f64 x (sqrt.f64 #s(literal 2 binary64))))
(*.f64 #s(literal -1 binary64) x)
(*.f64 x #s(literal -1 binary64))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 x x) x)) (+.f64 #s(literal 0 binary64) (fma.f64 x x #s(literal 0 binary64))))
(/.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 #s(literal 0 binary64) x))
(neg.f64 x)
(-.f64 #s(literal 0 binary64) x)
(+.f64 #s(literal 0 binary64) (neg.f64 x))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x (*.f64 (*.f64 x x) x))
(pow.f64 (*.f64 x x) #s(literal 2 binary64))
(pow.f64 x #s(literal 4 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 0 binary64)) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)))
(/.f64 (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))) (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)))
(/.f64 (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))) (neg.f64 (*.f64 (*.f64 (*.f64 x x) x) x)))
(/.f64 (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))) (neg.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x)) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)))
(fma.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 0 binary64))
(fma.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))) #s(literal 0 binary64))
(fma.f64 (*.f64 (*.f64 x x) x) x #s(literal 0 binary64))
(fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))
(fma.f64 x (*.f64 (*.f64 x x) x) #s(literal 0 binary64))
(-.f64 (fma.f64 (*.f64 (*.f64 x x) x) x (*.f64 (*.f64 (*.f64 x x) x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))
(-.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64))
(exp.f64 (fma.f64 (log.f64 x) #s(literal 2 binary64) (*.f64 (log.f64 x) #s(literal 2 binary64))))
(exp.f64 (*.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 x x)) #s(literal 2 binary64)))
(+.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 (*.f64 (*.f64 x x) x) x))
#s(literal 0 binary64)
#s(literal 0 binary64)
#s(literal 0 binary64)
(*.f64 (pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/4 binary64)) (pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 x x)) (sqrt.f64 (*.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (*.f64 (*.f64 x x) x)))
(*.f64 (sqrt.f64 (*.f64 (*.f64 x x) x)) (sqrt.f64 x))
(*.f64 (exp.f64 (log.f64 x)) (exp.f64 (log.f64 x)))
(*.f64 (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)) (pow.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 1/2 binary64)) (pow.f64 x #s(literal 1/2 binary64)))
(*.f64 (pow.f64 x #s(literal 1/2 binary64)) (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 1/2 binary64)))
(*.f64 x x)
(pow.f64 (exp.f64 (log.f64 x)) #s(literal 2 binary64))
(pow.f64 (*.f64 (*.f64 (*.f64 x x) x) x) #s(literal 1/2 binary64))
(pow.f64 (*.f64 x x) #s(literal 1 binary64))
(pow.f64 x #s(literal 2 binary64))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) x))) (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 (*.f64 x x) x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 x x) x) x))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 1/2 binary64)))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))
#s(literal 0 binary64)
#s(literal 0 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.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))
(log.f64 #s(literal 2 binary64))

eval63.0ms (2.9%)

Memory
-5.9MiB live, 36.3MiB allocated
Compiler

Compiled 4 273 to 306 computations (92.8% saved)

prune27.0ms (1.2%)

Memory
-0.1MiB live, 37.4MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New2681269
Fresh000
Picked235
Done044
Total2708278
Accuracy
100.0%
Counts
278 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
18.3%
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
53.2%
(sqrt.f64 (*.f64 x (+.f64 x x)))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
53.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
52.9%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
3.8%
#s(literal 0 binary64)
Compiler

Compiled 64 to 41 computations (35.9% saved)

simplify6.0ms (0.3%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (*.f64 (*.f64 x x) x) x)
cost-diff0
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
cost-diff0
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
cost-diff0
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
Rules
114×lower-*.f32
104×lower-*.f64
66×associate-*r*
38×associate-*l*
30×lower-fma.f64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0969
01769
13159
27145
310839
411639
511739
011739
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
(*.f64 x (+.f64 x x))
(+.f64 x x)
Outputs
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))) (*.f64 x x))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 x x) x) x) x) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) x)
(*.f64 x x)
x
(*.f64 x (+.f64 x x))
(*.f64 (+.f64 x x) x)
(+.f64 x x)

localize30.0ms (1.4%)

Memory
14.5MiB live, 51.2MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0703125
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
accuracy0.0703125
(*.f64 (*.f64 (*.f64 x x) x) x)
accuracy10.02233057032397
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
accuracy40.49702220496416
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
Samples
23.0ms256×0valid
Compiler

Compiled 71 to 11 computations (84.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 8.0ms (48.3% of total)
ival-add: 5.0ms (30.2% of total)
ival-div: 2.0ms (12.1% of total)
ival-sqrt: 2.0ms (12.1% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.4%)

Memory
-22.6MiB live, 13.2MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())
Outputs
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor 0 x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor 0 x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor 0 x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* x (sqrt 2)) (taylor inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (sqrt 2)) (taylor inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (sqrt 2))) (taylor -inf x) (#s(alt (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) (patch (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (sqrt 2))) (taylor -inf x) (#s(alt (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (patch (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* 2 (pow x 6)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) (patch (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
#s(alt (pow x 4) (taylor -inf x) (#s(alt (*.f64 (*.f64 (*.f64 x x) x) x) (patch (*.f64 (*.f64 (*.f64 x x) x) x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify9.0ms (0.4%)

Memory
21.0MiB live, 21.0MiB allocated
Algorithm
egg-herbie
Rules
122×lower-*.f64
122×lower-*.f32
118×lower-fma.f64
118×lower-fma.f32
56×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015224
129224
260224
3109224
4127224
5168224
6201224
7230224
8260224
9262224
0262224
Stop Event
iter limit
saturated
Counts
48 → 48
Calls
Call 1
Inputs
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* x (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* (pow x 3) (sqrt 2))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* x (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* -1 (* (pow x 3) (sqrt 2)))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(* 2 (pow x 6))
(pow x 4)
(pow x 4)
(pow x 4)
(pow x 4)
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 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 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 x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* (pow x 3) (sqrt 2))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) x)
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 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)))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* -1 (* (pow x 3) (sqrt 2)))
(*.f64 (*.f64 (*.f64 (sqrt.f64 #s(literal 2 binary64)) x) x) (neg.f64 x))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(* 2 (pow x 6))
(*.f64 (pow.f64 x #s(literal 6 binary64)) #s(literal 2 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))
(pow x 4)
(pow.f64 x #s(literal 4 binary64))

rewrite36.0ms (1.7%)

Memory
-19.6MiB live, 36.9MiB allocated
Rules
150×lower-*.f32
140×lower-*.f64
100×lower-/.f32
98×lower-/.f64
52×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0952
01744
15318
032116
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 88
Calls
Call 1
Inputs
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x))))
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) x) x)
Outputs
(*.f64 (/.f64 (fabs.f64 (*.f64 x x)) x) (/.f64 (sqrt.f64 (+.f64 x x)) x))
(*.f64 (fabs.f64 (*.f64 x x)) (/.f64 (sqrt.f64 (+.f64 x x)) (*.f64 x x)))
(*.f64 (/.f64 (sqrt.f64 (+.f64 x x)) x) (/.f64 #s(literal 1 binary64) x))
(*.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) (sqrt.f64 (+.f64 x x)))
(*.f64 #s(literal 1 binary64) (/.f64 (sqrt.f64 (+.f64 x x)) (*.f64 x x)))
(*.f64 (neg.f64 (sqrt.f64 (+.f64 x x))) (/.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x) x)))
(*.f64 (sqrt.f64 (+.f64 x x)) (/.f64 #s(literal 1 binary64) (*.f64 x x)))
(pow.f64 (/.f64 (*.f64 x x) (sqrt.f64 (+.f64 x x))) #s(literal -1 binary64))
(/.f64 (*.f64 (sqrt.f64 (+.f64 x x)) #s(literal 1 binary64)) (*.f64 x x))
(/.f64 (neg.f64 (/.f64 (sqrt.f64 (+.f64 x x)) x)) (neg.f64 x))
(/.f64 (neg.f64 (neg.f64 (sqrt.f64 (+.f64 x x)))) (neg.f64 (*.f64 (neg.f64 x) x)))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 (*.f64 x x) (sqrt.f64 (+.f64 x x)))))
(/.f64 (/.f64 (sqrt.f64 (+.f64 x x)) x) x)
(/.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (sqrt.f64 (+.f64 x x)) x)))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 x x) (sqrt.f64 (+.f64 x x))) #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (sqrt.f64 (+.f64 x x))))
(/.f64 (neg.f64 (sqrt.f64 (+.f64 x x))) (*.f64 (neg.f64 x) x))
(/.f64 (sqrt.f64 (+.f64 x x)) (*.f64 x x))
(neg.f64 (/.f64 (neg.f64 (sqrt.f64 (+.f64 x x))) (*.f64 x x)))
(neg.f64 (/.f64 (sqrt.f64 (+.f64 x x)) (*.f64 (neg.f64 x) x)))
(*.f64 (pow.f64 (+.f64 x x) #s(literal 1/4 binary64)) (pow.f64 (+.f64 x x) #s(literal 1/4 binary64)))
(*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 (*.f64 (*.f64 x x) x)) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 x) (sqrt.f64 (+.f64 x x)))
(*.f64 (pow.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) #s(literal 1/2 binary64)) (sqrt.f64 (+.f64 x x)))
(*.f64 (fabs.f64 (*.f64 x x)) (sqrt.f64 (+.f64 x x)))
(*.f64 (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 1/2 binary64)) (sqrt.f64 (+.f64 x x)))
(*.f64 (sqrt.f64 (+.f64 x x)) (sqrt.f64 x))
(*.f64 (sqrt.f64 (+.f64 x x)) (fabs.f64 (*.f64 x x)))
(pow.f64 (+.f64 x x) #s(literal 1/2 binary64))
(sqrt.f64 (+.f64 x x))
(hypot.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 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)
(exp.f64 (*.f64 (log.f64 (+.f64 x x)) #s(literal 1/2 binary64)))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) #s(literal 2 binary64)) x)
(*.f64 (*.f64 (+.f64 x x) (*.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (+.f64 x x))
(*.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x))
(*.f64 #s(literal 0 binary64) (/.f64 #s(literal 1 binary64) #s(literal 0 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 (*.f64 x x) x))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 #s(literal 2 binary64) x)
(*.f64 (+.f64 x x) (/.f64 #s(literal 1 binary64) (fma.f64 x x #s(literal 0 binary64))))
(*.f64 (+.f64 x x) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x))
(*.f64 (+.f64 x x) (*.f64 (*.f64 (*.f64 x x) x) x))
(*.f64 (+.f64 x x) (*.f64 (*.f64 x x) x))
(*.f64 (+.f64 x x) x)
(*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (+.f64 x x))
(*.f64 (*.f64 (*.f64 x x) x) (+.f64 x x))
(*.f64 (*.f64 x x) (+.f64 x x))
(*.f64 x #s(literal 2 binary64))
(*.f64 x (+.f64 x x))
(/.f64 (*.f64 #s(literal 0 binary64) x) #s(literal 0 binary64))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) #s(literal 0 binary64)) #s(literal 0 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))) (-.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 x x) x) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x) (-.f64 (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)) (*.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x)))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 (*.f64 x x) x) x)) #s(literal 0 binary64))
(/.f64 (+.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) (pow.f64 (*.f64 x x) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 x x) x) x (-.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 (*.f64 x x) x) x))))
(/.f64 (neg.f64 (+.f64 x x)) (neg.f64 (fma.f64 x x #s(literal 0 binary64))))
(/.f64 #s(literal 1 binary64) (/.f64 (fma.f64 x x #s(literal 0 binary64)) (+.f64 x x)))
(/.f64 #s(literal 1 binary64) (+.f64 x x))
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64))
(/.f64 (+.f64 x x) (fma.f64 x x #s(literal 0 binary64)))
(fma.f64 (pow.f64 x #s(literal 3/2 binary64)) (pow.f64 x #s(literal 3/2 binary64)) (*.f64 (*.f64 x x) x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) x (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) x))
(fma.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)))
(fma.f64 (*.f64 x x) (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 (*.f64 x x) (*.f64 (*.f64 (*.f64 x x) x) x)))
(fma.f64 (*.f64 x x) x (*.f64 (*.f64 x x) x))
(fma.f64 x (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) (*.f64 x (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)))
(fma.f64 x (*.f64 x x) (*.f64 (*.f64 x x) x))
(fma.f64 x x (*.f64 x x))
(-.f64 (/.f64 (*.f64 x x) #s(literal 0 binary64)) (/.f64 (*.f64 x x) #s(literal 0 binary64)))
(+.f64 (*.f64 x (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)) (*.f64 x (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)))
(+.f64 (*.f64 (*.f64 x x) (*.f64 (*.f64 (*.f64 x x) x) x)) (*.f64 (*.f64 x x) (*.f64 (*.f64 (*.f64 x x) x) x)))
(+.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) x) (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x) x))
(+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)) (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x x)))
(+.f64 (*.f64 (*.f64 x x) x) (*.f64 (*.f64 x x) x))
(+.f64 (*.f64 x x) (*.f64 x x))
(+.f64 x x)
(*.f64 (*.f64 (*.f64 x x) x) x)
(*.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x (*.f64 (*.f64 x x) x))
(pow.f64 (*.f64 x x) #s(literal 2 binary64))
(pow.f64 x #s(literal 4 binary64))

eval16.0ms (0.8%)

Memory
-6.2MiB live, 29.6MiB allocated
Compiler

Compiled 1 866 to 289 computations (84.5% saved)

prune36.0ms (1.7%)

Memory
0.3MiB live, 37.9MiB allocated
Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New1351136
Fresh000
Picked011
Done077
Total1359144
Accuracy
100.0%
Counts
144 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(hypot.f64 x x)
12.6%
(/.f64 (*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)) (sqrt.f64 (+.f64 x x))) (*.f64 x x))
18.3%
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
53.2%
(sqrt.f64 (*.f64 x (+.f64 x x)))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
53.1%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
52.9%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64)))))
48.5%
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (exp.f64 (*.f64 (log.f64 #s(literal 2 binary64)) #s(literal 1/2 binary64))) x))
3.8%
#s(literal 0 binary64)
Compiler

Compiled 236 to 89 computations (62.3% saved)

regimes17.0ms (0.8%)

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

4 calls:

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

Compiled 23 to 13 computations (43.5% saved)

regimes28.0ms (1.3%)

Memory
1.6MiB live, 38.6MiB allocated
Counts
9 → 2
Calls
Call 1
Inputs
#s(literal 0 binary64)
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
(sqrt.f64 (*.f64 x (+.f64 x x)))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (*.f64 x x))
(/.f64 (*.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) x)) (sqrt.f64 (+.f64 x x))) (*.f64 x x))
(/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 x x) x) x) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
(/.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64)) (*.f64 x (+.f64 x x)))) (sqrt.f64 (fma.f64 (*.f64 x x) (*.f64 x x) #s(literal 0 binary64))))
Outputs
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64))))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
Calls

4 calls:

17.0ms
(pow.f64 x #s(literal 2 binary64))
3.0ms
x
3.0ms
(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
3.0ms
(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
Results
AccuracySegmentsBranch
99.3%2x
77.7%3(sqrt.f64 (+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64))))
77.7%3(+.f64 (pow.f64 x #s(literal 2 binary64)) (pow.f64 x #s(literal 2 binary64)))
77.7%3(pow.f64 x #s(literal 2 binary64))
Compiler

Compiled 23 to 13 computations (43.5% saved)

regimes15.0ms (0.7%)

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

4 calls:

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

Compiled 23 to 13 computations (43.5% saved)

regimes5.0ms (0.2%)

Memory
15.3MiB live, 15.3MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(literal 0 binary64)
Outputs
#s(literal 0 binary64)
Calls

4 calls:

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

Compiled 23 to 13 computations (43.5% saved)

bsearch14.0ms (0.7%)

Memory
-11.5MiB live, 26.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
-1.2684445811105921e-301
3.791511519670732e-307
Samples
6.0ms144×0valid
Compiler

Compiled 147 to 107 computations (27.2% saved)

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

simplify6.0ms (0.3%)

Memory
15.9MiB live, 15.9MiB allocated
Algorithm
egg-herbie
Rules
10×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01648
12348
23048
33548
43848
53948
Stop Event
saturated
Calls
Call 1
Inputs
(hypot.f64 x x)
(if (<=.f64 x #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(literal 0 binary64)
Outputs
(hypot.f64 x x)
(if (<=.f64 x #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (neg.f64 x) (sqrt.f64 #s(literal 2 binary64)))) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)))
(if (<=.f64 x #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) (neg.f64 x))) #s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x)))
#s(approx (sqrt (+ (pow x 2) (pow x 2))) (*.f64 (sqrt.f64 #s(literal 2 binary64)) x))
#s(literal 0 binary64)

soundness84.0ms (3.9%)

Memory
-20.0MiB live, 140.5MiB allocated
Rules
178×lower-*.f32
172×lower-*.f64
140×lower-fma.f32
138×lower-fma.f64
104×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022114
03859
111738
087638
0518
0814
12810
01709
08148
115148
232148
337148
441148
553148
665148
776148
896148
9101148
0101148
Stop Event
fuel
iter limit
saturated
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
iter limit
iter limit
unsound
iter limit
Compiler

Compiled 70 to 39 computations (44.3% saved)

preprocess30.0ms (1.4%)

Memory
20.4MiB live, 94.2MiB allocated
Compiler

Compiled 68 to 32 computations (52.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...