196{
197 int rows =
static_cast<int>(A->
numRows());
199 int info;
200 int min = (rows <= cols) ? rows : cols;
202
205
206 if (min == 0)
207 {
208 if (rows > 0)
209 for (
int i = 0; i < rows; i++)
result->array[i] = i;
211 }
212
213 int* perm =
new int[
min];
215
216 dgetrf_(&rows, &cols, copyA.data(), &rows, perm, &info);
217
219
220 for (
int i = 0; i < rows; i++)
result->array[i] = i;
221 for (
int i = 0; i <
min; i++)
222 {
223 int thisloc = perm[i] - 1;
224 int tmp =
result->array[thisloc];
227 }
228
229 delete [] perm;
230
231 if (info < 0)
232 {
233 ERROR(
"argument passed to dgetrf had an illegal value");
234 return nullptr;
235 }
236
238}
void resize(size_t new_nrows, size_t new_ncols)
size_t numColumns() const
std::vector< double > make_lapack_array(const DMatRR &mat)
void fill_lower_and_upper(const std::vector< double > &lapack_numbers, DMatRR &lower, DMatRR &upper)
void dgetrf_(const int *rows, const int *cols, double *A, const int *ld, int *ipiv, int *info)
VALGRIND_MAKE_MEM_DEFINED & result(result)
M2_arrayint M2_makearrayint(int n)
const mpreal min(const mpreal &x, const mpreal &y)