public double getQuick(int index) { return content.get(index*_stride); } public void setQuick(int index, double value) {
public double getQuick(int i) { return content.get(idx[i]); } public void setQuick(int i, double value) {
public double getQuick(int index) { return content.get(index*_stride); } public void setQuick(int index, double value) {
public double getQuick(int i) { return content.get(index+i); } public void setQuick(int i, double value) {
public double getQuick(int index) { return content.get(size-1-index); } public void setQuick(int index, double value) {
public double getQuick(int i) { return content.get(index+i); } public void setQuick(int i, double value) {
public double getQuick(int index) { return content.get(size-1-index); } public void setQuick(int index, double value) {
public double getQuick(int i) { return content.get(idx[i]); } public void setQuick(int i, double value) {
public double getXDisp() { return disp.get(0); }
public double getYDisp() { return disp.get(1); }
/** * Converts a given cell to a String; no alignment considered. */ protected String form(DoubleMatrix1D matrix, int index, Former formatter) { return formatter.form(matrix.get(index)); } /**
/** * Converts a given cell to a String; no alignment considered. */ protected String form(DoubleMatrix1D matrix, int index, Former formatter) { return formatter.form(matrix.get(index)); } /**
public PSDQuadraticMultivariateRealFunction(double[][] PMatrix, double[] qVector, double r, boolean checkPSD) { super(PMatrix, qVector, r); if(checkPSD){ EigenvalueDecomposition eDecomp = new EigenvalueDecomposition(P); DoubleMatrix1D realEigenvalues = eDecomp.getRealEigenvalues(); for (int i = 0; i < realEigenvalues.size(); i++) { if (realEigenvalues.get(i) < 0) { throw new IllegalArgumentException("Not positive semi-definite matrix"); } } } } }
@Override public double value(double[] Y) { DoubleMatrix1D y = DoubleFactory1D.dense.make(Y); DoubleMatrix1D X = y.viewPart(0, dim); return originalFi.value(X.toArray()) - y.get(dimPh1-1); }
@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); }
/** * Constructs a list from the given matrix. * The values are copied. So subsequent changes in <tt>values</tt> are not reflected in the list, and vice-versa. * * @param values The values to be filled into the new list. * @return a new list. */ public cern.colt.list.DoubleArrayList toList(DoubleMatrix1D values) { int size = values.size(); cern.colt.list.DoubleArrayList list = new cern.colt.list.DoubleArrayList(size); list.setSize(size); for (int i=size; --i >= 0; ) list.set(i, values.get(i)); return list; } }
@Override public double[] gradient(double[] X) { DoubleMatrix1D x = DoubleFactory1D.dense.make(X); DoubleMatrix1D g = ALG.mult(A, x).assign(b, Functions.plus).assign(Functions.exp); double den = g.zSum(); double[] R = new double[dim]; for(int i=0; i<dim; i++){ double d = 0d; for(int k=0; k<A.rows(); k++){ d += g.get(k) * A.get(k, i); } R[i] = d/den; } return R; }