/** * Returns the number of cells having non-zero values, but at most maxCardinality; ignores tolerance. */ protected int cardinality(int maxCardinality) { int cardinality = 0; int i=size; while (--i >= 0 && cardinality < maxCardinality) { if (getQuick(i) != 0) cardinality++; } return cardinality; } /**
/** * Returns the number of cells having non-zero values; ignores tolerance. */ public int cardinality() { int cardinality = 0; for (int i=size; --i >= 0;) { if (getQuick(i) != 0) cardinality++; } return cardinality; } /**
/** * Returns the number of cells having non-zero values, but at most maxCardinality; ignores tolerance. */ protected int cardinality(int maxCardinality) { int cardinality = 0; int i=size; while (--i >= 0 && cardinality < maxCardinality) { if (getQuick(i) != 0) cardinality++; } return cardinality; } /**
/** Returns whether the matrix <tt>A</tt> has full rank. @return true if <tt>R</tt>, and hence <tt>A</tt>, has full rank. */ public boolean hasFullRank() { for (int j = 0; j < n; j++) { if (Rdiag.getQuick(j) == 0) return false; } return true; } /**
public int compare(int a, int b) { double av = splitters[a]; double bv = columnView.getQuick(g[b]); return av<bv ? -1 : (av==bv ? 0 : 1); } };
@Override public double apply(int i, int j, double aij) { double v = Math.log10(Math.abs(aij)) / log10_2 + 0.5; originalOFValue[0] = originalOFValue[0] + Math.pow(v, 2); double xi = Math.log10(U.getQuick(i)) / log10_2; double yj = Math.log10(V.getQuick(j)) / log10_2; scaledOFValue[0] = scaledOFValue[0] + Math.pow(xi + yj + v, 2); x[i] = xi; y[j] = yj; return aij; } });
@Override public double apply(int i, int j, double aij) { ret.setQuick(i, j, aij * diagonalU.getQuick(i)); return aij; } });
public static double vecMax(DoubleMatrix1D vec){ double curMax = Double.NEGATIVE_INFINITY; for(int i = 0; i < vec.size(); i++){ double curVal = vec.getQuick(i); if(curVal>curMax){ curMax = curVal; } } return curMax; }
/** * Returns the matrix cell value at coordinate <tt>index</tt>. * * @param index the index of the cell. * @return the value of the specified cell. * @throws IndexOutOfBoundsException if <tt>index<0 || index>=size()</tt>. */ public double get(int index) { if (index<0 || index>=size) checkIndex(index); return getQuick(index); } /**
@Override public double apply(int i, int j, double aij) { ret.setQuick(i, j, aij * diagonalU.getQuick(j)); return aij; } });
@Override public double error(Factorization<U, I> factorization, FastPreferenceData<U, I> data) { DenseDoubleMatrix2D pu_z = factorization.getUserMatrix(); DenseDoubleMatrix2D piz = factorization.getItemMatrix(); return data.getUidxWithPreferences().parallel().mapToDouble(uidx -> { DoubleMatrix1D pU_z = pu_z.viewRow(uidx); DoubleMatrix1D pUi = piz.zMult(pU_z, null); return data.getUidxPreferences(uidx) .mapToDouble(iv -> -iv.v2 * pUi.getQuick(iv.v1)) .sum(); }).sum(); }
public void dger(double alpha, DoubleMatrix1D x, DoubleMatrix1D y, DoubleMatrix2D A) { cern.jet.math.PlusMult fun = cern.jet.math.PlusMult.plusMult(0); for (int i=A.rows(); --i >= 0; ) { fun.multiplicator = alpha * x.getQuick(i); A.viewRow(i).assign(y,fun); } } public double dnrm2(DoubleMatrix1D x) {