MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / sortedCopy

Method sortedCopy

JSAT/src/jsat/linear/SparseVector.java:288–314  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

286 }
287
288 @Override
289 public Vec sortedCopy()
290 {
291 IndexTable it = new IndexTable(DoubleList.unmodifiableView(values, used));
292
293 double[] newValues = new double[used];
294 int[] newIndecies = new int[used];
295
296 int lessThanZero = 0;
297 for(int i = 0; i < used; i++)
298 {
299 int origIndex = it.index(i);
300 newValues[i] = values[origIndex];
301 if(newValues[i] < 0)
302 lessThanZero++;
303 newIndecies[i] = i;
304 }
305 //all < 0 values are right, now correct > 0 values
306 for(int i = lessThanZero; i < used; i++)
307 newIndecies[i] = length-(used-lessThanZero)+(i-lessThanZero);
308
309 SparseVector sv = new SparseVector(length);
310 sv.used = this.used;
311 sv.values = newValues;
312 sv.indexes = newIndecies;
313 return sv;
314 }
315
316 /**
317 * Returns the index of the last non-zero value, or -1 if all values are zero.

Callers

nothing calls this directly

Calls 2

unmodifiableViewMethod · 0.95
indexMethod · 0.95

Tested by

no test coverage detected