public double dasum(DoubleMatrix1D x) { return x.aggregate(F.plus, F.abs); } public void daxpy(double alpha, DoubleMatrix1D x, DoubleMatrix1D y) {
public double dasum(DoubleMatrix1D x) { return x.aggregate(F.plus, F.abs); } public void daxpy(double alpha, DoubleMatrix1D x, DoubleMatrix1D y) {
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.plus, fun); } };
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.plus, fun); } };
/** * Returns the sum of all cells; <tt>Sum( x[i] )</tt>. * @return the sum. */ public double zSum() { if (size()==0) return 0; return aggregate(cern.jet.math.Functions.plus, cern.jet.math.Functions.identity); } }
/** * Returns the sum of all cells; <tt>Sum( x[i] )</tt>. * @return the sum. */ public double zSum() { if (size()==0) return 0; return aggregate(cern.jet.math.Functions.plus, cern.jet.math.Functions.identity); } }
/** * Returns the one-norm of vector <tt>x</tt>, which is <tt>Sum(abs(x[i]))</tt>. */ public double norm1(DoubleMatrix1D x) { if (x.size()==0) return 0; return x.aggregate(cern.jet.math.Functions.plus,cern.jet.math.Functions.abs); } /**
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.max, F.chain(F.abs,F.minus)); } };
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return Math.sqrt(a.aggregate(b, F.plus, F.chain(F.square,F.minus))); } };
/** * Returns the one-norm of vector <tt>x</tt>, which is <tt>Sum(abs(x[i]))</tt>. */ public double norm1(DoubleMatrix1D x) { if (x.size()==0) return 0; return x.aggregate(cern.jet.math.Functions.plus,cern.jet.math.Functions.abs); } /**
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.max, F.chain(F.abs,F.minus)); } };
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.plus, F.chain(F.abs,F.minus)); } };
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return Math.sqrt(a.aggregate(b, F.plus, F.chain(F.square,F.minus))); } };
public final double apply(DoubleMatrix1D a, DoubleMatrix1D b) { return a.aggregate(b, F.plus, F.chain(F.abs,F.minus)); } };
/** * Returns the infinity norm of vector <tt>x</tt>, which is <tt>Max(abs(x[i]))</tt>. */ public double normInfinity(DoubleMatrix1D x) { // fix for bug reported by T.J.Hunt@open.ac.uk if (x.size()==0) return 0; return x.aggregate(cern.jet.math.Functions.max ,cern.jet.math.Functions.abs); // if (x.size()==0) return 0; // return x.aggregate(cern.jet.math.Functions.plus,cern.jet.math.Functions.abs); // double max = 0; // for (int i = x.size(); --i >= 0; ) { // max = Math.max(max, x.getQuick(i)); // } // return max; } /**
/** * Normalizes matrix of p(z|u) such that \forall_z: \sum_u p(z|u) = 1. * * @param pu_z normalized matrix of p(z|u) */ protected void normalizePuz(DoubleMatrix2D pu_z) { for (int z = 0; z < pu_z.columns(); z++) { final DoubleMatrix1D pu_Z = pu_z.viewColumn(z); pu_Z.assign(mult(1 / pu_Z.aggregate(plus, identity))); } }
/** * Normalizes matrix of p(z|u) such that \forall_u: \sum_z p(z|u) = 1. * * @param pu_z normalized matrix of p(z|u) */ @Override protected void normalizePuz(DoubleMatrix2D pu_z) { for (int u = 0; u < pu_z.rows(); u++) { DoubleMatrix1D tmp = pu_z.viewRow(u); double norm = tmp.aggregate(Functions.plus, Functions.identity); if (norm != 0.0) { tmp.assign(Functions.mult(1 / norm)); } } }
/** * Normalizes matrix of p(z|u) such that \forall_u: \sum_z p(z|u) = 1. * * @param pu_z normalized matrix of p(z|u) */ @Override protected void normalizePuz(DoubleMatrix2D pu_z) { for (int u = 0; u < pu_z.rows(); u++) { DoubleMatrix1D tmp = pu_z.viewRow(u); double norm = tmp.aggregate(Functions.plus, Functions.identity); if (norm != 0.0) { tmp.assign(Functions.mult(1 / norm)); } } }