4747import static org .apache .datasketches .cpc .PreambleUtil .putSparseHybridMerged ;
4848import static org .apache .datasketches .cpc .RuntimeAsserts .rtAssert ;
4949
50+ import java .lang .foreign .MemorySegment ;
51+
5052import org .apache .datasketches .common .Util ;
51- import org .apache .datasketches .memory .Memory ;
52- import org .apache .datasketches .memory .WritableMemory ;
5353
5454/**
5555 * @author Lee Rhodes
@@ -118,121 +118,121 @@ long getRequiredSerializedBytes() {
118118 return 4L * (preInts + csvLengthInts + cwLengthInts );
119119 }
120120
121- static CompressedState importFromMemory (final Memory mem ) {
122- checkLoPreamble (mem );
123- rtAssert (isCompressed (mem ));
124- final int lgK = getLgK (mem );
125- final short seedHash = getSeedHash (mem );
121+ static CompressedState importFromSegment (final MemorySegment seg ) {
122+ checkLoPreamble (seg );
123+ rtAssert (isCompressed (seg ));
124+ final int lgK = getLgK (seg );
125+ final short seedHash = getSeedHash (seg );
126126 final CompressedState state = new CompressedState (lgK , seedHash );
127- final int fmtOrd = getFormatOrdinal (mem );
127+ final int fmtOrd = getFormatOrdinal (seg );
128128 final Format format = Format .ordinalToFormat (fmtOrd );
129- state .mergeFlag = ! ((fmtOrd & 1 ) > 0 ); //merge flag is complement of HIP
129+ state .mergeFlag = ((fmtOrd & 1 ) <= 0 ); //merge flag is complement of HIP
130130 state .csvIsValid = (fmtOrd & 2 ) > 0 ;
131131 state .windowIsValid = (fmtOrd & 4 ) > 0 ;
132132
133133 switch (format ) {
134134 case EMPTY_MERGED :
135135 case EMPTY_HIP : {
136- checkCapacity (mem . getCapacity (), 8L );
136+ checkCapacity (seg . byteSize (), 8L );
137137 break ;
138138 }
139139 case SPARSE_HYBRID_MERGED : {
140140 //state.fiCol = getFiCol(mem);
141- state .numCoupons = getNumCoupons (mem );
141+ state .numCoupons = getNumCoupons (seg );
142142 state .numCsv = (int ) state .numCoupons ; //only true for sparse_hybrid
143- state .csvLengthInts = getSvLengthInts (mem );
143+ state .csvLengthInts = getSvLengthInts (seg );
144144 //state.cwLength = getCwLength(mem);
145145 //state.kxp = getKxP(mem);
146146 //state.hipEstAccum = getHipAccum(mem);
147- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
147+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
148148 //state.cwStream = getCwStream(mem);
149- state .csvStream = getSvStream (mem );
149+ state .csvStream = getSvStream (seg );
150150 break ;
151151 }
152152 case SPARSE_HYBRID_HIP : {
153153 //state.fiCol = getFiCol(mem);
154- state .numCoupons = getNumCoupons (mem );
154+ state .numCoupons = getNumCoupons (seg );
155155 state .numCsv = (int ) state .numCoupons ; //only true for sparse_hybrid
156- state .csvLengthInts = getSvLengthInts (mem );
156+ state .csvLengthInts = getSvLengthInts (seg );
157157 //state.cwLength = getCwLength(mem);
158- state .kxp = getKxP (mem );
159- state .hipEstAccum = getHipAccum (mem );
160- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
158+ state .kxp = getKxP (seg );
159+ state .hipEstAccum = getHipAccum (seg );
160+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
161161 //state.cwStream = getCwStream(mem);
162- state .csvStream = getSvStream (mem );
162+ state .csvStream = getSvStream (seg );
163163 break ;
164164 }
165165 case PINNED_SLIDING_MERGED_NOSV : {
166- state .fiCol = getFiCol (mem );
167- state .numCoupons = getNumCoupons (mem );
166+ state .fiCol = getFiCol (seg );
167+ state .numCoupons = getNumCoupons (seg );
168168 //state.numCsv = getNumCsv(mem);
169169 //state.csvLength = getCsvLength(mem);
170- state .cwLengthInts = getWLengthInts (mem );
170+ state .cwLengthInts = getWLengthInts (seg );
171171 //state.kxp = getKxP(mem);
172172 //state.hipEstAccum = getHipAccum(mem);
173- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
174- state .cwStream = getWStream (mem );
173+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
174+ state .cwStream = getWStream (seg );
175175 //state.csvStream = getCsvStream(mem);
176176 break ;
177177 }
178178 case PINNED_SLIDING_HIP_NOSV : {
179- state .fiCol = getFiCol (mem );
180- state .numCoupons = getNumCoupons (mem );
179+ state .fiCol = getFiCol (seg );
180+ state .numCoupons = getNumCoupons (seg );
181181 //state.numCsv = getNumCsv(mem);
182182 //state.csvLength = getCsvLength(mem);
183- state .cwLengthInts = getWLengthInts (mem );
184- state .kxp = getKxP (mem );
185- state .hipEstAccum = getHipAccum (mem );
186- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
187- state .cwStream = getWStream (mem );
183+ state .cwLengthInts = getWLengthInts (seg );
184+ state .kxp = getKxP (seg );
185+ state .hipEstAccum = getHipAccum (seg );
186+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
187+ state .cwStream = getWStream (seg );
188188 //state.csvStream = getCsvStream(mem);
189189 break ;
190190 }
191191 case PINNED_SLIDING_MERGED : {
192- state .fiCol = getFiCol (mem );
193- state .numCoupons = getNumCoupons (mem );
194- state .numCsv = getNumSv (mem );
195- state .csvLengthInts = getSvLengthInts (mem );
196- state .cwLengthInts = getWLengthInts (mem );
192+ state .fiCol = getFiCol (seg );
193+ state .numCoupons = getNumCoupons (seg );
194+ state .numCsv = getNumSv (seg );
195+ state .csvLengthInts = getSvLengthInts (seg );
196+ state .cwLengthInts = getWLengthInts (seg );
197197 //state.kxp = getKxP(mem);
198198 //state.hipEstAccum = getHipAccum(mem);
199- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
200- state .cwStream = getWStream (mem );
201- state .csvStream = getSvStream (mem );
199+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
200+ state .cwStream = getWStream (seg );
201+ state .csvStream = getSvStream (seg );
202202 break ;
203203 }
204204 case PINNED_SLIDING_HIP : {
205- state .fiCol = getFiCol (mem );
206- state .numCoupons = getNumCoupons (mem );
207- state .numCsv = getNumSv (mem );
208- state .csvLengthInts = getSvLengthInts (mem );
209- state .cwLengthInts = getWLengthInts (mem );
210- state .kxp = getKxP (mem );
211- state .hipEstAccum = getHipAccum (mem );
212- checkCapacity (mem . getCapacity (), state .getRequiredSerializedBytes ());
213- state .cwStream = getWStream (mem );
214- state .csvStream = getSvStream (mem );
205+ state .fiCol = getFiCol (seg );
206+ state .numCoupons = getNumCoupons (seg );
207+ state .numCsv = getNumSv (seg );
208+ state .csvLengthInts = getSvLengthInts (seg );
209+ state .cwLengthInts = getWLengthInts (seg );
210+ state .kxp = getKxP (seg );
211+ state .hipEstAccum = getHipAccum (seg );
212+ checkCapacity (seg . byteSize (), state .getRequiredSerializedBytes ());
213+ state .cwStream = getWStream (seg );
214+ state .csvStream = getSvStream (seg );
215215 break ;
216216 }
217217 }
218- checkCapacity (mem . getCapacity (),
219- 4L * (getPreInts (mem ) + state .csvLengthInts + state .cwLengthInts ));
218+ checkCapacity (seg . byteSize (),
219+ 4L * (getPreInts (seg ) + state .csvLengthInts + state .cwLengthInts ));
220220 return state ;
221221 }
222222
223- void exportToMemory (final WritableMemory wmem ) {
223+ void exportToSegment (final MemorySegment wseg ) {
224224 final Format format = getFormat ();
225225 switch (format ) {
226226 case EMPTY_MERGED : {
227- putEmptyMerged (wmem , lgK , seedHash );
227+ putEmptyMerged (wseg , lgK , seedHash );
228228 break ;
229229 }
230230 case EMPTY_HIP : {
231- putEmptyHip (wmem , lgK , seedHash );
231+ putEmptyHip (wseg , lgK , seedHash );
232232 break ;
233233 }
234234 case SPARSE_HYBRID_MERGED : {
235- putSparseHybridMerged (wmem ,
235+ putSparseHybridMerged (wseg ,
236236 lgK ,
237237 (int ) numCoupons , //unsigned
238238 csvLengthInts ,
@@ -241,7 +241,7 @@ void exportToMemory(final WritableMemory wmem) {
241241 break ;
242242 }
243243 case SPARSE_HYBRID_HIP : {
244- putSparseHybridHip (wmem ,
244+ putSparseHybridHip (wseg ,
245245 lgK ,
246246 (int ) numCoupons , //unsigned
247247 csvLengthInts ,
@@ -252,7 +252,7 @@ void exportToMemory(final WritableMemory wmem) {
252252 break ;
253253 }
254254 case PINNED_SLIDING_MERGED_NOSV : {
255- putPinnedSlidingMergedNoSv (wmem ,
255+ putPinnedSlidingMergedNoSv (wseg ,
256256 lgK ,
257257 fiCol ,
258258 (int ) numCoupons , //unsigned
@@ -262,7 +262,7 @@ void exportToMemory(final WritableMemory wmem) {
262262 break ;
263263 }
264264 case PINNED_SLIDING_HIP_NOSV : {
265- putPinnedSlidingHipNoSv (wmem ,
265+ putPinnedSlidingHipNoSv (wseg ,
266266 lgK ,
267267 fiCol ,
268268 (int ) numCoupons , //unsigned
@@ -274,7 +274,7 @@ void exportToMemory(final WritableMemory wmem) {
274274 break ;
275275 }
276276 case PINNED_SLIDING_MERGED : {
277- putPinnedSlidingMerged (wmem ,
277+ putPinnedSlidingMerged (wseg ,
278278 lgK ,
279279 fiCol ,
280280 (int ) numCoupons , //unsigned
@@ -287,7 +287,7 @@ void exportToMemory(final WritableMemory wmem) {
287287 break ;
288288 }
289289 case PINNED_SLIDING_HIP : {
290- putPinnedSlidingHip (wmem ,
290+ putPinnedSlidingHip (wseg ,
291291 lgK ,
292292 fiCol ,
293293 (int ) numCoupons , //unsigned
0 commit comments