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

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

Introduction

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

Prototype

RealVector

Source Link

Usage

From source file:edu.byu.nlp.math.RealVectors.java

/** Incomplete implementation **/
public static RealVector constant(final double value, final int dimension) {
    return new RealVector() {

        @Override//from w  ww. j av a  2s . co m
        public int getDimension() {
            return dimension;
        }

        @Override
        public double getEntry(int index) {
            return value;
        }

        @Override
        public RealVector append(RealVector arg0) {
            throw new UnsupportedOperationException();
        }

        @Override
        public RealVector append(double arg0) {
            throw new UnsupportedOperationException();
        }

        @Override
        public RealVector copy() {
            throw new UnsupportedOperationException();
        }

        @Override
        public RealVector ebeDivide(RealVector arg0) {
            throw new UnsupportedOperationException();
        }

        @Override
        public RealVector ebeMultiply(RealVector arg0) {
            throw new UnsupportedOperationException();
        }

        @Override
        public RealVector getSubVector(int arg0, int arg1) {
            throw new UnsupportedOperationException();
        }

        @Override
        public boolean isInfinite() {
            return false;
        }

        @Override
        public boolean isNaN() {
            return false;
        }

        @Override
        public RealVector projection(RealVector arg0) {
            throw new UnsupportedOperationException();
        }

        @Override
        public void setEntry(int arg0, double arg1) {
            throw new UnsupportedOperationException();
        }

        @Override
        public void setSubVector(int arg0, RealVector arg1) {
            throw new UnsupportedOperationException();
        }

    };
}

From source file:org.briljantframework.array.Matrices.java

/**
 * View the double array as a {@link RealVector}.
 *
 * @param array the array//from  w  w  w  . ja v  a  2s  . c o  m
 * @return a real vector view
 */
public static RealVector asRealVector(DoubleArray array) {
    Check.argument(array.isVector(), CAN_ONLY_VIEW_1D_ARRAYS);
    return new RealVector() {
        @Override
        public int getDimension() {
            return array.size();
        }

        @Override
        public double getEntry(int index) throws OutOfRangeException {
            return array.get(index);
        }

        @Override
        public void setEntry(int index, double value) throws OutOfRangeException {
            array.set(index, value);
        }

        @Override
        public RealVector append(RealVector v) {
            ArrayRealVector vector = new ArrayRealVector(v.getDimension() + array.size());
            copyFromArray(vector);
            for (int i = 0; i < v.getDimension(); i++) {
                vector.setEntry(i, v.getEntry(i));
            }
            return vector;
        }

        private void copyFromArray(ArrayRealVector vector) {
            for (int i = 0; i < array.size(); i++) {
                vector.setEntry(i, array.get(i));
            }
        }

        @Override
        public RealVector append(double d) {
            ArrayRealVector vector = new ArrayRealVector(array.size() + 1);
            copyFromArray(vector);
            vector.setEntry(array.size(), d);
            return vector;
        }

        @Override
        public RealVector getSubVector(int index, int n) throws NotPositiveException, OutOfRangeException {
            return asRealVector(array.get(Range.of(index, index + n)));
        }

        @Override
        public void setSubVector(int index, RealVector v) throws OutOfRangeException {
            for (int i = 0; i < array.size(); i++) {
                array.set(i + index, v.getEntry(i));
            }
        }

        @Override
        public boolean isNaN() {
            return Arrays.any(array, Double::isNaN);
        }

        @Override
        public boolean isInfinite() {
            return Arrays.any(array, Double::isInfinite);
        }

        @Override
        public RealVector copy() {
            return asRealVector(array.copy());
        }

        @Override
        @Deprecated
        public RealVector ebeDivide(RealVector v) throws DimensionMismatchException {
            if (v.getDimension() != array.size()) {
                throw new DimensionMismatchException(v.getDimension(), array.size());
            }
            RealVector a = new ArrayRealVector(array.size());
            for (int i = 0; i < array.size(); i++) {
                a.setEntry(i, array.get(i) / v.getEntry(i));
            }
            return a;
        }

        @Override
        @Deprecated
        public RealVector ebeMultiply(RealVector v) throws DimensionMismatchException {
            if (v.getDimension() != array.size()) {
                throw new DimensionMismatchException(v.getDimension(), array.size());
            }
            RealVector a = new ArrayRealVector(array.size());
            for (int i = 0; i < array.size(); i++) {
                a.setEntry(i, array.get(i) * v.getEntry(i));
            }
            return a;
        }
    };
}