/** * @TODO: implement this method */ public DoubleMatrix1D solve(DoubleMatrix1D b) { if (b.size() != dim) { log.error("wrong dimension of vector b: expected " + dim +", actual " + b.size()); throw new RuntimeException("wrong dimension of vector b: expected " + dim +", actual " + b.size()); } throw new RuntimeException("not yet implemented"); }
public WrapperDoubleMatrix1D(DoubleMatrix1D newContent) { if (newContent != null) setUp(newContent.size()); this.content = newContent; } /**
/** * 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 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 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); } }
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public DoubleMatrix1D append(DoubleMatrix1D A, DoubleMatrix1D B) { // concatenate DoubleMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
/** * 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); } /**
/** C = A||B; Constructs a new matrix which is the concatenation of two other matrices. Example: <tt>0 1</tt> append <tt>3 4</tt> --> <tt>0 1 3 4</tt>. */ public DoubleMatrix1D append(DoubleMatrix1D A, DoubleMatrix1D B) { // concatenate DoubleMatrix1D matrix = make(A.size()+B.size()); matrix.viewPart(0,A.size()).assign(A); matrix.viewPart(A.size(),B.size()).assign(B); return matrix; } /**
public void setLb(DoubleMatrix1D lb) { for (int i = 0; i < lb.size(); i++) { double lbi = lb.getQuick(i); if (Double.isNaN(lbi) || Double.isInfinite(lbi)) { throw new IllegalArgumentException("The lower bounds can not be set to Double.NaN or Double.INFINITY"); } } this.lb = lb; }
public void setUb(DoubleMatrix1D ub) { for (int i = 0; i < ub.size(); i++) { double ubi = ub.getQuick(i); if (Double.isNaN(ubi) || Double.isInfinite(ubi)) { throw new IllegalArgumentException("The upper bounds can not be set to Double.NaN or Double.INFINITY"); } } this.ub = ub; }
/** * 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); } }
protected void initializeCenters() { this.centers = new ArrayList<DoubleMatrix1D>(); for (int i = 0; i < clusterNum; ++i) { DoubleMatrix1D center = null; if (isCenterSparse) center = new ColtSparseVector(this.data.get(0).size()); else center = new ColtDenseVector(this.data.get(0).size()); centers.add(center); } }
/** * Returns v = c * v1. * Useful in avoiding the need of the copy() in the colt api. */ public static final DoubleMatrix1D scalarMult(DoubleMatrix1D v1, double c){ DoubleMatrix1D ret = DoubleFactory1D.dense.make(v1.size()); for(int i=0; i<ret.size(); i++){ ret.setQuick(i, c * v1.getQuick(i)); } return ret; }
/** * Returns a string representation of the given matrix. * @param matrix the matrix to convert. */ public String toString(DoubleMatrix1D matrix) { DoubleMatrix2D easy = matrix.like2D(1,matrix.size()); easy.viewRow(0).assign(matrix); return toString(easy); } /**
/** * Returns a string representation of the given matrix. * @param matrix the matrix to convert. */ public String toString(DoubleMatrix1D matrix) { DoubleMatrix2D easy = matrix.like2D(1,matrix.size()); easy.viewRow(0).assign(matrix); return toString(easy); } /**
/** * Inequality functions gradients values at X. */ protected DoubleMatrix2D getGradFi(DoubleMatrix1D X) { DoubleMatrix2D ret = F2.make(request.getFi().length, X.size()); double[] x = X.toArray(); for(int i=0; i<request.getFi().length; i++){ ret.viewRow(i).assign(request.getFi()[i].gradient(x)); } return ret; }