Expression 4, p15

Time bar (total: 3.4s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze21.0ms (0.6%)

Memory
-5.4MiB live, 33.1MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
0%0%0%100%0%0%0%2
50%0%0%100%0%0%0%3
50%0%0%100%0%0%0%4
75%0%0%100%0%0%0%5
75%0%0%100%0%0%0%6
87.5%0%0%100%0%0%0%7
87.5%0%0%100%0%0%0%8
93.8%0%0%100%0%0%0%9
93.8%0%0%100%0%0%0%10
96.9%0%0%100%0%0%0%11
96.9%0%0%100%0%0%0%12
Compiler

Compiled 23 to 16 computations (30.4% saved)

sample1.4s (40.7%)

Memory
18.4MiB live, 1 369.9MiB allocated
Samples
982.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 729.0ms
ival-<=: 337.0ms (46.2% of total)
const: 153.0ms (21% of total)
ival-add: 138.0ms (18.9% of total)
ival-mult: 55.0ms (7.5% of total)
ival-and: 27.0ms (3.7% of total)
exact: 16.0ms (2.2% of total)
ival-assert: 4.0ms (0.5% of total)
Bogosity

explain72.0ms (2.1%)

Memory
-9.5MiB live, 80.8MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 a b)
00-0-(*.f64 (+.f64 a b) (+.f64 a b))
00-0-a
00-0-b
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
42.0ms512×0valid
Compiler

Compiled 35 to 16 computations (54.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-mult: 28.0ms (88.3% of total)
ival-add: 3.0ms (9.5% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess84.0ms (2.5%)

Memory
33.9MiB live, 70.4MiB allocated
Algorithm
egg-herbie
Rules
570×distribute-rgt-in
518×unsub-neg
446×distribute-lft-in
286×distribute-lft-out
280×associate-+l-
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01245
15035
221035
353335
4107535
5197035
6275635
7290035
8290035
9290035
10294235
11295835
047
067
1137
2297
3577
4807
5967
61057
71117
01117
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 a b) (+.f64 a b))
Outputs
#<batchref>
#<batchref>
Symmetry

(sort a b)

Compiler

Compiled 7 to 4 computations (42.9% 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 (+.f64 a b) (+.f64 a b))
Compiler

Compiled 7 to 4 computations (42.9% saved)

simplify5.0ms (0.1%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 a b)
cost-diff0
(*.f64 (+.f64 a b) (+.f64 a b))
Rules
124×lower-fma.f64
124×lower-fma.f32
86×lower-+.f32
84×lower-+.f64
50×associate-+r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0412
0612
11312
22912
35712
48012
59612
610512
711112
011112
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (+.f64 a b) (+.f64 a b))
(+.f64 a b)
a
b
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

localize17.0ms (0.5%)

Memory
-15.9MiB live, 22.1MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 a b)
accuracy0.01953125
(*.f64 (+.f64 a b) (+.f64 a b))
Samples
13.0ms256×0valid
Compiler

Compiled 14 to 6 computations (57.1% saved)

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

series3.0ms (0.1%)

Memory
7.0MiB live, 7.0MiB allocated
Counts
2 → 48
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (+.f64 a b) (+.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 a b) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
0.0ms
a
@-inf
((* (+ a b) (+ a b)) (+ a b))
0.0ms
b
@-inf
((* (+ a b) (+ a b)) (+ a b))
0.0ms
b
@inf
((* (+ a b) (+ a b)) (+ a b))
0.0ms
a
@inf
((* (+ a b) (+ a b)) (+ a b))
0.0ms
b
@0
((* (+ a b) (+ a b)) (+ a b))

simplify119.0ms (3.5%)

