System.Random.MWC.Distributions:standard from mwc-random-0.13.3.2

Time bar (total: 3.6s)

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%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample638.0ms (17.9%)

Memory
64.4MiB live, 717.4MiB allocated
Samples
362.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 176.0ms
ival-mult: 113.0ms (64% of total)
ival-sub: 48.0ms (27.2% of total)
ival-true: 6.0ms (3.4% of total)
exact: 5.0ms (2.8% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain232.0ms (6.5%)

Memory
-2.8MiB live, 116.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-y
00-0-(-.f64 (*.f64 x x) y)
00-0-(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
00-0-#s(literal 1/2 binary64)
00-0-(*.f64 x x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
24.0ms512×0valid
Compiler

Compiled 101 to 42 computations (58.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (65.5% of total)
ival-sub: 2.0ms (18.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess57.0ms (1.6%)

Memory
-14.2MiB live, 24.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01637
14635
212935
338135
467835
584435
688235
788235
067
097
1127
2237
3457
4717
5997
61697
72667
84107
94667
104967
04967
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
Outputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(*.f64 (-.f64 (*.f64 x x) y) #s(literal 1/2 binary64))
Symmetry

(abs x)

Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify15.0ms (0.4%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(-.f64 (*.f64 x x) y)
cost-diff0
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11218
22318
34518
47118
59918
616918
726618
841018
946618
1049618
049618
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
#s(literal 1/2 binary64)
(-.f64 (*.f64 x x) y)
(*.f64 x x)
x
y
Outputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(*.f64 (-.f64 (*.f64 x x) y) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(-.f64 (*.f64 x x) y)
(*.f64 x x)
x
y

localize23.0ms (0.6%)

Memory
-12.7MiB live, 24.7MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x x)
accuracy0
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
accuracy0.00390625
(-.f64 (*.f64 x x) y)
Samples
18.0ms256×0valid
Compiler

Compiled 38 to 14 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-sub: 3.0ms (42.7% of total)
ival-mult: 3.0ms (42.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

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

6 calls:

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

simplify108.0ms (3%)

Memory
-10.3MiB live, 102.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035327
1102327
2299327
3996291
42501291
54979291
67157291
08115291
Stop Event
iter limit
node limit
Counts
60 → 60
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(pow x 2)
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(* -1/2 y)
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* -1 y)
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* -1/2 y)
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1/2 y)
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* -1 y)
(- (pow x 2) y)
(- (pow x 2) y)
(- (pow x 2) y)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)

rewrite187.0ms (5.3%)

Memory
0.7MiB live, 170.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
12715
217815
3164515
0853215
Stop Event
iter limit
node limit
iter limit
Counts
3 → 266
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(-.f64 (*.f64 x x) y)
(*.f64 x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval153.0ms (4.3%)

Memory
4.5MiB live, 41.6MiB allocated
Compiler

Compiled 8 156 to 910 computations (88.8% saved)

prune6.0ms (0.2%)

Memory
17.8MiB live, 17.8MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New3233326
Fresh000
Picked101
Done000
Total3243327
Accuracy
100.0%
Counts
327 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
48.5%
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
53.6%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 17 to 17 computations (0% saved)

simplify29.0ms (0.8%)

Memory
-27.5MiB live, 20.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f64 y)
cost-diff0
(fma.f64 x x (neg.f64 y))
cost-diff0
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (- (* x x) y) (*.f64 x x))
cost-diff0
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
cost-diff0
(*.f64 y #s(literal -1/2 binary64))
cost-diff0
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01558
02158
13658
25758
38258
411058
518058
627658
741358
846958
950158
050158
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
(*.f64 y #s(literal -1/2 binary64))
y
#s(literal -1/2 binary64)
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
#s(literal 1/2 binary64)
#s(approx (- (* x x) y) (*.f64 x x))
(*.f64 x x)
x
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
#s(literal 1/2 binary64)
(fma.f64 x x (neg.f64 y))
x
(neg.f64 y)
y
Outputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))
(*.f64 y #s(literal -1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
y
#s(literal -1/2 binary64)
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
(*.f64 #s(approx (- (* x x) y) (*.f64 x x)) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
#s(approx (- (* x x) y) (*.f64 x x))
(*.f64 x x)
x
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
#s(literal 1/2 binary64)
(fma.f64 x x (neg.f64 y))
x
(neg.f64 y)
y

localize55.0ms (1.5%)

Memory
4.5MiB live, 41.6MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 x x (neg.f64 y))
accuracy0
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
accuracy0
(neg.f64 y)
accuracy0
(*.f64 x x)
accuracy0
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
accuracy32.97199815639388
#s(approx (- (* x x) y) (*.f64 x x))
accuracy0
(*.f64 y #s(literal -1/2 binary64))
accuracy29.679212593198198
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Samples
47.0ms256×0valid
Compiler

Compiled 91 to 25 computations (72.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (61% of total)
ival-add: 2.0ms (17.4% of total)
ival-sub: 1.0ms (8.7% of total)
ival-neg: 1.0ms (8.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series7.0ms (0.2%)

Memory
5.1MiB live, 5.1MiB allocated
Counts
8 → 156
Calls
Call 1
Inputs
#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())
#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())
#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())
#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (pow x 2)) (taylor 0 y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 y) (pow x 2)) (taylor 0 y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* y (- (* 1/2 (/ (pow x 2) y)) 1/2)) (taylor inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* y (- (/ (pow x 2) y) 1)) (taylor inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 y #s(literal -1/2 binary64)) (patch (*.f64 y #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* y (+ 1 (* -1 (/ (pow x 2) y))))) (taylor -inf y) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor -inf y) (#s(alt (neg.f64 y) (patch (neg.f64 y) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1/2 y) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1/2 y) (* 1/2 (pow x 2))) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* -1 y) (taylor 0 x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (- (pow x 2) y) (taylor 0 x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) (patch (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt #s(approx (- (* x x) y) (*.f64 x x)) (patch #s(approx (- (* x x) y) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) (patch (*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (* -1 (/ y (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 x x (neg.f64 y)) (patch (fma.f64 x x (neg.f64 y)) #<representation binary64>) () ())) ())
Calls

6 calls:

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

simplify131.0ms (3.7%)

Memory
-20.1MiB live, 98.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035864
1102864
2299864
3996756
42501756
54979756
67157756
08115756
Stop Event
iter limit
node limit
Counts
156 → 156
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* 1/2 (pow x 2))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(pow x 2)
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(* 1/2 (pow x 2))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(pow x 2)
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(+ (* -1 y) (pow x 2))
(* -1 y)
(* -1 y)
(* -1 y)
(* -1 y)
(* -1/2 y)
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* -1 y)
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* -1/2 y)
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* -1 y)
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* y (- (/ (pow x 2) y) 1))
(* -1 y)
(* -1 y)
(* -1 y)
(* -1 y)
(* -1/2 y)
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1/2 y)
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1/2 y)
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(* -1 y)
(* -1 y)
(* -1 y)
(* -1 y)
(* -1/2 y)
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* -1/2 y)
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* -1 y)
(- (pow x 2) y)
(- (pow x 2) y)
(- (pow x 2) y)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1/2 y)
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* -1 y)
(- (pow x 2) y)
(- (pow x 2) y)
(- (pow x 2) y)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(pow x 2)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(+ (* -1 y) (pow x 2))
(fma.f64 x x (neg.f64 y))
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* y (- (/ (pow x 2) y) 1))
(fma.f64 x x (neg.f64 y))
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 (* y (+ 1 (* -1 (/ (pow x 2) y)))))
(fma.f64 x x (neg.f64 y))
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1 y)
(neg.f64 y)
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(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/2 y)
(*.f64 y #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* -1 y)
(neg.f64 y)
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(- (pow x 2) y)
(fma.f64 x x (neg.f64 y))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))
(* (pow x 2) (+ 1 (* -1 (/ y (pow x 2)))))
(fma.f64 x x (neg.f64 y))

