@Override public Vector<Double> make(double[] data) { return new RealVector(data); }
@Override public Vector<Double> row(int i) { return new RealVector(data[i]); }
public static RealVector make(double... vals) { return new RealVector(vals); }
public static RealVector make(double... data) { return new RealVector(data); }
@Override public Vector<Double> make(int n, double defaultValue) { if (defaultValue == 0.0) { return new RealVector(n); } else { double[] data = new double[n]; Arrays.fill(data, defaultValue); return new RealVector(data); } }
@Override public Vector<Double> subvector(int offset, int length) { double[] sd = Arrays.copyOfRange(data, offset, offset+length); return new RealVector(sd); }
@Override public Vector<Double> clone() { return new RealVector(Arrays.copyOf(data, data.length)); }
protected static Vector<Double> randomUnitNormVector(int J) { final double[] rv = new double[J]; double norm = 0.0; for (int j = 0; j < J; j++) { rv[j] = r().nextDouble(); norm += rv[j] * rv[j]; } norm = Math.sqrt(norm); for (int j = 0; j < J; j++) { rv[j] /= norm; } return new RealVector(rv); }
public BetaLMImpl(File data) throws IOException { final ParallelReader pr = ParallelReader.fromFile(data); this.W = pr.W(); this.x = pr.x; this.mu = new RealVector(this.W); this.mu_f = new RealVector(this.W); this.sumMu2 = initMu(x, this.W); if (method == Method.DF_DICE || method == Method.DF_JACCARD) { df = new RealVector(this.W); this.dfSp = null; for (int j = 0; j < x.length; j++) { for (int w : x[j][0].keySet()) { df.add(w, 1); } } for (int w = 0; w < this.W; w++) { df.divide(w,x.length); } } else { df = null; dfSp = null; } }
@Override public Vector<Double> row(int i) { final RealVector v = new RealVector(alpha.length); if (i > 0) { v.put(i - 1, beta[i - 1]); } v.put(i, alpha[i]); if (i + 1 < alpha.length) { v.put(i + 1, beta[i]); } return v; }
throw new VectorFormatException("Real vector too long"); return new RealVector(data);
@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); }
q[k] = new RealVector(Arrays.copyOf(r, r.length)); q[k].multiply(1.0 / h[k][k]); h[i][k] = q[i].innerProduct(new RealVector(r));
final PrecomputedValues p = new PrecomputedValues(); p.W = W; p.df = new RealVector(W); p.mu = new RealVector(W); final DataInputStream dis = new DataInputStream(new FileInputStream(corpus)); boolean inDoc = type != SourceType.FIRST;
sim[w] = sim[w] / N; return new RealVector(sim);
w[i] = gamma[i] * w[i + 1] + delta[i]; return new RealVector(w);
@Override public Vector<Double> apply(Vector<Double> v) { double[] mid = new double[W]; int n = 0; IntIterator data = corpus.iterator(); while (data.hasNext()) { int i = data.nextInt(); if (i != 0) { mid[i - 1] += v.doubleValue(n); } else { n++; } } n = 0; double[] a = new double[v.length()]; data = corpus.iterator(); while (data.hasNext()) { int i = data.nextInt(); if (i != 0) { a[n] += mid[i - 1]; } else { n++; } } return new RealVector(a); } }
@Override public Vector<Double> apply(Vector<Double> v) { double[] mid = new double[J]; int n = 0; IntIterator data = corpus.iterator(); while (data.hasNext()) { int i = data.nextInt(); if (i != 0) { mid[n] += v.doubleValue(i - 1); } else { n++; } } n = 0; double[] a = new double[v.length()]; data = corpus.iterator(); while (data.hasNext()) { int i = data.nextInt(); if (i != 0) { a[i - 1] += mid[n]; } else { n++; } } return new RealVector(a); } }
final Vector<Double> av = A.apply(new RealVector(v)); for (int i = 0; i < n; i++) { r[i] = av.doubleValue(i) - v2[i];
double[] beta = new double[n - 1]; for (int k = 0; k < n - 2; k++) { final RealVector x = new RealVector(n - k - 1); for (int j = k + 1; j < n; j++) { x.put(j - k - 1, A2.doubleValue(j, k)); final RealVector w = new RealVector(n - k - 1); for (int i = 0; i < n - k - 1; i++) { for (int j = 0; j < n - k - 1; j++) {