All Downloads are FREE. Search and download functionalities are using the official Maven repository.

matlabcontrol.link.MatlabDoubleFullMatrix Maven / Gradle / Ivy

There is a newer version: 4.6.0
Show newest version
/*
 * Code licensed under new-style BSD (see LICENSE).
 * All code up to tags/original: Copyright (c) 2013, Joshua Kaplan
 * All code after tags/original: Copyright (c) 2016, DiffPlug
 */
package matlabcontrol.link;

/**
 
 * @since 4.2.0
 * @author Joshua Kaplan
 */
class MatlabDoubleFullMatrix extends MatlabDoubleMatrix {
	private final FullArray _array;

	MatlabDoubleFullMatrix(double[] real, double[] imag, int[] dimensions) {
		_array = new FullArray(double[].class, real, imag, dimensions);
	}

	MatlabDoubleFullMatrix(T real, T imag) {
		_array = new FullArray(double[].class, real, imag);
	}

	@Override
	BaseArray getBaseArray() {
		return _array;
	}

	@Override
	public double getRealElementAtLinearIndex(int linearIndex) {
		return _array._real[linearIndex];
	}

	@Override
	public double getImaginaryElementAtLinearIndex(int linearIndex) {
		return _array._imag == null ? 0 : _array._imag[linearIndex];
	}

	@Override
	public double getRealElementAtIndices(int row, int column) {
		return _array._real[_array.getLinearIndex(row, column)];
	}

	@Override
	public double getRealElementAtIndices(int row, int column, int page) {
		return _array._real[_array.getLinearIndex(row, column, page)];
	}

	@Override
	public double getRealElementAtIndices(int row, int column, int[] pages) {
		return _array._real[_array.getLinearIndex(row, column, pages)];
	}

	@Override
	public double getImaginaryElementAtIndices(int row, int column) {
		return _array._imag == null ? 0 : _array._imag[_array.getLinearIndex(row, column)];
	}

	@Override
	public double getImaginaryElementAtIndices(int row, int column, int page) {
		return _array._imag == null ? 0 : _array._imag[_array.getLinearIndex(row, column, page)];
	}

	@Override
	public double getImaginaryElementAtIndices(int row, int column, int[] pages) {
		return _array._imag == null ? 0 : _array._imag[_array.getLinearIndex(row, column, pages)];
	}

	@Override
	public MatlabDouble getElementAtLinearIndex(int linearIndex) {
		return new MatlabDouble(_array._real[linearIndex], _array._imag == null ? 0 : _array._imag[linearIndex]);
	}

	@Override
	public MatlabDouble getElementAtIndices(int row, int column) {
		int linearIndex = _array.getLinearIndex(row, column);

		return new MatlabDouble(_array._real[linearIndex], _array._imag == null ? 0 : _array._imag[linearIndex]);
	}

	@Override
	public MatlabDouble getElementAtIndices(int row, int column, int page) {
		int linearIndex = _array.getLinearIndex(row, column, page);

		return new MatlabDouble(_array._real[linearIndex], _array._imag == null ? 0 : _array._imag[linearIndex]);
	}

	@Override
	public MatlabDouble getElementAtIndices(int row, int column, int... pages) {
		int linearIndex = _array.getLinearIndex(row, column, pages);

		return new MatlabDouble(_array._real[linearIndex], _array._imag == null ? 0 : _array._imag[linearIndex]);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy