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

Time bar (total: 3.4s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

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

sample598.0ms (17.8%)

Memory
18.5MiB live, 736.5MiB allocated
Samples
339.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 175.0ms
ival-mult: 117.0ms (66.9% of total)
ival-sub: 44.0ms (25.1% of total)
ival-true: 7.0ms (4% of total)
exact: 5.0ms (2.9% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain66.0ms (2%)

Memory
0.9MiB live, 88.1MiB 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
26.0ms512×0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

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

preprocess40.0ms (1.2%)

Memory
24.4MiB live, 24.4MiB 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 (-.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.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

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

simplify132.0ms (3.9%)

Memory
-33.4MiB live, 4.8MiB 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 (-.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
9.9MiB live, 9.9MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 38 to 14 computations (63.2% saved)

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

series5.0ms (0.2%)

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

6 calls:

TimeVariablePointExpression
1.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
y
@inf
((* 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
@0
((* 1/2 (- (* x x) y)) (- (* x x) y) (* x x))

simplify120.0ms (3.6%)

Memory
21.3MiB live, 94.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035327
1102327
2299327
3999291
42507291
54978291
67150291
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
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)

rewrite195.0ms (5.8%)

Memory
-3.5MiB live, 197.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

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

eval37.0ms (1.1%)

Memory
-16.7MiB live, 95.2MiB allocated
Compiler

Compiled 8 480 to 913 computations (89.2% saved)

prune6.0ms (0.2%)

Memory
21.6MiB live, 21.6MiB allocated
Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 29 to 23 computations (20.7% saved)

simplify14.0ms (0.4%)

Memory
12.7MiB live, 12.7MiB 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 #s(literal -1/2 binary64) y)
cost-diff0
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))
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 #s(literal -1/2 binary64) y))
(*.f64 #s(literal -1/2 binary64) y)
#s(literal -1/2 binary64)
y
(*.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 #s(literal -1/2 binary64) y))
(*.f64 #s(literal -1/2 binary64) y)
#s(literal -1/2 binary64)
y
(*.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 (-.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

localize186.0ms (5.5%)

Memory
-45.9MiB live, 47.0MiB allocated
Localize:

Found 8 expressions of interest:

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

Compiled 108 to 29 computations (73.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-sub: 16.0ms (63% of total)
ival-mult: 6.0ms (23.6% of total)
ival-add: 1.0ms (3.9% of total)
ival-neg: 1.0ms (3.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.2%)

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

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
((* 1/2 (- (* x x) y)) (* -1/2 y) (* 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)) (* -1/2 y) (* 1/2 (- (* x x) y)) (- (* x x) y) (* x x) (* 1/2 (+ (* x x) (neg y))) (+ (* x x) (neg y)) (neg y))
1.0ms
x
@inf
((* 1/2 (- (* x x) y)) (* -1/2 y) (* 1/2 (- (* x x) y)) (- (* x x) y) (* x x) (* 1/2 (+ (* x x) (neg y))) (+ (* x x) (neg y)) (neg y))
0.0ms
y
@0
((* 1/2 (- (* x x) y)) (* -1/2 y) (* 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)) (* -1/2 y) (* 1/2 (- (* x x) y)) (- (* x x) y) (* x x) (* 1/2 (+ (* x x) (neg y))) (+ (* x x) (neg y)) (neg y))

simplify109.0ms (3.2%)

Memory
-8.6MiB live, 63.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
035864
1102864
2299864
3999756
42507756
54978756
67152756
08113756
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
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(neg.f64 y)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(neg.f64 y)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 (fma.f64 x x (neg.f64 y)) #s(literal 1/2 binary64))
(*.f64 x x)
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))
(fma.f64 x x (neg.f64 y))

rewrite164.0ms (4.9%)

Memory
26.4MiB live, 143.1MiB 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 #s(literal -1/2 binary64) y))
(*.f64 #s(literal -1/2 binary64) y)
(*.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>

eval66.0ms (2%)

Memory
-11.5MiB live, 148.2MiB allocated
Compiler

Compiled 9 097 to 1 059 computations (88.4% saved)

prune14.0ms (0.4%)

Memory
8.7MiB live, 46.8MiB allocated
Pruning

4 alts after pruning (1 fresh and 3 done)

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

Compiled 40 to 32 computations (20% saved)

simplify13.0ms (0.4%)

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

localize136.0ms (4%)

Memory
-21.6MiB live, 25.0MiB allocated
Localize:

Found 2 expressions of interest:

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

Compiled 30 to 18 computations (40% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-mult: 5.0ms (81.5% of total)
ival-sub: 1.0ms (16.3% 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
5.3MiB live, 5.3MiB allocated
Counts
2 → 36
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf y) (#s(alt #<batchref> (patch (*.f64 y #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (* 1/2 (- (* x x) y)) (*.f64 y #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (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))

simplify380.0ms (11.3%)

Memory
-3.3MiB live, 69.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
023222
156222
2151222
3376204
41028186
53443186
66166186
08201186
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
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 y #s(literal 1/2 binary64))
(*.f64 #s(literal -1/2 binary64) y)
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))
(*.f64 (-.f64 y (*.f64 x x)) #s(literal -1/2 binary64))

rewrite476.0ms (14.1%)

Memory
-2.8MiB live, 204.3MiB 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
6.3MiB live, 6.3MiB allocated
Compiler

Compiled 555 to 23 computations (95.9% saved)

prune4.0ms (0.1%)

Memory
7.3MiB live, 7.3MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

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

Compiled 87 to 52 computations (40.2% saved)

regimes22.0ms (0.7%)

Memory
-16.4MiB live, 35.1MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))
#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:

12.0ms
(-.f64 (*.f64 x x) y)
3.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
y
2.0ms
x
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
-7.2MiB live, 30.9MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))
#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:

4.0ms
(*.f64 #s(literal 1/2 binary64) (-.f64 (*.f64 x x) y))
2.0ms
(-.f64 (*.f64 x x) y)
2.0ms
y
2.0ms
x
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
-17.1MiB live, 21.2MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (* 1/2 (- (* x x) y)) (*.f64 #s(literal -1/2 binary64) y))
#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 #s(literal -1/2 binary64) y))
(*.f64 #s(literal 1/2 binary64) #s(approx (- (* x x) y) (*.f64 x x)))
Calls

5 calls:

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

Compiled 17 to 17 computations (0% saved)

regimes8.0ms (0.2%)

Memory
25.3MiB live, 25.3MiB allocated
Accuracy

Total -33.4b remaining (-112.5%)

Threshold costs -33.4b (-112.5%)

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

5 calls:

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

Compiled 17 to 17 computations (0% saved)

bsearch13.0ms (0.4%)

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

Compiled 210 to 191 computations (9% saved)

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

simplify23.0ms (0.7%)

Memory
9.0MiB live, 52.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

soundness449.0ms (13.3%)

Memory
3.4MiB live, 193.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
12715
217815
3164515
0853215
035327
1102327
2299327
3999291
42507291
54978291
67150291
08115291
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 78 to 43 computations (44.9% saved)

preprocess32.0ms (1%)

Memory
-5.1MiB live, 70.9MiB allocated
Remove

(abs x)

Compiler

Compiled 162 to 90 computations (44.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...