rewrite126.0ms (3.5%)

Memory
37.8MiB live, 230.7MiB allocated
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01551
02151
16151
238245
3370045
0880745
Stop Event
iter limit
node limit
iter limit
Counts
8 → 303
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
(*.f64 y #s(literal -1/2 binary64))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
#s(approx (- (* x x) y) (*.f64 x x))
(*.f64 x x)
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
(fma.f64 x x (neg.f64 y))
(neg.f64 y)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval266.0ms (7.5%)

Memory
-26.4MiB live, 100.7MiB allocated
Compiler

Compiled 7 887 to 1 049 computations (86.7% saved)

prune20.0ms (0.6%)

Memory
5.3MiB live, 42.6MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New4581459
Fresh000
Picked033
Done000
Total4584462
Accuracy
100.0%
Counts
462 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
48.5%
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
2.3%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
53.6%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 21 to 22 computations (-4.8% saved)

simplify13.0ms (0.4%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y #s(literal 1/2 binary64))
cost-diff0
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
0916
11316
22416
34216
46516
59316
616316
726116
840816
946316
1049316
049316
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)
Outputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal 1/2 binary64) y))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) y)
y
#s(literal 1/2 binary64)

localize635.0ms (17.8%)

Memory
-25.3MiB live, 51.4MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 y #s(literal 1/2 binary64))
accuracy62.513059153953115
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
Samples
630.0ms256×0valid
Compiler

