MCPcopy Create free account
hub / github.com/WinVector/Logistic / SparseSemiVec

Class SparseSemiVec

src/com/winvector/opt/impl/SparseSemiVec.java:8–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6
7
8public final class SparseSemiVec implements Datum,Serializable {
9 private static final long serialVersionUID = 1L;
10
11 private final int[] indices;
12 private final double[] values;
13
14 public SparseSemiVec(final double[] denseVec) {
15 final int dim = denseVec.length;
16 int ii = 0;
17 for(int i=0;i<dim;++i) {
18 if(denseVec[i]!=0.0) {
19 ++ii;
20 }
21 }
22 final int card = ii;
23 indices = new int[card];
24 values = new double[card];
25 ii = 0;
26 for(int i=0;(i<dim)&&(ii<card);++i) {
27 if(denseVec[i]!=0.0) {
28 indices[ii] = i;
29 values[ii] = denseVec[i];
30 ++ii;
31 }
32 }
33 }
34
35 public int getNIndices() {
36 return indices.length;
37 }
38
39 public int getKthIndex(final int ii) {
40 return indices[ii];
41 }
42
43 public double getKthValue(final int ii) {
44 return values[ii];
45 }
46
47 @Override
48 public String toString() {
49 final StringBuilder b = new StringBuilder();
50 b.append("[");
51 final int card = indices.length;
52 for(int ii=0;ii<card;++ii) {
53 final int i = indices[ii];
54 final double v = values[ii];
55 b.append("\t" + i + ":" + v);
56 }
57 b.append("\t]");
58 return b.toString();
59 }
60}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected