@@ -606,12 +606,12 @@ public static unsafe void Scale(float scale, Span<float> dst)
606
606
}
607
607
}
608
608
609
- public static unsafe void ScaleSrcU ( float scale , Span < float > src , Span < float > dst )
609
+ public static unsafe void ScaleSrcU ( float scale , ReadOnlySpan < float > src , Span < float > dst , int count )
610
610
{
611
611
fixed ( float * psrc = src )
612
612
fixed ( float * pdst = dst )
613
613
{
614
- float * pDstEnd = pdst + dst . Length ;
614
+ float * pDstEnd = pdst + count ;
615
615
float * pSrcCurrent = psrc ;
616
616
float * pDstCurrent = pdst ;
617
617
@@ -697,14 +697,14 @@ public static unsafe void ScaleAddU(float a, float b, Span<float> dst)
697
697
}
698
698
}
699
699
700
- public static unsafe void AddScaleU ( float scale , Span < float > src , Span < float > dst )
700
+ public static unsafe void AddScaleU ( float scale , ReadOnlySpan < float > src , Span < float > dst , int count )
701
701
{
702
702
fixed ( float * psrc = src )
703
703
fixed ( float * pdst = dst )
704
704
{
705
705
float * pSrcCurrent = psrc ;
706
706
float * pDstCurrent = pdst ;
707
- float * pEnd = pdst + dst . Length ;
707
+ float * pEnd = pdst + count ;
708
708
709
709
Vector256 < float > scaleVector256 = Avx . SetAllVector256 ( scale ) ;
710
710
@@ -751,13 +751,13 @@ public static unsafe void AddScaleU(float scale, Span<float> src, Span<float> ds
751
751
}
752
752
}
753
753
754
- public static unsafe void AddScaleCopyU ( float scale , Span < float > src , Span < float > dst , Span < float > result )
754
+ public static unsafe void AddScaleCopyU ( float scale , ReadOnlySpan < float > src , ReadOnlySpan < float > dst , Span < float > result , int count )
755
755
{
756
756
fixed ( float * psrc = src )
757
757
fixed ( float * pdst = dst )
758
758
fixed ( float * pres = result )
759
759
{
760
- float * pResEnd = pres + result . Length ;
760
+ float * pResEnd = pres + count ;
761
761
float * pSrcCurrent = psrc ;
762
762
float * pDstCurrent = pdst ;
763
763
float * pResCurrent = pres ;
@@ -807,7 +807,7 @@ public static unsafe void AddScaleCopyU(float scale, Span<float> src, Span<float
807
807
}
808
808
}
809
809
810
- public static unsafe void AddScaleSU ( float scale , Span < float > src , Span < int > idx , Span < float > dst )
810
+ public static unsafe void AddScaleSU ( float scale , ReadOnlySpan < float > src , ReadOnlySpan < int > idx , Span < float > dst , int count )
811
811
{
812
812
fixed ( float * psrc = src )
813
813
fixed ( int * pidx = idx )
@@ -816,7 +816,7 @@ public static unsafe void AddScaleSU(float scale, Span<float> src, Span<int> idx
816
816
float * pSrcCurrent = psrc ;
817
817
int * pIdxCurrent = pidx ;
818
818
float * pDstCurrent = pdst ;
819
- int * pEnd = pidx + idx . Length ;
819
+ int * pEnd = pidx + count ;
820
820
821
821
Vector256 < float > scaleVector256 = Avx . SetAllVector256 ( scale ) ;
822
822
@@ -858,14 +858,14 @@ public static unsafe void AddScaleSU(float scale, Span<float> src, Span<int> idx
858
858
}
859
859
}
860
860
861
- public static unsafe void AddU ( Span < float > src , Span < float > dst )
861
+ public static unsafe void AddU ( ReadOnlySpan < float > src , Span < float > dst , int count )
862
862
{
863
863
fixed ( float * psrc = src )
864
864
fixed ( float * pdst = dst )
865
865
{
866
866
float * pSrcCurrent = psrc ;
867
867
float * pDstCurrent = pdst ;
868
- float * pEnd = psrc + src . Length ;
868
+ float * pEnd = psrc + count ;
869
869
870
870
while ( pSrcCurrent + 8 <= pEnd )
871
871
{
@@ -905,7 +905,7 @@ public static unsafe void AddU(Span<float> src, Span<float> dst)
905
905
}
906
906
}
907
907
908
- public static unsafe void AddSU ( Span < float > src , Span < int > idx , Span < float > dst )
908
+ public static unsafe void AddSU ( ReadOnlySpan < float > src , ReadOnlySpan < int > idx , Span < float > dst , int count )
909
909
{
910
910
fixed ( float * psrc = src )
911
911
fixed ( int * pidx = idx )
@@ -914,7 +914,7 @@ public static unsafe void AddSU(Span<float> src, Span<int> idx, Span<float> dst)
914
914
float * pSrcCurrent = psrc ;
915
915
int * pIdxCurrent = pidx ;
916
916
float * pDstCurrent = pdst ;
917
- int * pEnd = pidx + idx . Length ;
917
+ int * pEnd = pidx + count ;
918
918
919
919
while ( pIdxCurrent + 8 <= pEnd )
920
920
{
@@ -950,7 +950,7 @@ public static unsafe void AddSU(Span<float> src, Span<int> idx, Span<float> dst)
950
950
}
951
951
}
952
952
953
- public static unsafe void MulElementWiseU ( Span < float > src1 , Span < float > src2 , Span < float > dst )
953
+ public static unsafe void MulElementWiseU ( ReadOnlySpan < float > src1 , ReadOnlySpan < float > src2 , Span < float > dst , int count )
954
954
{
955
955
fixed ( float * psrc1 = src1 )
956
956
fixed ( float * psrc2 = src2 )
@@ -959,7 +959,7 @@ public static unsafe void MulElementWiseU(Span<float> src1, Span<float> src2, Sp
959
959
float * pSrc1Current = psrc1 ;
960
960
float * pSrc2Current = psrc2 ;
961
961
float * pDstCurrent = pdst ;
962
- float * pEnd = pdst + dst . Length ;
962
+ float * pEnd = pdst + count ;
963
963
964
964
while ( pDstCurrent + 8 <= pEnd )
965
965
{
@@ -999,7 +999,7 @@ public static unsafe void MulElementWiseU(Span<float> src1, Span<float> src2, Sp
999
999
}
1000
1000
}
1001
1001
1002
- public static unsafe float SumU ( Span < float > src )
1002
+ public static unsafe float SumU ( ReadOnlySpan < float > src )
1003
1003
{
1004
1004
fixed ( float * psrc = src )
1005
1005
{
@@ -1037,7 +1037,7 @@ public static unsafe float SumU(Span<float> src)
1037
1037
}
1038
1038
}
1039
1039
1040
- public static unsafe float SumSqU ( Span < float > src )
1040
+ public static unsafe float SumSqU ( ReadOnlySpan < float > src )
1041
1041
{
1042
1042
fixed ( float * psrc = src )
1043
1043
{
@@ -1081,7 +1081,7 @@ public static unsafe float SumSqU(Span<float> src)
1081
1081
}
1082
1082
}
1083
1083
1084
- public static unsafe float SumSqDiffU ( float mean , Span < float > src )
1084
+ public static unsafe float SumSqDiffU ( float mean , ReadOnlySpan < float > src )
1085
1085
{
1086
1086
fixed ( float * psrc = src )
1087
1087
{
@@ -1130,7 +1130,7 @@ public static unsafe float SumSqDiffU(float mean, Span<float> src)
1130
1130
}
1131
1131
}
1132
1132
1133
- public static unsafe float SumAbsU ( Span < float > src )
1133
+ public static unsafe float SumAbsU ( ReadOnlySpan < float > src )
1134
1134
{
1135
1135
fixed ( float * psrc = src )
1136
1136
{
@@ -1174,7 +1174,7 @@ public static unsafe float SumAbsU(Span<float> src)
1174
1174
}
1175
1175
}
1176
1176
1177
- public static unsafe float SumAbsDiffU ( float mean , Span < float > src )
1177
+ public static unsafe float SumAbsDiffU ( float mean , ReadOnlySpan < float > src )
1178
1178
{
1179
1179
fixed ( float * psrc = src )
1180
1180
{
@@ -1223,7 +1223,7 @@ public static unsafe float SumAbsDiffU(float mean, Span<float> src)
1223
1223
}
1224
1224
}
1225
1225
1226
- public static unsafe float MaxAbsU ( Span < float > src )
1226
+ public static unsafe float MaxAbsU ( ReadOnlySpan < float > src )
1227
1227
{
1228
1228
fixed ( float * psrc = src )
1229
1229
{
@@ -1267,7 +1267,7 @@ public static unsafe float MaxAbsU(Span<float> src)
1267
1267
}
1268
1268
}
1269
1269
1270
- public static unsafe float MaxAbsDiffU ( float mean , Span < float > src )
1270
+ public static unsafe float MaxAbsDiffU ( float mean , ReadOnlySpan < float > src )
1271
1271
{
1272
1272
fixed ( float * psrc = src )
1273
1273
{
@@ -1316,14 +1316,14 @@ public static unsafe float MaxAbsDiffU(float mean, Span<float> src)
1316
1316
}
1317
1317
}
1318
1318
1319
- public static unsafe float DotU ( Span < float > src , Span < float > dst )
1319
+ public static unsafe float DotU ( ReadOnlySpan < float > src , ReadOnlySpan < float > dst , int count )
1320
1320
{
1321
1321
fixed ( float * psrc = src )
1322
1322
fixed ( float * pdst = dst )
1323
1323
{
1324
1324
float * pSrcCurrent = psrc ;
1325
1325
float * pDstCurrent = pdst ;
1326
- float * pSrcEnd = psrc + src . Length ;
1326
+ float * pSrcEnd = psrc + count ;
1327
1327
1328
1328
Vector256 < float > result256 = Avx . SetZeroVector256 < float > ( ) ;
1329
1329
@@ -1371,7 +1371,7 @@ public static unsafe float DotU(Span<float> src, Span<float> dst)
1371
1371
}
1372
1372
}
1373
1373
1374
- public static unsafe float DotSU ( Span < float > src , Span < float > dst , Span < int > idx )
1374
+ public static unsafe float DotSU ( ReadOnlySpan < float > src , ReadOnlySpan < float > dst , ReadOnlySpan < int > idx , int count )
1375
1375
{
1376
1376
fixed ( float * psrc = src )
1377
1377
fixed ( float * pdst = dst )
@@ -1380,7 +1380,7 @@ public static unsafe float DotSU(Span<float> src, Span<float> dst, Span<int> idx
1380
1380
float * pSrcCurrent = psrc ;
1381
1381
float * pDstCurrent = pdst ;
1382
1382
int * pIdxCurrent = pidx ;
1383
- int * pIdxEnd = pidx + idx . Length ;
1383
+ int * pIdxEnd = pidx + count ;
1384
1384
1385
1385
Vector256 < float > result256 = Avx . SetZeroVector256 < float > ( ) ;
1386
1386
@@ -1428,14 +1428,14 @@ public static unsafe float DotSU(Span<float> src, Span<float> dst, Span<int> idx
1428
1428
}
1429
1429
}
1430
1430
1431
- public static unsafe float Dist2 ( Span < float > src , Span < float > dst )
1431
+ public static unsafe float Dist2 ( ReadOnlySpan < float > src , ReadOnlySpan < float > dst , int count )
1432
1432
{
1433
1433
fixed ( float * psrc = src )
1434
1434
fixed ( float * pdst = dst )
1435
1435
{
1436
1436
float * pSrcCurrent = psrc ;
1437
1437
float * pDstCurrent = pdst ;
1438
- float * pSrcEnd = psrc + src . Length ;
1438
+ float * pSrcEnd = psrc + count ;
1439
1439
1440
1440
Vector256 < float > sqDistanceVector256 = Avx . SetZeroVector256 < float > ( ) ;
1441
1441
@@ -1482,13 +1482,13 @@ public static unsafe float Dist2(Span<float> src, Span<float> dst)
1482
1482
}
1483
1483
}
1484
1484
1485
- public static unsafe void SdcaL1UpdateU ( float primalUpdate , Span < float > src , float threshold , Span < float > v , Span < float > w )
1485
+ public static unsafe void SdcaL1UpdateU ( float primalUpdate , int count , ReadOnlySpan < float > src , float threshold , Span < float > v , Span < float > w )
1486
1486
{
1487
1487
fixed ( float * psrc = src )
1488
1488
fixed ( float * pdst1 = v )
1489
1489
fixed ( float * pdst2 = w )
1490
1490
{
1491
- float * pSrcEnd = psrc + src . Length ;
1491
+ float * pSrcEnd = psrc + count ;
1492
1492
float * pSrcCurrent = psrc ;
1493
1493
float * pDst1Current = pdst1 ;
1494
1494
float * pDst2Current = pdst2 ;
@@ -1544,14 +1544,14 @@ public static unsafe void SdcaL1UpdateU(float primalUpdate, Span<float> src, flo
1544
1544
}
1545
1545
}
1546
1546
1547
- public static unsafe void SdcaL1UpdateSU ( float primalUpdate , Span < float > src , Span < int > indices , float threshold , Span < float > v , Span < float > w )
1547
+ public static unsafe void SdcaL1UpdateSU ( float primalUpdate , int count , ReadOnlySpan < float > src , ReadOnlySpan < int > indices , float threshold , Span < float > v , Span < float > w )
1548
1548
{
1549
1549
fixed ( float * psrc = src )
1550
1550
fixed ( int * pidx = indices )
1551
1551
fixed ( float * pdst1 = v )
1552
1552
fixed ( float * pdst2 = w )
1553
1553
{
1554
- int * pIdxEnd = pidx + indices . Length ;
1554
+ int * pIdxEnd = pidx + count ;
1555
1555
float * pSrcCurrent = psrc ;
1556
1556
int * pIdxCurrent = pidx ;
1557
1557
0 commit comments