Skip to content

Commit d8872b2

Browse files
committed
Clean up variables and consistency
1 parent 0e00904 commit d8872b2

File tree

1 file changed

+42
-54
lines changed

1 file changed

+42
-54
lines changed

src/Microsoft.Data.Analysis/NumberMathComputation.cs

Lines changed: 42 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void Any(PrimitiveColumnContainer<T> column, out bool ret)
3333

3434
public void CumulativeMax(PrimitiveColumnContainer<T> column)
3535
{
36-
CumulativeApply(column, T.Max);
36+
CumulativeApply(column, T.Max, column.Buffers[0].ReadOnlySpan[0]);
3737
}
3838

3939
public void CumulativeMax(PrimitiveColumnContainer<T> column, IEnumerable<long> rows)
@@ -43,7 +43,7 @@ public void CumulativeMax(PrimitiveColumnContainer<T> column, IEnumerable<long>
4343

4444
public void CumulativeMin(PrimitiveColumnContainer<T> column)
4545
{
46-
CumulativeApply(column, T.Min);
46+
CumulativeApply(column, T.Min, column.Buffers[0].ReadOnlySpan[0]);
4747
}
4848

4949
public void CumulativeMin(PrimitiveColumnContainer<T> column, IEnumerable<long> rows)
@@ -139,55 +139,41 @@ protected void Apply(PrimitiveColumnContainer<T> column, Func<T, T> func)
139139
{
140140
for (int b = 0; b < column.Buffers.Count; b++)
141141
{
142-
var buffer = column.Buffers[b];
143-
var mutableBuffer = DataFrameBuffer<T>.GetMutableBuffer(buffer);
144-
var mutableSpan = mutableBuffer.Span;
145-
146-
var nullBitMapBuffer = column.NullBitMapBuffers[b].ReadOnlySpan;
147-
for (int i = 0; i < mutableSpan.Length; i++)
142+
var buffer = column.Buffers.GetOrCreateMutable(b).Span;
143+
var bitmap = column.NullBitMapBuffers[b].ReadOnlySpan;
144+
for (int i = 0; i < buffer.Length; i++)
148145
{
149-
if (column.IsValid(nullBitMapBuffer, i))
146+
if (column.IsValid(bitmap, i))
150147
{
151-
mutableSpan[i] = func(mutableSpan[i]);
148+
buffer[i] = func(buffer[i]);
152149
}
153150
}
154-
column.Buffers[b] = mutableBuffer;
155151
}
156152
}
157153

158-
protected void CumulativeApply(PrimitiveColumnContainer<T> column, Func<T, T, T> func)
159-
{
160-
CumulativeApply(column, func, column.Buffers[0].ReadOnlySpan[0]);
161-
}
162-
163154
protected void CumulativeApply(PrimitiveColumnContainer<T> column, Func<T, T, T> func, T startingValue)
164155
{
165156
T ret = startingValue;
166157
for (int b = 0; b < column.Buffers.Count; b++)
167158
{
168-
var buffer = column.Buffers[b];
169-
var mutableBuffer = DataFrameBuffer<T>.GetMutableBuffer(buffer);
170-
var mutableSpan = mutableBuffer.Span;
171-
172-
var nullBitMapBuffer = column.NullBitMapBuffers[b].ReadOnlySpan;
173-
for (int i = 0; i < mutableSpan.Length; i++)
159+
var buffer = column.Buffers.GetOrCreateMutable(b).Span;
160+
var bitmap = column.NullBitMapBuffers[b].ReadOnlySpan;
161+
for (int i = 0; i < buffer.Length; i++)
174162
{
175-
if (column.IsValid(nullBitMapBuffer, i))
163+
if (column.IsValid(bitmap, i))
176164
{
177-
ret = func(mutableSpan[i], ret);
178-
mutableSpan[i] = ret;
165+
ret = func(buffer[i], ret);
166+
buffer[i] = ret;
179167
}
180168
}
181-
column.Buffers[b] = mutableBuffer;
182169
}
183170
}
184171

185172
protected void CumulativeApply(PrimitiveColumnContainer<T> column, Func<T, T, T> func, IEnumerable<long> rows)
186173
{
187174
T ret = T.Zero;
188-
var mutableBuffer = column.Buffers.GetOrCreateMutable(0);
189-
var nullBitMap = column.NullBitMapBuffers.GetOrCreateMutable(0);
190-
var span = mutableBuffer.Span;
175+
var buffer = column.Buffers.GetOrCreateMutable(0).Span;
176+
var bitmap = column.NullBitMapBuffers[0].ReadOnlySpan;
191177
long minRange = 0;
192178
long maxRange = ReadOnlyDataFrameBuffer<T>.MaxCapacity;
193179
long maxCapacity = maxRange;
@@ -200,18 +186,17 @@ protected void CumulativeApply(PrimitiveColumnContainer<T> column, Func<T, T, T>
200186
if (row < minRange || row >= maxRange)
201187
{
202188
int bufferIndex = (int)(row / maxCapacity);
203-
mutableBuffer = column.Buffers.GetOrCreateMutable(bufferIndex);
204-
nullBitMap = column.NullBitMapBuffers.GetOrCreateMutable(bufferIndex);
205-
span = mutableBuffer.Span;
189+
buffer = column.Buffers.GetOrCreateMutable(bufferIndex).Span;
190+
bitmap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
206191
minRange = checked(bufferIndex * maxCapacity);
207192
maxRange = checked((bufferIndex + 1) * maxCapacity);
208193
}
209194

210195
row -= minRange;
211-
if (column.IsValid(nullBitMap.Span, (int)row))
196+
if (column.IsValid(bitmap, (int)row))
212197
{
213198
isValid = true;
214-
ret = span[(int)row];
199+
ret = buffer[(int)row];
215200
}
216201
}
217202

@@ -221,18 +206,17 @@ protected void CumulativeApply(PrimitiveColumnContainer<T> column, Func<T, T, T>
221206
if (row < minRange || row >= maxRange)
222207
{
223208
int bufferIndex = (int)(row / maxCapacity);
224-
mutableBuffer = column.Buffers.GetOrCreateMutable(bufferIndex);
225-
nullBitMap = column.NullBitMapBuffers.GetOrCreateMutable(bufferIndex);
226-
span = mutableBuffer.Span;
209+
buffer = column.Buffers.GetOrCreateMutable(bufferIndex).Span;
210+
bitmap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
227211
minRange = checked(bufferIndex * maxCapacity);
228212
maxRange = checked((bufferIndex + 1) * maxCapacity);
229213
}
230214

231215
row -= minRange;
232-
if (column.IsValid(nullBitMapBuffer, i))
216+
if (column.IsValid(bitmap, (int)row))
233217
{
234-
ret = func(ret, readonlySpan[i]);
235-
span[(int)row] = ret;
218+
ret = func(ret, buffer[(int)row]);
219+
buffer[(int)row] = ret;
236220
}
237221
}
238222
}
@@ -244,13 +228,13 @@ protected T CalculateReduction(PrimitiveColumnContainer<T> column, Func<T, T, T>
244228

245229
for (int b = 0; b < column.Buffers.Count; b++)
246230
{
247-
var readonlySpan = column.Buffers[b].ReadOnlySpan;
248-
var nullBitMapBuffer = column.NullBitMapBuffers[b].ReadOnlySpan;
249-
for (int i = 0; i < readonlySpan.Length; i++)
231+
var buffer = column.Buffers[b].ReadOnlySpan;
232+
var bitMap = column.NullBitMapBuffers[b].ReadOnlySpan;
233+
for (int i = 0; i < buffer.Length; i++)
250234
{
251-
if (column.IsValid(nullBitMapBuffer, i))
235+
if (column.IsValid(bitMap, i))
252236
{
253-
ret = func(ret, readonlySpan[i]);
237+
ret = checked(func(ret, buffer[i]));
254238
}
255239
}
256240
}
@@ -260,8 +244,8 @@ protected T CalculateReduction(PrimitiveColumnContainer<T> column, Func<T, T, T>
260244
protected T CalculateReduction(PrimitiveColumnContainer<T> column, Func<T, T, T> func, IEnumerable<long> rows)
261245
{
262246
var ret = T.Zero;
263-
var readOnlySpan = column.Buffers[0].ReadOnlySpan;
264-
var readOnlyNullBitMap = column.NullBitMapBuffers[0].ReadOnlySpan;
247+
var buffer = column.Buffers[0].ReadOnlySpan;
248+
var bitMap = column.NullBitMapBuffers[0].ReadOnlySpan;
265249
long minRange = 0;
266250
long maxRange = ReadOnlyDataFrameBuffer<T>.MaxCapacity;
267251
long maxCapacity = maxRange;
@@ -274,17 +258,17 @@ protected T CalculateReduction(PrimitiveColumnContainer<T> column, Func<T, T, T>
274258
if (row < minRange || row >= maxRange)
275259
{
276260
int bufferIndex = (int)(row / maxCapacity);
277-
readOnlySpan = column.Buffers[bufferIndex].ReadOnlySpan;
278-
readOnlyNullBitMap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
261+
buffer = column.Buffers[bufferIndex].ReadOnlySpan;
262+
bitMap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
279263
minRange = checked(bufferIndex * maxCapacity);
280264
maxRange = checked((bufferIndex + 1) * maxCapacity);
281265
}
282266
row -= minRange;
283267

284-
if (column.IsValid(readOnlyNullBitMap, (int)row))
268+
if (column.IsValid(bitMap, (int)row))
285269
{
286270
isValid = true;
287-
ret = readOnlySpan[(int)row];
271+
ret = buffer[(int)row];
288272
}
289273
}
290274

@@ -294,14 +278,18 @@ protected T CalculateReduction(PrimitiveColumnContainer<T> column, Func<T, T, T>
294278
if (row < minRange || row >= maxRange)
295279
{
296280
int bufferIndex = (int)(row / maxCapacity);
297-
readOnlySpan = column.Buffers[bufferIndex].ReadOnlySpan;
298-
readOnlyNullBitMap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
281+
buffer = column.Buffers[bufferIndex].ReadOnlySpan;
282+
bitMap = column.NullBitMapBuffers[bufferIndex].ReadOnlySpan;
299283
minRange = checked(bufferIndex * maxCapacity);
300284
maxRange = checked((bufferIndex + 1) * maxCapacity);
301285
}
302286
row -= minRange;
303287

304-
ret = checked(func(readOnlySpan[(int)row], ret));
288+
if (column.IsValid(bitMap, (int)row))
289+
{
290+
ret = checked(func(ret, buffer[(int)row]));
291+
}
292+
305293
}
306294

307295
return ret;

0 commit comments

Comments
 (0)