public static IntVector make(int... vals) { return new IntVector(vals); } }
@Override public Vector<Integer> fromString(String s, int n) throws VectorFormatException { return IntVector.fromString(s, n); }
@Override public boolean containsKey(int idx) { return idx >= 0 && idx < length(); }
@Override public <M extends Number, O extends Number> Vector<O> mult(Vector<M> x, Vectors.Factory<O> using) { assert (x.length() == n); double[] product = new double[m]; if (x instanceof RealVector) { final double[] x2 = ((RealVector) x).data(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { product[i] += data[i][j] * x2[j]; } } } else if (x instanceof IntVector) { final int[] x2 = ((IntVector) x).data(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { product[i] += data[i][j] * x2[j]; } } } else { for (int i = 0; i < m; i++) { for (Map.Entry<Integer, M> e : x.entrySet()) { product[i] += data[i][e.getKey()] * e.getValue().doubleValue(); } } } return using.make(product); }
@Override public IntSet keySet() { return new IntStreamSet(size()); }
@Override public <M extends Number, O extends Number> Vector<O> mult(Vector<M> x, Vectors.Factory<O> using) { assert (x.length() == n); double[] product = new double[m]; if (x instanceof RealVector) { final double[] x2 = ((RealVector) x).data(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { product[i] += data[i][j] * x2[j]; } } } else if (x instanceof IntVector) { final int[] x2 = ((IntVector) x).data(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { product[i] += data[i][j] * x2[j]; } } } else { for (int i = 0; i < m; i++) { for (Map.Entry<Integer, M> e : x.entrySet()) { product[i] += data[i][e.getKey()] * e.getValue().doubleValue(); } } } return using.make(product); }
@Override public Vector<Integer> row(int i) { return new IntVector(data[i]); }
@Override public <M extends Number> Vector<Integer> multTransposed(Vector<M> x) { assert (x.length() == m); double[] product = new double[n]; if (x instanceof RealVector) { final double[] x2 = ((RealVector) x).data(); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { product[i] += data[j][i] * x2[j]; } } } else if (x instanceof IntVector) { final int[] x2 = ((IntVector) x).data(); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { product[i] += data[j][i] * x2[j]; } } } else { for (int i = 0; i < n; i++) { for (Map.Entry<Integer, M> e : x.entrySet()) { product[i] += data[e.getKey()][i] * e.getValue().doubleValue(); } } } return Vectors.AS_INTS.make(product); }
@Override public Vector<Integer> make(double[] data) { int[] data2 = new int[data.length]; for (int i = 0; i < data.length; i++) { data2[i] = (int) data[i]; } return new IntVector(data2); }
@Override public <M extends Number> Vector<Double> multTransposed(Vector<M> x) { assert (x.length() == m); double[] product = new double[n]; if (x instanceof RealVector) { final double[] x2 = ((RealVector) x).data(); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { product[i] += data[j][i] * x2[j]; } } } else if (x instanceof IntVector) { final int[] x2 = ((IntVector) x).data(); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { product[i] += data[j][i] * x2[j]; } } } else { for (int i = 0; i < n; i++) { for (Map.Entry<Integer, M> e : x.entrySet()) { product[i] += data[e.getKey()][i] * e.getValue().doubleValue(); } } } return new RealVector(product); }
public static IntVector make(int... data) { return new IntVector(data); }
int[] y2 = ((IntVector) y).data(); if (defaultValue == 0) { int innerProduct = 0;
final int[] y2 = ((IntVector) y).data(); if (defaultValue == 0) { double innerProduct = 0;
@Override public Vector<Integer> clone() { return new IntVector(Arrays.copyOf(data, data.length)); }
@Override public Vector<Integer> subvector(int offset, int length) { int[] sd = Arrays.copyOfRange(data, offset, offset+length); return new IntVector(sd); }
throw new VectorFormatException("Real vector too long"); return new IntVector(data);