int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows = 300) { typedef typename MatrixType::Scalar Scalar; int rows = internal::random<int>(1,maxRows); int cols = internal::random<int>(1,rows); double density = (std::max)(8./(rows*cols), 0.01); A.resize(rows,cols); dA.resize(rows,cols); initSparse<Scalar>(density, dA, A,ForceNonZeroDiag); A.makeCompressed(); int nop = internal::random<int>(0, internal::random<double>(0,1) > 0.5 ? cols/2 : 0); for(int k=0; k<nop; ++k) { int j0 = internal::random<int>(0,cols-1); int j1 = internal::random<int>(0,cols-1); Scalar s = internal::random<Scalar>(); A.col(j0) = s * A.col(j1); dA.col(j0) = s * dA.col(j1); } // if(rows<cols) { // A.conservativeResize(cols,cols); // dA.conservativeResize(cols,cols); // dA.bottomRows(cols-rows).setZero(); // } return rows; }