docs: public static boolean solve(DMatrixSparseCSC a ,
                                  DMatrixRMaj b ,
                                  DMatrixRMaj x )
      {
          LinearSolverSparse<DMatrixSparseCSC,DMatrixRMaj> solver;
          if( a.numRows > a.numCols ) {
              solver = LinearSolverFactory_DSCC.qr(FillReducing.NONE);// todo specify a filling that makes sense
          } else {
              solver = LinearSolverFactory_DSCC.lu(FillReducing.NONE);
          }
  
          // Ensure that the input isn't modified
          if( solver.modifiesA() )
              a = a.copy();
  
          if( solver.modifiesB() )
              b = b.copy();
  
          // decompose then solve the matrix
          if( !solver.setA(a) )
              return false;
  
          solver.solve(b, x);
          return true;
      }