Memory
3.1MiB live, 87.3MiB allocated
Algorithm
egg-herbie
Rules
7 026×lower-fma.f64
7 026×lower-fma.f32
2 898×lower-*.f64
2 898×lower-*.f32
1 648×unsub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065270
1193264
2488264
31576252
43884252
56934252
08088222
Stop Event
iter limit
node limit
Counts
48 → 42
Calls
Call 1
Inputs
(pow a 2)
(+ (* 2 (* a b)) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
a
(+ a b)
(+ a b)
(+ a b)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
b
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
b
(+ a b)
(+ a b)
(+ a b)
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
a
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
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>

rewrite235.0ms (7%)

Memory
22.3MiB live, 242.0MiB allocated
Rules
7 142×lower-fma.f64
7 142×lower-fma.f32
4 508×lower-*.f64
4 508×lower-*.f32
2 920×lower-pow.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065416
065370
1458352
24503344
08810322
Stop Event
iter limit
node limit
saturated
Counts
2 → 46
Calls
Call 1
Inputs
(*.f64 (+.f64 a b) (+.f64 a b))
(+.f64 a b)
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>

eval16.0ms (0.5%)

Memory
-2.4MiB live, 34.6MiB allocated
Compiler

Compiled 1 542 to 131 computations (91.5% saved)

prune18.0ms (0.5%)

Memory
-44.1MiB live, 12.7MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1353138
Fresh000
Picked011
Done000
Total1354139
Accuracy
100.0%
Counts
139 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (+.f64 a b) (+.f64 a b))
16.4%
#s(approx (+ a b) (+.f64 b a))
99.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
98.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
Compiler

Compiled 22 to 18 computations (18.2% saved)

