octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #58795] ode15i and ode15s fail for Windows 32b


From: Markus Mützel
Subject: [Octave-bug-tracker] [bug #58795] ode15i and ode15s fail for Windows 32bit
Date: Thu, 30 Jul 2020 13:14:24 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.44

Follow-up Comment #33, bug #58795 (project octave):

SUNDIALS IDA depends on LAPACK and SuiteSparse.
I'm not sure if sunindextype should (or must) match the index type of one or
the other.
On [1], they write the following about v3.0.0:
> Addition of sunindextype option for 32- or 64-bit integer data index types
within all SUNDIALS structures.
> > Sunindextype can be int64_t or int32_t or long long int and int depending
on machine support for portable types.
> > The Fortran interfaces continue to use long_int for indices, except for
their sparse matrix interface that now uses the new sunindextype.
> > Includes interfaces to PETSc, hypre, SuperLU_MT, and KLU with either
64-bit or 32-bit capabilities depending how the user configures SUNDIALS.

In their manual [2], they write:
> A user program which uses sunindextype to handle indices will work with both
index storage types except for any calls to index storage-specific external
libraries.

So that kind of sounds like it should match something. But I'm not sure if
that is SuiteSparse_long or what SuiteSparse calls LONGBLAS and we call
F77_INT.

It is currently only failing for Windows 32bit (where SuiteSparse_long is
32bit and F77_INT is 32bit). It didn't fail for hg200 when he tested on
Windows 64bit (where SuiteSparse_long is 64bit and F77_INT was 32bit). (It was
also independent of the size of octave_idx_type in his tests.)
So I'm guessing, sunindextype might need to match the size of
SuiteSparse_long?

But it might also be caused by the code snippet, you showed in comment #31.
IIUC, SUNDIALS_INT64_T is defined if SUNDIALS_INDEX_SIZE is 64. That seems to
be the default. So by default, sunindextype is 64bit. But KLU_INDEXTYPE would
be 32bit wide on Windows (32bit and 64bit). That indeed looks suspicious. But
if that is the problem, why does it work on Windows 64bit?
I wonder why KLU_INDEXTYPE isn't always defined as sunindextype?

Or those are two different (though quite similar) bugs.

[1]: https://computing.llnl.gov/projects/sundials/ida
[2]: https://computing.llnl.gov/sites/default/files/public/ida_guide.pdf

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58795>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]