Example usage for org.apache.commons.math3.linear RealVector copy

List of usage examples for org.apache.commons.math3.linear RealVector copy

Introduction

In this page you can find the example usage for org.apache.commons.math3.linear RealVector copy.

Prototype

public abstract RealVector copy();

Source Link

Document

Returns a (deep) copy of this vector.

Usage

From source file:hivemall.utils.math.MatrixUtils.java

/**
 * Lanczos tridiagonalization for a symmetric matrix C to make s * s tridiagonal matrix T.
 *
 * @see http://www.cas.mcmaster.ca/~qiao/publications/spie05.pdf
 * @param C target symmetric matrix/*from  w w w  . ja va  2  s . c om*/
 * @param a initial vector
 * @param T result is stored here
 */
public static void lanczosTridiagonalization(@Nonnull final RealMatrix C, @Nonnull final double[] a,
        @Nonnull final RealMatrix T) {
    Preconditions.checkArgument(Arrays.deepEquals(C.getData(), C.transpose().getData()),
            "Target matrix C must be a symmetric matrix");
    Preconditions.checkArgument(C.getColumnDimension() == a.length,
            "Column size of A and length of a should be same");
    Preconditions.checkArgument(T.getRowDimension() == T.getColumnDimension(), "T must be a square matrix");

    int s = T.getRowDimension();

    // initialize T with zeros
    T.setSubMatrix(new double[s][s], 0, 0);

    RealVector a0 = new ArrayRealVector(a.length);
    RealVector r = new ArrayRealVector(a);

    double beta0 = 1.d;

    for (int i = 0; i < s; i++) {
        RealVector a1 = r.mapDivide(beta0);
        RealVector Ca1 = C.operate(a1);

        double alpha1 = a1.dotProduct(Ca1);

        r = Ca1.add(a1.mapMultiply(-1.d * alpha1)).add(a0.mapMultiply(-1.d * beta0));

        double beta1 = r.getNorm();

        T.setEntry(i, i, alpha1);
        if (i - 1 >= 0) {
            T.setEntry(i, i - 1, beta0);
        }
        if (i + 1 < s) {
            T.setEntry(i, i + 1, beta1);
        }

        a0 = a1.copy();
        beta0 = beta1;
    }
}

From source file:edu.ucsf.valelab.saim.calculations.SaimParameterValidator.java

/**
 * Very simple validator that uses lower and upper bounds to restrict
 * parameter values//from   w  ww.  j  av  a 2  s .  c  om
 * @param params
 * @return 
 */
@Override
public RealVector validate(RealVector params) {
    if (params.getDimension() != 3)
        throw new DimensionMismatchException(params.getDimension(), 3);
    RealVector n = params.copy();
    for (int i = 0; i < 3; i++) {
        if (n.getEntry(i) < lowerBounds_[i])
            n.setEntry(i, lowerBounds_[i]);
        if (n.getEntry(i) > upperBounds_[i])
            n.setEntry(i, upperBounds_[i]);
    }
    return n;
}

From source file:edu.stanford.cfuller.imageanalysistools.fitting.NelderMeadMinimizer.java

/**
 * Constructs the initial simplex that is the starting point of the optimization given an initial guess at the minimum and a size scale for each parameter.
 * @param initialPoint      The initial guess at the minimum, one component per parameter.
 * @param componentScales   A size scale for each parameter that is used to set how large the initial simplex is.
 * @return                  A matrix containing p + 1 rows, each of which is one set of p parameters, which specify the simplex.
 *//*from  www . j a v a 2s.c  o m*/
public RealMatrix generateInitialSimplex(RealVector initialPoint, RealVector componentScales) {
    RealMatrix initialSimplex = new Array2DRowRealMatrix(initialPoint.getDimension() + 1,
            initialPoint.getDimension());

    initialSimplex.setRowVector(0, initialPoint);

    for (int i = 1; i < initialSimplex.getRowDimension(); i++) {
        RealVector newVector = initialPoint.copy();
        newVector.setEntry(i - 1, newVector.getEntry(i - 1) + componentScales.getEntry(i - 1));
        initialSimplex.setRowVector(i, newVector);
    }

    return initialSimplex;
}

From source file:org.grouplens.samantha.modeler.space.SynchronizedVariableSpace.java

final public List<RealVector> getVectorVarByName(String name) {
    List<RealVector> vars = new ArrayList<>();
    readLock.lock();/*from   w ww.ja v  a  2 s.  com*/
    try {
        for (RealVector var : vectorVars.get(name)) {
            vars.add(var.copy());
        }
        return vars;
    } finally {
        readLock.unlock();
    }
}

From source file:org.knime.al.util.noveltydetection.knfst.MatrixFunctions.java

public static RealVector sqrt(final RealVector vector) {
    final RealVector result = vector.copy();
    for (int e = 0; e < result.getDimension(); e++) {
        result.setEntry(e, Math.sqrt(result.getEntry(e)));
    }//www . j a va  2  s .co  m
    return result;
}

From source file:shapeCompare.PairingTools.java

public static RealVector alignPointFromShape2toShape1(RealVector trans2toOrigin, RealVector trans,
        RealMatrix rot, RealVector point) {

    RealVector translatedToOriginPoint = point.add(trans2toOrigin.copy());
    RealVector rotatedPoint = rot.operate(translatedToOriginPoint);
    RealVector translatedBackPoint = rotatedPoint.subtract(trans2toOrigin);

    RealVector translatedToShape1 = translatedBackPoint.add(trans);

    return translatedToShape1;
}