Compiled 23 to 14 computations (39.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 301.0ms
ival-sub: 296.0ms (98.4% of total)
ival-mult: 5.0ms (1.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

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

6 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
((* 1/2 (- (* x x) y)) (* y 1/2))
0.0ms
y
@0
((* 1/2 (- (* x x) y)) (* y 1/2))
0.0ms
y
@inf
((* 1/2 (- (* x x) y)) (* y 1/2))
0.0ms
x
@inf
((* 1/2 (- (* x x) y)) (* y 1/2))
0.0ms
x
@-inf
((* 1/2 (- (* x x) y)) (* y 1/2))

simplify82.0ms (2.3%)

Memory
-4.8MiB live, 82.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
023222
156222
2151222
3377204
41028186
53397186
66121186
08217186
Stop Event
iter limit
node limit
Counts
36 → 36
Calls
Call 1
Inputs
(* 1/2 (pow x 2))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* -1/2 y)
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* -1/2 y)
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* 1/2 y)
(* -1/2 y)
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
Outputs
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* y (- (* 1/2 (/ (pow x 2) y)) 1/2))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* -1 (* y (+ 1/2 (* -1/2 (/ (pow x 2) y)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* 1/2 y)
(*.f64 y #s(literal 1/2 binary64))
(* -1/2 y)
(*.f64 y #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(+ (* -1/2 y) (* 1/2 (pow x 2)))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(* (pow x 2) (+ 1/2 (* -1/2 (/ y (pow x 2)))))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))

rewrite170.0ms (4.8%)

Memory
13.2MiB live, 206.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
0914
12814
217914
3164614
0853014
Stop Event
iter limit
node limit
iter limit
Counts
2 → 3
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 y #s(literal 1/2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>

eval4.0ms (0.1%)

Memory
6.5MiB live, 6.5MiB allocated
Compiler

Compiled 246 to 18 computations (92.7% saved)

prune4.0ms (0.1%)

Memory
7.4MiB live, 7.4MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New39039
Fresh000
Picked011
Done033
Total39443
Accuracy
100.0%
Counts
43 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
48.5%
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
2.3%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
53.6%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 49 to 38 computations (22.4% saved)

regimes28.0ms (0.8%)

Memory
-12.2MiB live, 27.0MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
Outputs
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
Calls

5 calls:

18.0ms
(*.f64 x x)
2.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
y
2.0ms
(-.f64 (*.f64 x x) y)
2.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
100.0%1(-.f64 (*.f64 x x) y)
100.0%1(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

regimes15.0ms (0.4%)

Memory
-24.8MiB live, 20.5MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
Outputs
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
Calls

5 calls:

6.0ms
y
2.0ms
x
2.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
(-.f64 (*.f64 x x) y)
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
100.0%1(-.f64 (*.f64 x x) y)
100.0%1(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

regimes9.0ms (0.3%)

Memory
17.2MiB live, 17.2MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
Outputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
Calls

5 calls:

2.0ms
y
2.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
x
2.0ms
(-.f64 (*.f64 x x) y)
2.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
90.5%2x
63.3%3y
80.4%2(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
80.4%2(-.f64 (*.f64 x x) y)
90.5%2(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

regimes8.0ms (0.2%)

Memory
15.6MiB live, 15.6MiB allocated
Accuracy

Total -33.4b remaining (-112.5%)

Threshold costs -33.4b (-112.5%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64)))
Outputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Calls

5 calls:

2.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
y
2.0ms
x
1.0ms
(-.f64 (*.f64 x x) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
53.6%1y
53.6%1(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
53.6%1(-.f64 (*.f64 x x) y)
53.6%1x
53.6%1(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

bsearch16.0ms (0.4%)

Memory
-15.3MiB live, 21.0MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
1419975028006.8562
7.033702711679282e+22
Samples
6.0ms160×0valid
Compiler

Compiled 90 to 131 computations (-45.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.0ms
ival-sub: 1.0ms (43.1% of total)
ival-mult: 1.0ms (43.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify26.0ms (0.7%)

Memory
-8.9MiB live, 28.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02053
12953
23253
33353
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(if (<=.f64 (*.f64 x x) #s(literal 36000000000000 binary64)) #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Outputs
(*.f64 #s(literal 1/2 binary64) (fma.f64 x x (neg.f64 y)))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
(*.f64 (-.f64 (*.f64 x x) y) #s(literal 1/2 binary64))
(if (<=.f64 (*.f64 x x) #s(literal 36000000000000 binary64)) #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64))) (*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x))))
(if (<=.f64 (*.f64 x x) #s(literal 36000000000000 binary64)) #s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y)) (*.f64 #s(approx (- (* x x) y) (*.f64 x x)) #s(literal 1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))

soundness439.0ms (12.3%)

Memory
25.4MiB live, 184.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
12715
217815
3164515
0853215
035327
1102327
2299327
3996291
42501291
54979291
67157291
08115291
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 59 to 39 computations (33.9% saved)

preprocess51.0ms (1.4%)

Memory
-5.5MiB live, 112.2MiB allocated
Remove

(abs x)

Compiler

Compiled 138 to 94 computations (31.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...