### Question:
OuterProductComboSymMatrix 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"); } } OuterProductComboSymMatrix(Matrix vectorData, Vector weights, boolean zeroDiag); int numRows(); int numCols(); int nnz(); double get(int row, int col); DenseDoubleVector getDiagAsVector(); @Override void compact(); 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 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);  }### Answer:
@Test public void testMult() { long seed = 12345; int numAttributes = 10; int numGenes = 50; double sparsity = 0.5; OuterProductComboSymMatrix matrix = new OuterProductComboSymMatrix(randomAttributeMatrix(numGenes, numAttributes, seed, sparsity), randomWeightVector(numAttributes, seed), false); DenseDoubleVector x = randomWeightVector(numGenes, seed+1); double [] y = new double[numGenes]; matrix.mult(x.data, y); }