/** Returns the imaginary parts of the eigenvalues. @return imag(diag(D)) */ public DoubleMatrix1D getImagEigenvalues () { return DoubleFactory1D.dense.make(e); } /**
/** Returns the real parts of the eigenvalues. @return real(diag(D)) */ public DoubleMatrix1D getRealEigenvalues () { return DoubleFactory1D.dense.make(d); } /**
public void setB(double[] b) { if(b!=null){ this.b = DoubleFactory1D.dense.make(b); } }
/** Returns the real parts of the eigenvalues. @return real(diag(D)) */ public DoubleMatrix1D getRealEigenvalues () { return DoubleFactory1D.dense.make(d); } /**
/** Returns the imaginary parts of the eigenvalues. @return imag(diag(D)) */ public DoubleMatrix1D getImagEigenvalues () { return DoubleFactory1D.dense.make(e); } /**
/** * Constructs a matrix with the given shape, each cell initialized with the given value. */ public DoubleMatrix1D make(int size, double initialValue) { return make(size).assign(initialValue); } /**
public void setLb(double[] lb) { if(lb!=null){ setLb(DoubleFactory1D.dense.make(lb)); } }
public static void main(String[] args) { DoubleMatrix1D x1 = DoubleFactory1D.dense .make(new double[] { 1.0, 2.0}); DoubleMatrix1D x2 = DoubleFactory1D.dense .make(new double[] { 1.0, -2.0}); DoubleMatrix1D x3 = DoubleFactory1D.dense.make(new double[] { -1.0, -2.0}); System.out.println(Algebra.DEFAULT.normInfinity(x1)); System.out.println(Algebra.DEFAULT.normInfinity(x2)); System.out.println(Algebra.DEFAULT.normInfinity(x3)); } }
public static void main(String[] args) { DoubleMatrix1D x1 = DoubleFactory1D.dense .make(new double[] { 1.0, 2.0}); DoubleMatrix1D x2 = DoubleFactory1D.dense .make(new double[] { 1.0, -2.0}); DoubleMatrix1D x3 = DoubleFactory1D.dense.make(new double[] { -1.0, -2.0}); System.out.println(Algebra.DEFAULT.normInfinity(x1)); System.out.println(Algebra.DEFAULT.normInfinity(x2)); System.out.println(Algebra.DEFAULT.normInfinity(x3)); } }
/** * Constructs a matrix with the given shape, each cell initialized with the given value. */ public DoubleMatrix1D make(int size, double initialValue) { return make(size).assign(initialValue); } /**
/** * Constructs a matrix with uniformly distributed values in <tt>(0,1)</tt> (exclusive). */ public DoubleMatrix1D random(int size) { return make(size).assign(cern.jet.math.Functions.random()); } /**
/** * Constructs a matrix with uniformly distributed values in <tt>(0,1)</tt> (exclusive). */ public DoubleMatrix1D random(int size) { return make(size).assign(cern.jet.math.Functions.random()); } /**
@Override public double value(double[] X) { DoubleMatrix1D x = DoubleFactory1D.dense.make(X); DoubleMatrix1D g = ALG.mult(A, x).assign(b, Functions.plus).assign(Functions.exp); return Math.log(g.zSum()); }
@Override public double[] gradient(double[] X) { DoubleMatrix1D gradFiSum = F1.make(getDim()); for(int j=0; j<fi.length; j++){ double ineqValuejX = fi[j].value(X); DoubleMatrix1D ineqGradjX = F1.make(fi[j].gradient(X)); gradFiSum.assign(ineqGradjX.assign(Mult.mult(-1./ineqValuejX)), Functions.plus); } return gradFiSum.toArray(); }
@Override public double value(double[] Y) { DoubleMatrix1D y = DoubleFactory1D.dense.make(Y); DoubleMatrix1D X = y.viewPart(0, originalDim); return originalFi.value(X.toArray()) - y.get(dim-1); }
/** * @see "Convex Optimization, p. 610" */ private DoubleMatrix1D rCent(DoubleMatrix1D fiX, DoubleMatrix1D L, double t) { DoubleMatrix1D ret = F1.make(L.size()); for(int i=0; i<ret.size(); i++){ ret.setQuick(i, -L.getQuick(i)*fiX.getQuick(i) - 1. / t); } return ret; } }
/** * Computes the term Grad[fi].stepX */ protected DoubleMatrix1D gradFiStepX(DoubleMatrix1D stepX){ DoubleMatrix1D ret = F1.make(getMieq()); for(int i=0; i<getDim(); i++){ ret.setQuick( i, - stepX.getQuick(i)); ret.setQuick(getDim()+i, stepX.getQuick(i)); } return ret; }
/** 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; } /**
/** 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; } /**