* parpack.hpp: don't use complex.h C macros.
* [BUG FIX] fix autotools build on osx.
* [TravisCI] Add osx job.
Full build but only partial testing as some tests crash on osx.
* [BUG FIX] ICB using rvec/select: rvec/select turned to integer.
bool should be, but, is not always supported (depend on compiler, options).
* [CLEAN] arpackSolver API: clean + more convenient.
* TravisCI: fix ILP64 job. No need for security.debian.org.
* Extract arpackSolver.hpp from arpackmm.cpp.
arpackSolver.hpp is added in the install directory.
* Add error message if eigen is not found at configure time (autotools).
* Update configure.ac
Co-Authored-By: fghoussen <fghoussen@users.noreply.github.com>
The idea is:
- cmake generates arpackdef.h from arpackdef.cmake.h.in
- autoheader generates arpackdef.h from arpackdef.autotools.h[.in]
- arpack includes arpackdef.h when/where needed:
- #define provide c_int/a_int according to architecture.
- all f90 who need to include "arpackdef.h" must be moved to F90.
Note: by convention, F90 are preprocessed (f90 are not).
- MPI does not support ILP64: integer*4 must be imposed in all
calls involving MPI (f90 example/test code).
To enable ILP64 users to compile/link, arpackdef.h is added in
the arpack installation (make install).
* Create root ICB directory.
* TravisCI: move to precise + trusty + xenial.
* [CLEAN] autotools: kill from EXTRA_DIST all what is already in
arpack_include_HEADERS.
* [BUG FIX] fix circular dependencies in "make distcheck".
- do not use AC_CONFIG_FILES to create files in builddir.
- refer files when needed with srcdir (*_*FLAGS).
Even with real matrices, eigen values can be complex if matrices
are not symmetric. In this case, you need workev.
ICB tests: should be OK as it turns out that they do NOT use
real+not-sym methods (they use real+sym and complex+non-sym).
* stat: initialize common block.
* Move debug_init.f90/stat_init.f90 to dbgini.f/staini.f.
In cases where one has 2 fortran compilers (F77+F90), the reference code
base and (missing) related common initialisations will be compiled
consistently by the same (F77) compiler. F90 will handle ICB (f2003-f2008)
that could not be compiled by F77.
Note: in F77, code starts at col 7, continuation line with & at col 6,
length line is limited, names must be smaller than 7 chars (no underscore).
* [BUG FIX] compile dbgini.f staini.f with AND without ICB.
Cosmetic bug ("better" way to get same thing - without this, sigma which
is used as an input, is implicitely converted from real to complex. Same
thing for the callee, but more "logical" for the caller).
* [CLEAN] ICB saves you from old-fashion-boring-cumbersome-fortran/C crap...
* Run old-fashion cubersome Fortan/C tests only if ICB=OFF.
Getting them to work with BOTH ICB=ON/OFF would be adding tricky-messy
to already cubersome-crappy black magic...
Note that icb_arpack_c test (ICB=ON) do the same than bug_1315_*
tests (ICB=OFF): icb_arpack_c was initially a copy of bug_1315_*.
In the end, you don't loose anything (same functional coverage).
* [CLEAN] always define ICB.
* [BUG FIX] Can't call AC_PROG_CXX conditionally.
https://lists.gnu.org/archive/html/bug-automake/2002-11/msg00020.html
* [BUG FIX] ICB: set default value.
* Check options are set as expected.
Note: before previous fix, options were NOT set correctly !...
This is the cmake equivalent of pkg-config.
The make install will ship config files:
/path/to/arpack-ng/BUILD> cmake ..; make install
[100%] Built target arpack
Install the project...
-- Install configuration: "Release"
-- Installing: /path/to/arpack-ng/local/lib/libarpack.a
-- Installing: /path/to/arpack-ng/local/*[Cc]onfig*.cmake
Now, the user who wants to use arpack-ng can use find_package:
/tmp> export CMAKE_PREFIX_PATH="/path/to/arpack-ng/local:${CMAKE_PREFIX_PATH}" # Should be done by module load arpack-ng.
/tmp> more CMakeLists.txt
cmake_minimum_required(VERSION 3.7)
find_package(arpack-ng 3.5 REQUIRED) # Find *Config*.cmake.
/tmp> mkdir BUILD; cd BUILD; cmake ..
...
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/BUILD
/tmp/BUILD> cmake -LA .. | grep Arpack
ArpackNG_DIR:PATH=/path/to/arpack-ng/local
ArpackNG_INCLUDE_DIRS:PATH=/path/to/arpack-ng/local/include
ArpackNG_LIBRARIES:FILEPATH=/path/to/arpack-ng/local/lib/libarpack.a
The user can use ArpackNG_INCLUDE_DIRS and ArpackNG_LIBRARIES to compile/link with arpack-ng in his own CMakeLists.txt (after find_package).
If the user asks for an newer version, cmake breaks at configure time: this is checked by ArpackNGConfigVersion.cmake.