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

Time bar (total: 3.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.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)

sample640.0ms (18.2%)

Memory
31.1MiB live, 730.0MiB allocated
Samples
370.0ms8 255×0valid
0.0ms2valid
Precisions
Click to see histograms. Total time spent on operations: 209.0ms
ival-mult: 145.0ms (69.5% of total)
ival-sub: 49.0ms (23.5% of total)
ival-true: 6.0ms (2.9% of total)
exact: 5.0ms (2.4% of total)
ival-assert: 3.0ms (1.4% of total)
adjust: 0.0ms (0% of total)
Bogosity

explain194.0ms (5.5%)

Memory
5.5MiB live, 81.2MiB 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
154.0ms512×0valid
Compiler

Compiled 47 to 22 computations (53.2% saved)

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

preprocess42.0ms (1.2%)

Memory
-2.1MiB live, 34.9MiB 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
1.0MiB live, 1.0MiB 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
4.5MiB live, 4.5MiB 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

localize16.0ms (0.5%)

Memory
10.3MiB live, 10.3MiB 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.0078125
(-.f64 (*.f64 x x) y)
Samples
11.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

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

series44.0ms (1.2%)

Memory
-42.6MiB live, 4.3MiB 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
36.0ms
x
@-inf
((* 1/2 (- (* x x) y)) (- (* x x) y) (* x x))
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))

simplify109.0ms (3.1%)

Memory
39.7MiB live, 144.5MiB 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)

rewrite355.0ms (10.1%)

Memory
-21.9MiB live, 192.3MiB 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>

eval46.0ms (1.3%)

Memory
7.3MiB live, 44.6MiB allocated
Compiler

Compiled 8 156 to 910 computations (88.8% saved)

prune33.0ms (0.9%)

Memory
-18.7MiB live, 18.9MiB 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)))
53.1%
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
48.9%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 17 to 17 computations (0% saved)

simplify14.0ms (0.4%)

Memory
18.8MiB live, 18.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
741458
847058
950258
050258
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

localize32.0ms (0.9%)

Memory
8.9MiB live, 44.2MiB 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)))
accuracy30.02422413835746
#s(approx (- (* x x) y) (*.f64 x x))
accuracy0
(*.f64 y #s(literal -1/2 binary64))
accuracy32.67792436528592
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Samples
23.0ms256×0valid
Compiler

Compiled 50 to 13 computations (74% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-mult: 6.0ms (43.2% of total)
ival-neg: 5.0ms (36% of total)
ival-sub: 1.0ms (7.2% of total)
ival-add: 1.0ms (7.2% 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
10.0MiB live, 10.0MiB 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))

simplify114.0ms (3.2%)

Memory
-18.1MiB live, 68.0MiB 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))

rewrite270.0ms (7.7%)

Memory
6.6MiB live, 201.8MiB allocated
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01551
02151
16151
238245
3370045
0881245
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>

eval375.0ms (10.7%)

Memory
3.3MiB live, 84.2MiB allocated
Compiler

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

prune298.0ms (8.5%)

Memory
-1.7MiB live, 34.7MiB 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)))
53.1%
(*.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)))
48.9%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 21 to 22 computations (-4.8% saved)

simplify16.0ms (0.5%)

Memory
-7.8MiB live, 29.0MiB 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
726016
841016
946516
1049916
049916
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)))
(*.f64 y #s(literal 1/2 binary64))
y
#s(literal 1/2 binary64)

localize20.0ms (0.6%)

Memory
18.1MiB live, 54.8MiB allocated
Localize:

Found 2 expressions of interest:

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

Compiled 14 to 9 computations (35.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 5.0ms (56.4% of total)
ival-sub: 4.0ms (45.2% 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
12.4MiB live, 12.3MiB 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))

simplify156.0ms (4.4%)

Memory
-19.7MiB live, 117.9MiB 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))

rewrite139.0ms (3.9%)

Memory
-10.8MiB live, 182.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
0914
12814
217914
3164614
0854214
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
5.1MiB live, 5.1MiB allocated
Compiler

Compiled 246 to 18 computations (92.7% saved)

prune4.0ms (0.1%)

Memory
5.7MiB live, 5.7MiB 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)))
53.1%
(*.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)))
48.9%
#s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal -1/2 binary64)))
Compiler

Compiled 49 to 38 computations (22.4% saved)

regimes33.0ms (0.9%)

Memory
-25.2MiB live, 21.5MiB 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:

23.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)

regimes11.0ms (0.3%)

Memory
13.5MiB live, 13.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:

2.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
y
2.0ms
x
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)

regimes14.0ms (0.4%)

Memory
-17.0MiB live, 19.4MiB 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:

6.0ms
x
2.0ms
y
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
89.4%2x
60.7%3y
82.9%2(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
82.9%2(-.f64 (*.f64 x x) y)
89.4%2(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

regimes8.0ms (0.2%)

Memory
16.6MiB live, 16.6MiB allocated
Accuracy

Total -30.4b remaining (-92.9%)

Threshold costs -30.4b (-92.9%)

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
1.0ms
x
1.0ms
(-.f64 (*.f64 x x) y)
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
48.9%1y
48.9%1(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
48.9%1(-.f64 (*.f64 x x) y)
48.9%1x
48.9%1(*.f64 x x)
Compiler

Compiled 17 to 17 computations (0% saved)

bsearch11.0ms (0.3%)

Memory
14.3MiB live, 14.3MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
10.0ms
3.532702535568562e-54
1.8246350555313693e-48
Samples
5.0ms144×0valid
Compiler

Compiled 82 to 119 computations (-45.1% saved)

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

simplify24.0ms (0.7%)

Memory
4.0MiB live, 40.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 806297233087391/1645504557321206042154969182557350504982735865633579863348609024 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 806297233087391/1645504557321206042154969182557350504982735865633579863348609024 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 806297233087391/1645504557321206042154969182557350504982735865633579863348609024 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))

soundness408.0ms (11.6%)

Memory
-19.0MiB live, 171.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 59 to 39 computations (33.9% saved)

preprocess63.0ms (1.8%)

Memory
-18.0MiB live, 113.0MiB 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...