diff libinterp/dldfcn/__ode15__.cc @ 26895:a1acd11bad19

Directly include klu.h in __ode15__.cc (bug #52475). * libinterp/dldfcn/__ode15__.cc : include klu.h before sunlinsol_klu.h so that the correct include path is used. * libinterp/dldfcn/__ode15__.cc : add a FIXME comment about excess memory being allocated for sparse jacobian.
author Carlo de Falco <carlo.defalco@polimi.it>
date Wed, 13 Mar 2019 03:44:11 +0100
parents ee6300e77c92
children ba0c9e84f6a8
line wrap: on
line diff
--- a/libinterp/dldfcn/__ode15__.cc	Fri Feb 15 12:35:15 2019 +0100
+++ b/libinterp/dldfcn/__ode15__.cc	Wed Mar 13 03:44:11 2019 +0100
@@ -67,6 +67,18 @@
 
 
 #  if defined (HAVE_SUNLINSOL_SUNLINSOL_KLU_H)
+#    if defined (HAVE_KLU_H)
+#      include <klu.h>
+#    endif
+#    if defined (HAVE_KLU_KLU_H)
+#      include <klu/klu.h>
+#    endif
+#    if defined (HAVE_SUITESPARSE_KLU_H)
+#      include <suitesparse/klu.h>
+#    endif
+#    if defined (HAVE_UFPARSE_KLU_H)
+#      include <ufsparse/klu.h>
+#    endif
 #    include <sunlinsol/sunlinsol_klu.h>
 #  endif
 
@@ -355,7 +367,9 @@
     if (havejacsparse)
       {
 #if defined (HAVE_SUNDIALS_SUNLINSOL_KLU)
-
+        // FIXME : one should not allocate space for a full Jacobian
+        // when using a sparse format. Consider allocating less space
+        // then possibly using SUNSparseMatrixReallocate to increase it.
         sunJacMatrix = SUNSparseMatrix (num, num, num*num, CSC_MAT);
         if (! sunJacMatrix)
           error ("Unable to create sparse Jacobian for Sundials");