simplify6.0ms (0.2%)

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

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 b a)
cost-diff0
#s(approx (+ a b) (+.f64 b a))
cost-diff0
(fma.f64 #s(literal 2 binary64) a b)
cost-diff0
(*.f64 (fma.f64 #s(literal 2 binary64) a b) b)
cost-diff0
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
cost-diff0
(*.f64 b b)
cost-diff0
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
Rules
124×lower-fma.f32
122×lower-fma.f64
86×lower-+.f32
84×lower-+.f64
50×associate-+r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01254
01754
12754
24654
38154
410654
512154
613254
013254
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
(*.f64 b b)
b
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
(*.f64 (fma.f64 #s(literal 2 binary64) a b) b)
(fma.f64 #s(literal 2 binary64) a b)
#s(literal 2 binary64)
a
b
#s(approx (+ a b) (+.f64 b a))
(+.f64 b a)
b
a
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

localize61.0ms (1.8%)

Memory
9.0MiB live, 46.2MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 b a)
accuracy0
#s(approx (+ a b) (+.f64 b a))
accuracy0
(fma.f64 #s(literal 2 binary64) a b)
accuracy0
(*.f64 (fma.f64 #s(literal 2 binary64) a b) b)
accuracy0.04489005115753779
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
accuracy0
(*.f64 b b)
accuracy0.7008724284933373
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
Samples
54.0ms256×0valid
Compiler

Compiled 43 to 12 computations (72.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 6.0ms (57.2% of total)
ival-add: 4.0ms (38.1% 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
17.3MiB live, 17.3MiB allocated
Counts
7 → 156
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fma.f64 #s(literal 2 binary64) a b) b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (+ a b) (+.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (+.f64 b a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
((* (+ a b) (+ a b)) (* b b) (* (+ a b) (+ a b)) (* (+ (* 2 a) b) b) (+ (* 2 a) b) (+ a b) (+ b a))
1.0ms
b
@inf
((* (+ a b) (+ a b)) (* b b) (* (+ a b) (+ a b)) (* (+ (* 2 a) b) b) (+ (* 2 a) b) (+ a b) (+ b a))
1.0ms
b
@0
((* (+ a b) (+ a b)) (* b b) (* (+ a b) (+ a b)) (* (+ (* 2 a) b) b) (+ (* 2 a) b) (+ a b) (+ b a))
1.0ms
a
@0
((* (+ a b) (+ a b)) (* b b) (* (+ a b) (+ a b)) (* (+ (* 2 a) b) b) (+ (* 2 a) b) (+ a b) (+ b a))
1.0ms
a
@-inf
((* (+ a b) (+ a b)) (* b b) (* (+ a b) (+ a b)) (* (+ (* 2 a) b) b) (+ (* 2 a) b) (+ a b) (+ b a))

simplify171.0ms (5.1%)

Memory
-10.7MiB live, 208.2MiB allocated
Algorithm
egg-herbie
Rules
8 894×lower-fma.f64
8 894×lower-fma.f32
2 974×lower-*.f64
2 974×lower-*.f32
1 528×lower--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079804
1246792
2652792
32012792
44460792
57432792
08025696
Stop Event
iter limit
node limit
Counts
156 → 141
Calls
Call 1
Inputs
(pow a 2)
(+ (* 2 (* a b)) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow a 2)
(+ (* 2 (* a b)) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(* 2 (* a b))
(* b (+ b (* 2 a)))
(* b (+ b (* 2 a)))
(* b (+ b (* 2 a)))
(* 2 a)
(+ b (* 2 a))
(+ b (* 2 a))
(+ b (* 2 a))
a
(+ a b)
(+ a b)
(+ a b)
a
(+ a b)
(+ a b)
(+ a b)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* 2 (/ a b))))
b
(* b (+ 1 (* 2 (/ a b))))
(* b (+ 1 (* 2 (/ a b))))
(* b (+ 1 (* 2 (/ a b))))
b
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
b
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(* b (+ 1 (/ a b)))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* 2 (/ a b))))
b
(* -1 (* b (- (* -2 (/ a b)) 1)))
(* -1 (* b (- (* -2 (/ a b)) 1)))
(* -1 (* b (- (* -2 (/ a b)) 1)))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
b
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(* -1 (* b (- (* -1 (/ a b)) 1)))
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* 2 (* a b)) (pow b 2))
(+ (* 2 (* a b)) (pow b 2))
b
(+ b (* 2 a))
(+ b (* 2 a))
(+ b (* 2 a))
b
(+ a b)
(+ a b)
(+ a b)
b
(+ a b)
(+ a b)
(+ a b)
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* 2 (* a b))
(* a (+ (* 2 b) (/ (pow b 2) a)))
(* a (+ (* 2 b) (/ (pow b 2) a)))
(* a (+ (* 2 b) (/ (pow b 2) a)))
(* 2 a)
(* a (+ 2 (/ b a)))
(* a (+ 2 (/ b a)))
(* a (+ 2 (/ b a)))
a
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
a
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(* a (+ 1 (/ b a)))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* 2 (* a b))
(* -1 (* a (+ (* -2 b) (* -1 (/ (pow b 2) a)))))
(* -1 (* a (+ (* -2 b) (* -1 (/ (pow b 2) a)))))
(* -1 (* a (+ (* -2 b) (* -1 (/ (pow b 2) a)))))
(* 2 a)
(* -1 (* a (- (* -1 (/ b a)) 2)))
(* -1 (* a (- (* -1 (/ b a)) 2)))
(* -1 (* a (- (* -1 (/ b a)) 2)))
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
a
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
(* -1 (* a (- (* -1 (/ b a)) 1)))
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>

rewrite322.0ms (9.6%)

Memory
-11.3MiB live, 271.3MiB allocated
Rules
8 912×lower-fma.f64
8 912×lower-fma.f32
4 886×lower-*.f64
4 886×lower-*.f32
2 292×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0791240
0791175
15501136
253461136
081541058
Stop Event
iter limit
node limit
saturated
Counts
7 → 190
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
(*.f64 b b)
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
(*.f64 (fma.f64 #s(literal 2 binary64) a b) b)
(fma.f64 #s(literal 2 binary64) a b)
#s(approx (+ a b) (+.f64 b a))
(+.f64 b a)
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>

eval74.0ms (2.2%)

Memory
-2.5MiB live, 73.5MiB allocated
Compiler

Compiled 2 705 to 184 computations (93.2% saved)

prune18.0ms (0.5%)

Memory
-9.9MiB live, 39.2MiB allocated
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New3292331
Fresh000
Picked033
Done011
Total3296335
Accuracy
100.0%
Counts
335 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
100.0%
(*.f64 (+.f64 a b) (+.f64 a b))
16.4%
#s(approx (+ a b) (+.f64 b a))
99.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
98.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
16.6%
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Compiler

Compiled 33 to 28 computations (15.2% saved)

simplify6.0ms (0.2%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 b b)
cost-diff0
(fma.f64 #s(literal 2 binary64) b a)
cost-diff384
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
cost-diff0
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Rules
124×lower-fma.f32
120×lower-fma.f64
86×lower-+.f64
86×lower-+.f32
50×associate-+r+
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01029
01529
12629
24729
39629
412927
514027
614727
014727
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(literal 8 binary64)
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
(fma.f64 #s(literal 2 binary64) b a)
#s(literal 2 binary64)
b
a
(*.f64 b b)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

localize59.0ms (1.7%)

Memory
-0.3MiB live, 37.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 #s(literal 2 binary64) b a)
accuracy0
(*.f64 b b)
accuracy0.00390625
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
accuracy53.346334690366724
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Samples
52.0ms256×0valid
Compiler

Compiled 32 to 13 computations (59.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 44.0ms
ival-add: 38.0ms (85.5% of total)
ival-mult: 6.0ms (13.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.1%)

Memory
5.9MiB live, 5.9MiB allocated
Counts
4 → 84
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())
#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 b b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fma.f64 #s(literal 2 binary64) b a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
((* (+ a b) (+ a b)) (+ (* (+ (* 2 b) a) a) (* b b)) (+ (* 2 b) a) (* b b))
1.0ms
b
@inf
((* (+ a b) (+ a b)) (+ (* (+ (* 2 b) a) a) (* b b)) (+ (* 2 b) a) (* b b))
0.0ms
a
@-inf
((* (+ a b) (+ a b)) (+ (* (+ (* 2 b) a) a) (* b b)) (+ (* 2 b) a) (* b b))
0.0ms
b
@0
((* (+ a b) (+ a b)) (+ (* (+ (* 2 b) a) a) (* b b)) (+ (* 2 b) a) (* b b))
0.0ms
a
@inf
((* (+ a b) (+ a b)) (+ (* (+ (* 2 b) a) a) (* b b)) (+ (* 2 b) a) (* b b))

simplify143.0ms (4.2%)

Memory
-1.5MiB live, 121.0MiB allocated
Algorithm
egg-herbie
Rules
8 040×lower-fma.f64
8 040×lower-fma.f32
3 496×lower-*.f64
3 496×lower-*.f32
1 472×times-frac
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063558
1188546
2484546
31487522
44164522
56631522
08215444
Stop Event
iter limit
node limit
Counts
84 → 81
Calls
Call 1
Inputs
(pow a 2)
(+ (* 2 (* a b)) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(pow a 2)
(+ (* 2 (* a b)) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
(+ (* b (+ b (* 2 a))) (pow a 2))
a
(+ a (* 2 b))
(+ a (* 2 b))
(+ a (* 2 b))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* (pow b 2) (+ 1 (+ (* 2 (/ a b)) (/ (pow a 2) (pow b 2)))))
(* 2 b)
(* b (+ 2 (/ a b)))
(* b (+ 2 (/ a b)))
(* b (+ 2 (/ a b)))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(pow b 2)
(* (pow b 2) (+ 1 (* 2 (/ a b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* (pow b 2) (+ 1 (* -1 (/ (+ (* -2 a) (* -1 (/ (pow a 2) b))) b))))
(* 2 b)
(* -1 (* b (- (* -1 (/ a b)) 2)))
(* -1 (* b (- (* -1 (/ a b)) 2)))
(* -1 (* b (- (* -1 (/ a b)) 2)))
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(pow b 2)
(+ (* 2 (* a b)) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(+ (* a (+ a (* 2 b))) (pow b 2))
(* 2 b)
(+ a (* 2 b))
(+ a (* 2 b))
(+ a (* 2 b))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
(* (pow a 2) (+ 1 (+ (* 2 (/ b a)) (/ (pow b 2) (pow a 2)))))
a
(* a (+ 1 (* 2 (/ b a))))
(* a (+ 1 (* 2 (/ b a))))
(* a (+ 1 (* 2 (/ b a))))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(pow a 2)
(* (pow a 2) (+ 1 (* 2 (/ b a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
(* (pow a 2) (+ 1 (* -1 (/ (+ (* -2 b) (* -1 (/ (pow b 2) a))) a))))
a
(* -1 (* a (- (* -2 (/ b a)) 1)))
(* -1 (* a (- (* -2 (/ b a)) 1)))
(* -1 (* a (- (* -2 (/ b a)) 1)))
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>

rewrite201.0ms (6%)

Memory
-24.3MiB live, 249.7MiB allocated
Rules
6 606×lower-fma.f64
6 606×lower-fma.f32
4 410×lower-*.f64
4 410×lower-*.f32
2 846×lower-pow.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063760
063725
1439697
24282681
08383626
Stop Event
iter limit
node limit
saturated
Counts
4 → 164
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
(fma.f64 #s(literal 2 binary64) b a)
(*.f64 b b)
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>

eval108.0ms (3.2%)

Memory
-3.9MiB live, 40.0MiB allocated
Compiler

Compiled 3 372 to 260 computations (92.3% saved)

prune7.0ms (0.2%)

Memory
19.7MiB live, 19.7MiB allocated
Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New2450245
Fresh000
Picked022
Done044
Total2456251
Accuracy
100.0%
Counts
251 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
100.0%
(*.f64 (+.f64 a b) (+.f64 a b))
16.4%
#s(approx (+ a b) (+.f64 b a))
99.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
98.9%
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
16.6%
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Compiler

Compiled 66 to 44 computations (33.3% saved)

regimes39.0ms (1.1%)

Memory
-20.1MiB live, 17.8MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(approx (+ a b) (+.f64 b a))
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
(*.f64 (+.f64 a b) (+.f64 a b))
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
Outputs
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
Calls

4 calls:

30.0ms
a
3.0ms
(*.f64 (+.f64 a b) (+.f64 a b))
3.0ms
(+.f64 a b)
3.0ms
b
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(*.f64 (+.f64 a b) (+.f64 a b))
100.0%1(+.f64 a b)
Compiler

Compiled 12 to 11 computations (8.3% saved)

regimes10.0ms (0.3%)

Memory
12.8MiB live, 12.8MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(approx (+ a b) (+.f64 b a))
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
(*.f64 (+.f64 a b) (+.f64 a b))
Outputs
(*.f64 (+.f64 a b) (+.f64 a b))
Calls

4 calls:

2.0ms
(+.f64 a b)
2.0ms
(*.f64 (+.f64 a b) (+.f64 a b))
2.0ms
b
2.0ms
a
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(*.f64 (+.f64 a b) (+.f64 a b))
100.0%1(+.f64 a b)
Compiler

Compiled 12 to 11 computations (8.3% saved)

regimes9.0ms (0.3%)

Memory
12.7MiB live, 12.7MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(approx (+ a b) (+.f64 b a))
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
Outputs
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
Calls

4 calls:

2.0ms
(+.f64 a b)
2.0ms
(*.f64 (+.f64 a b) (+.f64 a b))
2.0ms
b
2.0ms
a
Results
AccuracySegmentsBranch
99.9%1a
99.9%1b
99.9%1(*.f64 (+.f64 a b) (+.f64 a b))
99.9%1(+.f64 a b)
Compiler

Compiled 12 to 11 computations (8.3% saved)

regimes8.0ms (0.2%)

Memory
6.7MiB live, 6.7MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(approx (+ a b) (+.f64 b a))
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
Outputs
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
Calls

4 calls:

2.0ms
(+.f64 a b)
2.0ms
(*.f64 (+.f64 a b) (+.f64 a b))
2.0ms
b
2.0ms
a
Results
AccuracySegmentsBranch
98.9%1a
98.9%1b
98.9%1(*.f64 (+.f64 a b) (+.f64 a b))
98.9%1(+.f64 a b)
Compiler

Compiled 12 to 11 computations (8.3% saved)

regimes43.0ms (1.3%)

Memory
-32.6MiB live, 6.7MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
#s(approx (+ a b) (+.f64 b a))
Outputs
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Calls

4 calls:

1.0ms
(+.f64 a b)
1.0ms
(*.f64 (+.f64 a b) (+.f64 a b))
1.0ms
a
1.0ms
b
Results
AccuracySegmentsBranch
16.6%1a
16.6%1b
16.6%1(*.f64 (+.f64 a b) (+.f64 a b))
16.6%1(+.f64 a b)
Compiler

Compiled 12 to 11 computations (8.3% saved)

simplify21.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01650
11850
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 (fma.f64 #s(literal 2 binary64) b a) a (*.f64 b b))
(*.f64 (+.f64 a b) (+.f64 a b))
#s(approx (* (+ a b) (+ a b)) (*.f64 (fma.f64 #s(literal 2 binary64) a b) b))
#s(approx (* (+ a b) (+ a b)) (*.f64 b b))
#s(approx (* (+ a b) (+ a b)) #s(literal 8 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

soundness86.0ms (2.6%)

Memory
-33.2MiB live, 47.4MiB allocated
Rules
8 912×lower-fma.f64
8 912×lower-fma.f32
4 886×lower-*.f64
4 886×lower-*.f32
2 292×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0791240
0791175
15501136
253461136
081541058
Stop Event
iter limit
node limit
saturated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...