### Question:
MultiOPCSymMatrix extends AbstractMatrix implements SymMatrix { public void mult(Vector x, Vector y) { if (x instanceof DenseDoubleVector && y instanceof DenseDoubleVector) { DenseDoubleVector xx = (DenseDoubleVector) x; DenseDoubleVector yy = (DenseDoubleVector) y; mult(xx.data, yy.data); } else { throw new MatricksException("Not implemented"); } } MultiOPCSymMatrix(SymMatrix matrix, OuterProductComboSymMatrix... combos); int numRows(); int numCols(); double get(int row, int col); void set(int row, int col, double val); void scale(double a); void setAll(double a); MatrixCursor cursor(); void add(Matrix B); void add(double a, Matrix B); double elementSum(); double elementMultiplySum(Matrix m); void CG(Vector x, Vector y); void QR(Vector x, Vector y); Vector rowSums(); Vector columnSums(); void rowSums(double[] result); void columnSums(double[] result); void setToMaxTranspose(); void multAdd(double alpha, Vector x, Vector y); void mult(Vector x, Vector y); Matrix subMatrix(int[] rows, int[] cols); void add(int i, int j, double alpha); void transMult(double[] x, double[] y); void compact(); void multAdd(double alpha, double[] x, double[] y); void mult(double[] x, double[] y); void multAdd(double[] x, double[] y); SymMatrix subMatrix(int[] rowcols); void setDiag(double alpha); void dotDivOuterProd(Vector x); void addOuterProd(double[] x); double sumDotMultOuterProd(double[] x); SymMatrix getMatrix(); OuterProductComboSymMatrix[] getCombos();  }### Answer:
@Test public void testMult() throws Exception { DenseDoubleVector result = new DenseDoubleVector(4); OuterProductComboSymMatrix m = new OuterProductComboSymMatrix(a, w, false); MultiOPCSymMatrix m2 = new MultiOPCSymMatrix(c, m); m2.mult(ones, result); assertEquals(8.6538, result.get(0), 1e-4); assertEquals(8.1370, result.get(1), 1e-4); assertEquals(10.2398, result.get(2), 1e-4); assertEquals(7.1902, result.get(3), 1e-4); }