diff --git a/mex/sources/bytecode/SparseMatrix.cc b/mex/sources/bytecode/SparseMatrix.cc index f52cd6306..5cdb11ef7 100644 --- a/mex/sources/bytecode/SparseMatrix.cc +++ b/mex/sources/bytecode/SparseMatrix.cc @@ -1,5 +1,5 @@ /* - * Copyright © 2007-2021 Dynare Team + * Copyright © 2007-2022 Dynare Team * * This file is part of Dynare. * @@ -2586,53 +2586,6 @@ dynSparseMatrix::Solve_LU_UMFPack(SuiteSparse_long *Ap, SuiteSparse_long *Ai, do mxFree(b); } -void -dynSparseMatrix::Solve_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, double slowc_l, bool is_two_boundaries, int it_) -{ - SuiteSparse_long n = mxGetM(A_m); - - auto *Ap = reinterpret_cast(mxGetJc(A_m)); - - auto *Ai = reinterpret_cast(mxGetIr(A_m)); - double *Ax = mxGetPr(A_m); - double *B = mxGetPr(b_m); - SuiteSparse_long status, sys = 0; - double Control[UMFPACK_CONTROL], Info[UMFPACK_INFO], res[n]; - void *Symbolic, *Numeric; - umfpack_dl_defaults(Control); - - status = umfpack_dl_symbolic(n, n, Ap, Ai, Ax, &Symbolic, Control, Info); - if (status != UMFPACK_OK) - umfpack_dl_report_info(nullptr, Info); - - status = umfpack_dl_numeric(Ap, Ai, Ax, Symbolic, &Numeric, Control, Info); - if (status != UMFPACK_OK) - umfpack_dl_report_info(nullptr, Info); - - status = umfpack_dl_solve(sys, Ap, Ai, Ax, res, B, Numeric, Control, Info); - if (status != UMFPACK_OK) - umfpack_dl_report_info(nullptr, Info); - - if (is_two_boundaries) - for (int i = 0; i < n; i++) - { - int eq = index_vara[i+Size*y_kmin]; - double yy = -(res[i] + y[eq]); - direction[eq] = yy; - y[eq] += slowc_l * yy; - } - else - for (int i = 0; i < n; i++) - { - int eq = index_vara[i]; - double yy = -(res[i] + y[eq+it_*y_size]); - direction[eq] = yy; - y[eq+it_*y_size] += slowc_l * yy; - } - mxDestroyArray(A_m); - mxDestroyArray(b_m); -} - void dynSparseMatrix::Solve_Matlab_GMRES(mxArray *A_m, mxArray *b_m, int Size, double slowc, int block, bool is_two_boundaries, int it_, mxArray *x0_m) { diff --git a/mex/sources/bytecode/SparseMatrix.hh b/mex/sources/bytecode/SparseMatrix.hh index dd3be2396..6e1bb9539 100644 --- a/mex/sources/bytecode/SparseMatrix.hh +++ b/mex/sources/bytecode/SparseMatrix.hh @@ -1,5 +1,5 @@ /* - * Copyright © 2007-2021 Dynare Team + * Copyright © 2007-2022 Dynare Team * * This file is part of Dynare. * @@ -83,7 +83,6 @@ private: static void Print_UMFPack(const SuiteSparse_long *Ap, const SuiteSparse_long *Ai, const double *Ax, int n); static void Printfull_UMFPack(const SuiteSparse_long *Ap, const SuiteSparse_long *Ai, const double *Ax, const double *b, int n); static void PrintM(int n, const double *Ax, const mwIndex *Ap, const mwIndex *Ai); - void Solve_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, double slowc_l, bool is_two_boundaries, int it_); void Solve_LU_UMFPack(SuiteSparse_long *Ap, SuiteSparse_long *Ai, double *Ax, double *b, int n, int Size, double slowc_l, bool is_two_boundaries, int it_, const vector_table_conditional_local_type &vector_table_conditional_local); void Solve_LU_UMFPack(SuiteSparse_long *Ap, SuiteSparse_long *Ai, double *Ax, double *b, int n, int Size, double slowc_l, bool is_two_boundaries, int it_);