SparseMatrix extends AbstractMatrix { private native SparseMatrix times(int m1, int n1, int[] ap1, int[] ai1, double[] ax1, int m2, int n2, int[] ap2, int[] ai2, double[] ax2); SparseMatrix(int rowCount, int columnCount, int[] columnStart, int[] rowIndices, double[] values);   SparseMatrix(int rowCount, int columnCount, int estimatedNonZeroValueCount); @Override int getRowCount(); @Override int getColumnCount(); @Override void set(int i, int j, double value); @Override void add(int i, int j, double value); @Override Element addAndGetElement(int i, int j, double value); @Override void reset(); @Override LUDecomposition decomposeLU(); @Override Matrix times(Matrix other); @Override void iterateNonZeroValue(ElementHandler handler); @Override void iterateNonZeroValueOfColumn(int j, ElementHandler handler); @Override DenseMatrix toDense(); @Override SparseMatrix toSparse(); @Override Matrix to(MatrixFactory factory); @Override void print(PrintStream out); @Override void print(PrintStream out, List<String> rowNames, List<String> columnNames); @Override int hashCode(); @Override boolean equals(Object obj);  }
@Test public void timeToDenseNotSupportedTest() { try { new SparseMatrix(2, 2, 2).times(new DenseMatrix(2, 2)); fail(); } catch (PowsyblException ignored) { } }