papilo/papilo-vector-bounds.patch
2024-02-21 14:24:22 -07:00

72 lines
3.5 KiB
Diff

--- papilo-2.2.0/src/papilo/core/SparseStorage.hpp.orig 2024-02-19 15:44:49.656384717 -0700
+++ papilo-2.2.0/src/papilo/core/SparseStorage.hpp 2024-02-19 15:50:47.920748054 -0700
@@ -857,15 +857,15 @@ SparseStorage<REAL>::shiftRows( const in
// space
} while( rowranges[l].start == rowranges[l - 1].end );
- REAL* valsout = &values[rowranges[l].start - lastshiftleft];
- int* colsout = &columns[rowranges[l].start - lastshiftleft];
+ REAL* valsout = &values.data()[rowranges[l].start - lastshiftleft];
+ int* colsout = &columns.data()[rowranges[l].start - lastshiftleft];
assert( rowranges[l - 1].end <=
rowranges[l].start - lastshiftleft );
while( l <= row )
{
- int shift = &values[rowranges[l].start] - valsout;
+ int shift = &values.data()[rowranges[l].start] - valsout;
#ifndef NDEBUG
Vec<REAL> tmpvals;
@@ -877,10 +877,10 @@ SparseStorage<REAL>::shiftRows( const in
#endif
if( rowranges[l].start != rowranges[l].end )
{
- valsout = std::move( &values[rowranges[l].start],
- &values[rowranges[l].end], valsout );
- colsout = std::move( &columns[rowranges[l].start],
- &columns[rowranges[l].end], colsout );
+ valsout = std::move( &values.data()[rowranges[l].start],
+ &values.data()[rowranges[l].end], valsout );
+ colsout = std::move( &columns.data()[rowranges[l].start],
+ &columns.data()[rowranges[l].end], colsout );
}
rowranges[l].start -= shift;
@@ -907,15 +907,15 @@ SparseStorage<REAL>::shiftRows( const in
// space
} while( rowranges[r].end == rowranges[r + 1].start );
- REAL* valsout = &values[rowranges[r].end + lastshiftright];
- int* colsout = &columns[rowranges[r].end + lastshiftright];
+ REAL* valsout = &values.data()[rowranges[r].end + lastshiftright];
+ int* colsout = &columns.data()[rowranges[r].end + lastshiftright];
assert( rowranges[r + 1].start >=
rowranges[r].end + lastshiftright );
while( r > row )
{
- int shift = valsout - &values[rowranges[r].end];
+ int shift = valsout - &values.data()[rowranges[r].end];
#ifndef NDEBUG
Vec<REAL> tmpvals;
@@ -928,11 +928,11 @@ SparseStorage<REAL>::shiftRows( const in
if( rowranges[r].start != rowranges[r].end )
{
valsout =
- std::move_backward( &values[rowranges[r].start],
- &values[rowranges[r].end], valsout );
+ std::move_backward( &values.data()[rowranges[r].start],
+ &values.data()[rowranges[r].end], valsout );
colsout =
- std::move_backward( &columns[rowranges[r].start],
- &columns[rowranges[r].end], colsout );
+ std::move_backward( &columns.data()[rowranges[r].start],
+ &columns.data()[rowranges[r].end], colsout );
}
rowranges[r].start += shift;