@@ -298,7 +298,9 @@ public Range1b(Range1b b0, Range1b b1, Range1b b2, Range1b b3)
298
298
[MethodImpl(MethodImplOptions.AggressiveInlining)]
299
299
public Range1b(byte[] values)
300
300
{
301
- Min = Max = values[0];
301
+ Min = byte.MaxValue;
302
+ Max = byte.MinValue;
303
+ if (values == null) return;
302
304
long count = values.LongLength;
303
305
for (long i = 1; i < count; i++) ExtendBy(values[i]);
304
306
}
@@ -310,8 +312,16 @@ public Range1b(byte[] values)
310
312
[MethodImpl(MethodImplOptions.AggressiveInlining)]
311
313
public Range1b(byte[] values, long start, long count)
312
314
{
313
- Min = Max = values[start];
314
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
315
+ if (count <= 0)
316
+ {
317
+ Min = byte.MaxValue;
318
+ Max = byte.MinValue;
319
+ }
320
+ else
321
+ {
322
+ Min = Max = values[start];
323
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
324
+ }
315
325
}
316
326
317
327
/// <summary>
@@ -322,6 +332,7 @@ public Range1b(IEnumerable<byte> values)
322
332
{
323
333
Min = byte.MaxValue;
324
334
Max = byte.MinValue;
335
+ if (values == null) return;
325
336
foreach (byte v in values) ExtendBy(v);
326
337
}
327
338
@@ -1310,7 +1321,9 @@ public Range1sb(Range1sb b0, Range1sb b1, Range1sb b2, Range1sb b3)
1310
1321
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1311
1322
public Range1sb(sbyte[] values)
1312
1323
{
1313
- Min = Max = values[0];
1324
+ Min = sbyte.MaxValue;
1325
+ Max = sbyte.MinValue;
1326
+ if (values == null) return;
1314
1327
long count = values.LongLength;
1315
1328
for (long i = 1; i < count; i++) ExtendBy(values[i]);
1316
1329
}
@@ -1322,8 +1335,16 @@ public Range1sb(sbyte[] values)
1322
1335
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1323
1336
public Range1sb(sbyte[] values, long start, long count)
1324
1337
{
1325
- Min = Max = values[start];
1326
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
1338
+ if (count <= 0)
1339
+ {
1340
+ Min = sbyte.MaxValue;
1341
+ Max = sbyte.MinValue;
1342
+ }
1343
+ else
1344
+ {
1345
+ Min = Max = values[start];
1346
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
1347
+ }
1327
1348
}
1328
1349
1329
1350
/// <summary>
@@ -1334,6 +1355,7 @@ public Range1sb(IEnumerable<sbyte> values)
1334
1355
{
1335
1356
Min = sbyte.MaxValue;
1336
1357
Max = sbyte.MinValue;
1358
+ if (values == null) return;
1337
1359
foreach (sbyte v in values) ExtendBy(v);
1338
1360
}
1339
1361
@@ -2322,7 +2344,9 @@ public Range1s(Range1s b0, Range1s b1, Range1s b2, Range1s b3)
2322
2344
[MethodImpl(MethodImplOptions.AggressiveInlining)]
2323
2345
public Range1s(short[] values)
2324
2346
{
2325
- Min = Max = values[0];
2347
+ Min = short.MaxValue;
2348
+ Max = short.MinValue;
2349
+ if (values == null) return;
2326
2350
long count = values.LongLength;
2327
2351
for (long i = 1; i < count; i++) ExtendBy(values[i]);
2328
2352
}
@@ -2334,8 +2358,16 @@ public Range1s(short[] values)
2334
2358
[MethodImpl(MethodImplOptions.AggressiveInlining)]
2335
2359
public Range1s(short[] values, long start, long count)
2336
2360
{
2337
- Min = Max = values[start];
2338
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
2361
+ if (count <= 0)
2362
+ {
2363
+ Min = short.MaxValue;
2364
+ Max = short.MinValue;
2365
+ }
2366
+ else
2367
+ {
2368
+ Min = Max = values[start];
2369
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
2370
+ }
2339
2371
}
2340
2372
2341
2373
/// <summary>
@@ -2346,6 +2378,7 @@ public Range1s(IEnumerable<short> values)
2346
2378
{
2347
2379
Min = short.MaxValue;
2348
2380
Max = short.MinValue;
2381
+ if (values == null) return;
2349
2382
foreach (short v in values) ExtendBy(v);
2350
2383
}
2351
2384
@@ -3334,7 +3367,9 @@ public Range1us(Range1us b0, Range1us b1, Range1us b2, Range1us b3)
3334
3367
[MethodImpl(MethodImplOptions.AggressiveInlining)]
3335
3368
public Range1us(ushort[] values)
3336
3369
{
3337
- Min = Max = values[0];
3370
+ Min = ushort.MaxValue;
3371
+ Max = ushort.MinValue;
3372
+ if (values == null) return;
3338
3373
long count = values.LongLength;
3339
3374
for (long i = 1; i < count; i++) ExtendBy(values[i]);
3340
3375
}
@@ -3346,8 +3381,16 @@ public Range1us(ushort[] values)
3346
3381
[MethodImpl(MethodImplOptions.AggressiveInlining)]
3347
3382
public Range1us(ushort[] values, long start, long count)
3348
3383
{
3349
- Min = Max = values[start];
3350
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
3384
+ if (count <= 0)
3385
+ {
3386
+ Min = ushort.MaxValue;
3387
+ Max = ushort.MinValue;
3388
+ }
3389
+ else
3390
+ {
3391
+ Min = Max = values[start];
3392
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
3393
+ }
3351
3394
}
3352
3395
3353
3396
/// <summary>
@@ -3358,6 +3401,7 @@ public Range1us(IEnumerable<ushort> values)
3358
3401
{
3359
3402
Min = ushort.MaxValue;
3360
3403
Max = ushort.MinValue;
3404
+ if (values == null) return;
3361
3405
foreach (ushort v in values) ExtendBy(v);
3362
3406
}
3363
3407
@@ -4356,7 +4400,9 @@ public Range1i(Range1i b0, Range1i b1, Range1i b2, Range1i b3)
4356
4400
[MethodImpl(MethodImplOptions.AggressiveInlining)]
4357
4401
public Range1i(int[] values)
4358
4402
{
4359
- Min = Max = values[0];
4403
+ Min = int.MaxValue;
4404
+ Max = int.MinValue;
4405
+ if (values == null) return;
4360
4406
long count = values.LongLength;
4361
4407
for (long i = 1; i < count; i++) ExtendBy(values[i]);
4362
4408
}
@@ -4368,8 +4414,16 @@ public Range1i(int[] values)
4368
4414
[MethodImpl(MethodImplOptions.AggressiveInlining)]
4369
4415
public Range1i(int[] values, long start, long count)
4370
4416
{
4371
- Min = Max = values[start];
4372
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
4417
+ if (count <= 0)
4418
+ {
4419
+ Min = int.MaxValue;
4420
+ Max = int.MinValue;
4421
+ }
4422
+ else
4423
+ {
4424
+ Min = Max = values[start];
4425
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
4426
+ }
4373
4427
}
4374
4428
4375
4429
/// <summary>
@@ -4380,6 +4434,7 @@ public Range1i(IEnumerable<int> values)
4380
4434
{
4381
4435
Min = int.MaxValue;
4382
4436
Max = int.MinValue;
4437
+ if (values == null) return;
4383
4438
foreach (int v in values) ExtendBy(v);
4384
4439
}
4385
4440
@@ -5390,7 +5445,9 @@ public Range1ui(Range1ui b0, Range1ui b1, Range1ui b2, Range1ui b3)
5390
5445
[MethodImpl(MethodImplOptions.AggressiveInlining)]
5391
5446
public Range1ui(uint[] values)
5392
5447
{
5393
- Min = Max = values[0];
5448
+ Min = uint.MaxValue;
5449
+ Max = uint.MinValue;
5450
+ if (values == null) return;
5394
5451
long count = values.LongLength;
5395
5452
for (long i = 1; i < count; i++) ExtendBy(values[i]);
5396
5453
}
@@ -5402,8 +5459,16 @@ public Range1ui(uint[] values)
5402
5459
[MethodImpl(MethodImplOptions.AggressiveInlining)]
5403
5460
public Range1ui(uint[] values, long start, long count)
5404
5461
{
5405
- Min = Max = values[start];
5406
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
5462
+ if (count <= 0)
5463
+ {
5464
+ Min = uint.MaxValue;
5465
+ Max = uint.MinValue;
5466
+ }
5467
+ else
5468
+ {
5469
+ Min = Max = values[start];
5470
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
5471
+ }
5407
5472
}
5408
5473
5409
5474
/// <summary>
@@ -5414,6 +5479,7 @@ public Range1ui(IEnumerable<uint> values)
5414
5479
{
5415
5480
Min = uint.MaxValue;
5416
5481
Max = uint.MinValue;
5482
+ if (values == null) return;
5417
5483
foreach (uint v in values) ExtendBy(v);
5418
5484
}
5419
5485
@@ -6424,7 +6490,9 @@ public Range1l(Range1l b0, Range1l b1, Range1l b2, Range1l b3)
6424
6490
[MethodImpl(MethodImplOptions.AggressiveInlining)]
6425
6491
public Range1l(long[] values)
6426
6492
{
6427
- Min = Max = values[0];
6493
+ Min = long.MaxValue;
6494
+ Max = long.MinValue;
6495
+ if (values == null) return;
6428
6496
long count = values.LongLength;
6429
6497
for (long i = 1; i < count; i++) ExtendBy(values[i]);
6430
6498
}
@@ -6436,8 +6504,16 @@ public Range1l(long[] values)
6436
6504
[MethodImpl(MethodImplOptions.AggressiveInlining)]
6437
6505
public Range1l(long[] values, long start, long count)
6438
6506
{
6439
- Min = Max = values[start];
6440
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
6507
+ if (count <= 0)
6508
+ {
6509
+ Min = long.MaxValue;
6510
+ Max = long.MinValue;
6511
+ }
6512
+ else
6513
+ {
6514
+ Min = Max = values[start];
6515
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
6516
+ }
6441
6517
}
6442
6518
6443
6519
/// <summary>
@@ -6448,6 +6524,7 @@ public Range1l(IEnumerable<long> values)
6448
6524
{
6449
6525
Min = long.MaxValue;
6450
6526
Max = long.MinValue;
6527
+ if (values == null) return;
6451
6528
foreach (long v in values) ExtendBy(v);
6452
6529
}
6453
6530
@@ -7448,7 +7525,9 @@ public Range1ul(Range1ul b0, Range1ul b1, Range1ul b2, Range1ul b3)
7448
7525
[MethodImpl(MethodImplOptions.AggressiveInlining)]
7449
7526
public Range1ul(ulong[] values)
7450
7527
{
7451
- Min = Max = values[0];
7528
+ Min = ulong.MaxValue;
7529
+ Max = ulong.MinValue;
7530
+ if (values == null) return;
7452
7531
long count = values.LongLength;
7453
7532
for (long i = 1; i < count; i++) ExtendBy(values[i]);
7454
7533
}
@@ -7460,8 +7539,16 @@ public Range1ul(ulong[] values)
7460
7539
[MethodImpl(MethodImplOptions.AggressiveInlining)]
7461
7540
public Range1ul(ulong[] values, long start, long count)
7462
7541
{
7463
- Min = Max = values[start];
7464
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
7542
+ if (count <= 0)
7543
+ {
7544
+ Min = ulong.MaxValue;
7545
+ Max = ulong.MinValue;
7546
+ }
7547
+ else
7548
+ {
7549
+ Min = Max = values[start];
7550
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
7551
+ }
7465
7552
}
7466
7553
7467
7554
/// <summary>
@@ -7472,6 +7559,7 @@ public Range1ul(IEnumerable<ulong> values)
7472
7559
{
7473
7560
Min = ulong.MaxValue;
7474
7561
Max = ulong.MinValue;
7562
+ if (values == null) return;
7475
7563
foreach (ulong v in values) ExtendBy(v);
7476
7564
}
7477
7565
@@ -8470,7 +8558,9 @@ public Range1f(Range1f b0, Range1f b1, Range1f b2, Range1f b3)
8470
8558
[MethodImpl(MethodImplOptions.AggressiveInlining)]
8471
8559
public Range1f(float[] values)
8472
8560
{
8473
- Min = Max = values[0];
8561
+ Min = Constant<float>.ParseableMaxValue;
8562
+ Max = Constant<float>.ParseableMinValue;
8563
+ if (values == null) return;
8474
8564
long count = values.LongLength;
8475
8565
for (long i = 1; i < count; i++) ExtendBy(values[i]);
8476
8566
}
@@ -8482,8 +8572,16 @@ public Range1f(float[] values)
8482
8572
[MethodImpl(MethodImplOptions.AggressiveInlining)]
8483
8573
public Range1f(float[] values, long start, long count)
8484
8574
{
8485
- Min = Max = values[start];
8486
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
8575
+ if (count <= 0)
8576
+ {
8577
+ Min = Constant<float>.ParseableMaxValue;
8578
+ Max = Constant<float>.ParseableMinValue;
8579
+ }
8580
+ else
8581
+ {
8582
+ Min = Max = values[start];
8583
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
8584
+ }
8487
8585
}
8488
8586
8489
8587
/// <summary>
@@ -8494,6 +8592,7 @@ public Range1f(IEnumerable<float> values)
8494
8592
{
8495
8593
Min = Constant<float>.ParseableMaxValue;
8496
8594
Max = Constant<float>.ParseableMinValue;
8595
+ if (values == null) return;
8497
8596
foreach (float v in values) ExtendBy(v);
8498
8597
}
8499
8598
@@ -9546,7 +9645,9 @@ public Range1d(Range1d b0, Range1d b1, Range1d b2, Range1d b3)
9546
9645
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9547
9646
public Range1d(double[] values)
9548
9647
{
9549
- Min = Max = values[0];
9648
+ Min = Constant<double>.ParseableMaxValue;
9649
+ Max = Constant<double>.ParseableMinValue;
9650
+ if (values == null) return;
9550
9651
long count = values.LongLength;
9551
9652
for (long i = 1; i < count; i++) ExtendBy(values[i]);
9552
9653
}
@@ -9558,8 +9659,16 @@ public Range1d(double[] values)
9558
9659
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9559
9660
public Range1d(double[] values, long start, long count)
9560
9661
{
9561
- Min = Max = values[start];
9562
- for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
9662
+ if (count <= 0)
9663
+ {
9664
+ Min = Constant<double>.ParseableMaxValue;
9665
+ Max = Constant<double>.ParseableMinValue;
9666
+ }
9667
+ else
9668
+ {
9669
+ Min = Max = values[start];
9670
+ for (long i = start + 1, e = start + count; i < e; i++) ExtendBy(values[i]);
9671
+ }
9563
9672
}
9564
9673
9565
9674
/// <summary>
@@ -9570,6 +9679,7 @@ public Range1d(IEnumerable<double> values)
9570
9679
{
9571
9680
Min = Constant<double>.ParseableMaxValue;
9572
9681
Max = Constant<double>.ParseableMinValue;
9682
+ if (values == null) return;
9573
9683
foreach (double v in values) ExtendBy(v);
9574
9684
}
9575
9685
0 commit comments