samer@0: /* samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.maths; samer@0: import samer.tools.*; samer@0: samer@0: public class MatrixTimesVector extends VectorFunctionOfVector implements SafeTask samer@0: { samer@0: int m, n; samer@0: double [][] a; samer@0: double [] x, y, arow; samer@0: samer@0: public MatrixTimesVector( Vec out, Matrix matrix, Vec in) { samer@0: this(out.array(),matrix,in.array()); samer@0: } samer@0: samer@0: public MatrixTimesVector(Matrix matrix) samer@0: { samer@0: n = matrix.getRowDimension(); samer@0: m = matrix.getColumnDimension(); samer@0: a = matrix.getArray(); samer@0: } samer@0: samer@0: public MatrixTimesVector( double [] out, Matrix matrix) samer@0: { samer@0: n = matrix.getRowDimension(); samer@0: m = matrix.getColumnDimension(); samer@0: a = matrix.getArray(); samer@0: y = out; samer@0: } samer@0: samer@0: public MatrixTimesVector( double [] out, Matrix matrix, double [] in) samer@0: { samer@0: n = matrix.getRowDimension(); samer@0: m = matrix.getColumnDimension(); samer@0: a = matrix.getArray(); samer@0: x = in; samer@0: y = out; samer@0: } samer@0: samer@0: public void dispose() {} samer@0: public void starting() {} samer@0: public void stopping() {} samer@0: public void run() { samer@0: for (int i=0; i