@@ -926,7 +926,7 @@ module DefaultRectangular {
926
926
high = if rad.stridable then strideAlignDown(high, newDom.dsiDim(mdParDim)) else high;
927
927
928
928
const rng = low..high;
929
- rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(mdParDim).stride;
929
+ rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(mdParDim).stride align newDom.dsiDim(mdParDim).alignment ;
930
930
}
931
931
932
932
}
@@ -980,7 +980,7 @@ module DefaultRectangular {
980
980
high += radLo;
981
981
982
982
const rng = low..high;
983
- rad.mData(i).pdr = if !rad.stridable then rng else rng by radStr;
983
+ rad.mData(i).pdr = if !rad.stridable then rng else rng by radStr align newDom.dsiDim(mdParDim).alignment ;
984
984
}
985
985
}
986
986
@@ -1052,7 +1052,7 @@ module DefaultRectangular {
1052
1052
for i in 1 ..#mdNumChunks {
1053
1053
const rng = max (this .mData(i).pdr.low, newDom.dsiDim(rad.mdParDim).low)
1054
1054
..min (this .mData(i).pdr.high, newDom.dsiDim(rad.mdParDim).high);
1055
- rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(rad.mdParDim).stride;
1055
+ rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(rad.mdParDim).stride align newDom.dsiDim(rad.mdParDim).alignment ;
1056
1056
}
1057
1057
} else {
1058
1058
// If the mdParDim'th dimension is removed, then we switch to
@@ -1069,7 +1069,7 @@ module DefaultRectangular {
1069
1069
for i in 1 ..#mdNumChunks {
1070
1070
const (lo, hi) = rad.mdChunk2Ind(i- 1 );
1071
1071
const rng = max (lo, newDom.dsiDim(1 ).low) .. min (hi, newDom.dsiDim(1 ).high);
1072
- rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(1 ).stride;
1072
+ rad.mData(i).pdr = if !rad.stridable then rng else rng by newDom.dsiDim(1 ).stride align newDom.dsiDim( 1 ).alignment ;
1073
1073
}
1074
1074
}
1075
1075
}
@@ -1575,7 +1575,7 @@ module DefaultRectangular {
1575
1575
if mdNumChunks == 1 {
1576
1576
if stridable then
1577
1577
mData(0 ).pdr = dom.dsiDim(mdParDim).low..dom.dsiDim(mdParDim).high
1578
- by dom.dsiDim(mdParDim).stride;
1578
+ by dom.dsiDim(mdParDim).stride align dom.dsiDim(mdParDim).alignment ;
1579
1579
else
1580
1580
mData(0 ).pdr = dom.dsiDim(mdParDim).low..dom.dsiDim(mdParDim).high;
1581
1581
mData(0 ).data =
@@ -1589,7 +1589,7 @@ module DefaultRectangular {
1589
1589
mData(i).dataOff = dataOff;
1590
1590
const (lo, hi) = mdChunk2Ind(i);
1591
1591
if stridable then
1592
- mData(i).pdr = lo..hi by dom.dsiDim(mdParDim).stride;
1592
+ mData(i).pdr = lo..hi by dom.dsiDim(mdParDim).stride align dom.dsiDim(mdParDim).alignment ;
1593
1593
else
1594
1594
mData(i).pdr = lo..hi;
1595
1595
const chunkSize = size / mdRLen * mData(i).pdr.length;
0 commit comments