Commit Graph
77 Commits
Author SHA1 Message Date
Franck HOUSSEN 07739ac229 pyarpack: improve python module documentation. 2020-03-03 13:18:36 +01:00
Franck HOUSSEN 259a1596a5 pyarpack: improve README documentation. 2020-03-03 13:17:45 +01:00
Franck HOUSSEN cfdb5f680f pyarpack: python binding based on Boost.Python.Numpy exposing C++ API. (#238)
* pyarpack: python binding based on Boost.Python.Numpy exposing C++ API.

* py3.
2020-02-26 12:32:59 +01:00
Franck HOUSSEN 6b04aa4bcc [BUG FIX] pc and cmake files: accounting for lib64. (#235) 2020-02-19 22:34:42 +01:00
Franck HOUSSEN 5100a99c1a parpack.hpp: don't use complex.h C macros. (#236) 2020-02-19 22:33:59 +01:00
Franck HOUSSEN 1eff779f74 [TravisCI] Add osx job (#234)
* 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.
2020-02-19 22:33:34 +01:00
Franck HOUSSEN 1cfa486a50 arpackSolver: cleaning, refactoring. (#237) 2020-02-19 22:32:19 +01:00
Franck HOUSSEN 6fa8b271c0 [API] arpackSolver: API change. (#222)
* [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.
2019-10-11 17:03:45 +02:00
Franck HOUSSEN 8a46621c64 [BUG FIX] Fix pc/cmake files. (#221) 2019-07-14 09:45:06 +02:00
Franck HOUSSEN 6e2893f17f Arpack solver (#217)
* TravisCI: fix ILP64 job. No need for security.debian.org.

* Extract arpackSolver.hpp from arpackmm.cpp.
arpackSolver.hpp is added in the install directory.
2019-07-08 13:11:25 +02:00
Franck HOUSSEN 6254162e2e TravisCI: fix ILP64 job. No need for security.debian.org. (#220) 2019-07-08 13:10:31 +02:00
Franck HOUSSEN c0725738d7 [BUG FIX] Install: generating crossed cmake/pc files. (#219)
* TravisCI: fix ILP64 job. No need for security.debian.org.

* [BUG FIX] Install: generating crossed cmake/pc files.
Add cmake/autotool variables in autotool/cmake to generate pc/cmake files.
2019-07-08 13:10:20 +02:00
Franck HOUSSEN c43cb86854 [BUG FIX] fix cmake/pc files: enable linking from outside. (#216) 2019-07-05 08:33:38 +02:00
Franck HOUSSEN 92787d9bcc Issue63 (#213)
* Generate arpack.pc when configuring with cmake

* Fix detection using pkg-config

* Use correct cmake variable names
2019-05-23 22:55:46 +02:00
Franck HOUSSEN 10fb0c301c [BUG FIX] ILP64 support: using debug_c and stat_c. (#196) 2019-04-01 10:45:32 +02:00
Franck HOUSSEN f5aead95fd [BUG FIX] fix check precision which may fail with some ATLAS versions. (#198) 2019-04-01 10:44:02 +02:00
Franck HOUSSEN c34f762fcd CI: Add ubuntu:bionic using docker. (#209)
[BUG FIX]: fix 'eval: Syntax error: "(" unexpected' error at build time.
Note: for CI, pkg-config and libtool must be added when using autotools.
2019-03-15 08:21:50 +01:00
Franck HOUSSEN f670e731b7 CI: add fedora build via docker run. (#199) 2019-03-10 22:28:52 +01:00
Franck HOUSSEN a26b727bc4 Update changelog. (#208) 2019-03-02 22:58:58 +01:00
Franck HOUSSEN 1dab774991 autotools: provide *.cmake files (in addition to *.pc file). (#207)
note: cmake provides both *.pc and *.cmake files.
2019-03-02 18:55:55 +01:00
Franck HOUSSEN 6615574e37 arpackmm: add --dense option. (#194) 2019-03-02 18:54:50 +01:00
Franck HOUSSEN 8fe4734da8 arpackmm: run test script with bash. (#206) 2019-03-02 18:53:51 +01:00
Franck HOUSSEN dfc8abd708 [BUG FIX] arpack may succeed to compute more EV than expected. (#197) 2019-02-13 17:01:22 +01:00
Franck HOUSSEN a98f85544f CI: make docker-run builds aware of PR commits. (#200)
Note: `-` was missing in `-enable-icb-exmm`, replaced with `--enable-icb`.
2019-02-13 16:59:34 +01:00
Franck HOUSSEN 5fff9efa5c CMake: make build dir look like source dir. (#201)
* CMake: make build dir look like source dir.

* CMake: provide files for coverage.
2019-02-12 14:17:12 +01:00
Franck HOUSSEN 7ae47646d4 CI: reduce logs, fix precision problem, increase coverage. (#193) 2019-01-27 10:12:39 +01:00
Franck HOUSSEN e10f589232 arpackmm: refactorisation, documentation, help, add timers. (#191) 2019-01-24 20:17:51 +01:00
Franck HOUSSEN 9112422e3b arpackmm: add missing options in option summary. (#190) 2019-01-23 18:50:53 +01:00
Franck HOUSSEN 3596f02a3e Arpackmm: add --simplePrec option (to enable use of [sc]*upd). (#189)
* arpackmm: factorisation before adding new option.

* arpackmm: add --simplePrec option (to enable use of [sc]*upd).
2019-01-23 18:35:55 +01:00
Franck HOUSSEN bc5cb025c8 Arpackmm (#188)
* arpackmm: add --slv LLT/LDLT.

* arpackmm: get consistent direct solver cmd line (kill --slvDrtPvtThd).
2019-01-20 23:10:05 +01:00
Franck HOUSSEN 6657ca2cca arpackmm: add --slvItrPC option (PC: Jacobi, ILU). (#187) 2019-01-14 15:47:42 +01:00
Franck HOUSSEN fee44e613d Add parpack files in the coveralls report. (#184) 2019-01-13 20:34:04 +01:00
Franck HOUSSEN ad9f74b962 Add error message if eigen is not found at configure time (autotools). (#185)
* Add error message if eigen is not found at configure time (autotools).

* Update configure.ac

Co-Authored-By: fghoussen <fghoussen@users.noreply.github.com>
2019-01-13 20:33:43 +01:00
Franck HOUSSEN 7317371abd arpackmm: add --schur option. (#181) 2019-01-11 09:46:39 +01:00
Franck HOUSSEN c957f8c43e arpackmm: add --slvDrtPvtThd option. (#180) 2019-01-11 08:22:37 +01:00
Franck HOUSSEN 56c2791dc6 [CLEAN] add .dirstamp in .gitignore. (#177) 2019-01-11 08:21:49 +01:00
Franck HOUSSEN 3d3bcd0c49 arpackmm: add --cpxPb option (run with zn[ae]upd). (#174) 2019-01-10 16:02:15 +01:00
Franck HOUSSEN 16e331abf3 arpackmm: add check. (#173) 2019-01-06 18:07:16 +01:00
Franck HOUSSEN 8a17cea5b7 [BUG FIX] changes needed after PR#165 (ILP64). (#169)
This was need to PR as the ilp64 branch didn't exist on opencollab/master.
2018-12-29 19:39:52 +01:00
Franck HOUSSEN aa970cefa6 ILP64 support. (#165)
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).
2018-12-29 13:55:40 +01:00
Franck HOUSSEN 2c1f6ebb5b arpackmm: utility to test arpack with matrix market files. (#157) 2018-12-12 09:39:56 +01:00
Franck HOUSSEN 8840cfdf43 Add github templates when creating issue/PR. (#167) 2018-12-11 18:26:00 +01:00
Franck HOUSSEN aff1edc46a Add F77 and FFLAGS in autotools configuration summary. (#166) 2018-11-23 11:28:05 +01:00
Franck HOUSSEN f18f8fa322 TravisCI - move CI to xenial: get not-so outdated packages. (#164)
* 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).
2018-11-20 12:09:18 +01:00
Franck HOUSSEN 703fb580a4 [BUG FIX] ICB: missing workev for *[ds]neupd (real+not-sym). (#155)
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).
2018-11-10 09:26:27 +01:00
Franck HOUSSEN 95360d81d6 [BUG FIX] TravisCI: show build error or test log to know what is wrong (#161)
if error occured (cmake bug, autotools OK, increase tail).
2018-10-11 16:21:31 +02:00
Franck HOUSSEN 8f95a7d772 TravisCI: show build error or test log to know what is wrong (#160)
if errors occured.
2018-10-11 15:12:30 +02:00
Franck HOUSSEN ee9a93a853 Update CHANGES. (#156) 2018-09-16 16:05:43 +02:00
Franck HOUSSEN 2d969e902d [CLEAN] Run MPI tests with "mpirun -n 2". (#152) 2018-09-15 17:46:24 +02:00
Franck HOUSSEN 5872987e67 [BUG FIX] howmny is defined as character*1 in pdseupd subroutine. (#153)
Cosmetic bug ("safer" way to get same thing).
2018-09-15 17:38:27 +02:00
Franck HOUSSEN bbb87ba0ff Fix issue 144. Add -fdefault-integer-8/-i8 in FCFLAGS. (#147) 2018-09-15 17:36:42 +02:00
Franck HOUSSEN 78d781286a stat: initialize common block. (#148)
* 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.
2018-09-15 17:35:57 +02:00
Franck HOUSSEN 3829c449c0 Add missing test binaries in gitignore. (#151) 2018-09-15 17:35:12 +02:00
Franck HOUSSEN b7ce7debe5 [BUG FIX] When using *zneupd, sigma is complex. (#154)
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).
2018-09-15 17:31:35 +02:00
Franck HOUSSEN cdfb08aac2 Travis-CI: use jobs (easier to check out what's wrong). (#138) 2018-06-30 22:43:31 +02:00
Franck HOUSSEN f532cc06a1 Various improvement on build systems
* [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).
2018-06-29 11:41:41 +02:00
Franck HOUSSEN c61bb2c16a Clean (#136)
* [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 !...
2018-06-26 17:35:32 +02:00
Franck HOUSSEN eb9d23dd3f Add configuration summary. (#135) 2018-06-26 14:51:14 +02:00
Franck HOUSSEN 68a420889c [BUG FIX] Missing include. (#134) 2018-06-26 14:18:35 +02:00
Franck HOUSSEN 277a6c8cfe C++11 (for ICB): do NOT use hard-coded gnu++11. (#133) 2018-06-25 21:38:48 +02:00
Franck HOUSSEN 54c8e0b18c autotools: run parpack tests with "mpirun -n 2". (#101) 2018-03-24 18:39:25 +01:00
Franck HOUSSEN b52efe5f2c parpack: configuration check (use iso_c_binding, MPI_Comm_c2f). (#100)
* parpack: check for MPI_Comm_c2f.

* iso_c_binding: check for icb module compilation.
2018-03-23 11:39:15 +01:00
Franck HOUSSEN 4985c11b19 parpack: running autotools tests. (#99)
note: ax_mpi must be ran twice (first run in --enable-mpi scope
is lost when entering --enable-icb scope).
2018-03-22 15:27:38 +01:00
Franck HOUSSEN 6c1bd3053d [BUG FIX] CMake: use ${PROJECT_SOURCE_DIR}. (#97)
.. is OK only when the BUILD dir in under the root dir.
2018-03-21 17:54:43 +01:00
Franck HOUSSEN 2daaeaf2e9 TravisCI: kill libc++-dev. (#96) 2018-03-21 16:26:50 +01:00
Franck HOUSSEN 7bdcee1b23 parpack : add iso_c_binding support. (#95) 2018-03-21 13:24:10 +01:00
Franck HOUSSEN 264603d284 arpack.hpp: adding comments. (#93) 2018-03-12 15:21:36 +01:00
Franck HOUSSEN 3e841c8b13 Add CMake build directories in .gitignore. (#90) 2018-03-10 16:26:30 +01:00
Franck HOUSSEN f14261dcb0 arpack.hpp: add const to improve C++ integration. (#89)
note: as const is added on function arguments, this should be safe from C <-> C++ pitfalls.
2018-03-10 16:26:14 +01:00
Franck HOUSSEN 1d912add4f CMake: kill useless lines (coming from bad merge ?). (#78) 2017-11-09 10:43:11 +01:00
Franck HOUSSEN 2f721dbade Issue 62: generate static/shared libraries. (#75) 2017-10-29 21:48:55 +01:00
Franck HOUSSEN 0e7d01d34b CMake: find_package for both parpack and arpack. (#76)
/tmp> cp /path/to/arpack-ng/PARPACK/EXAMPLES/MPI/*.f .
/tmp> cp /path/to/arpack-ng/PARPACK/EXAMPLES/MPI/*.h .

/tmp> more CMakeLists.txt
cmake_minimum_required(VERSION 3.7)
project(pdndrv1 Fortran)
find_package(MPI REQUIRED)
find_package(arpack-ng 3.5 REQUIRED)
find_package(BLAS REQUIRED)
find_package(LAPACK REQUIRED)
add_executable(pdndrv1 pdndrv1.f)
target_link_libraries(pdndrv1 "${arpack_ng_LIBRARIES}" "${MPI_Fortran_LIBRARIES}" "${BLAS_LIBRARIES}" "${LAPACK_LIBRARIES}")
target_include_directories(pdndrv1 PUBLIC "${arpack_ng_INCLUDE_DIRS}" "${MPI_Fortran_INCLUDE_PATH}")

/tmp> export CMAKE_PREFIX_PATH=/path/to/arpack-ng/local # Should be done by module load.

/tmp> mkdir BUILD; cd BUILD; cmake ..; make

/tmp> mpirun -n 2 ./pdndrv1
2017-10-29 21:48:38 +01:00
Franck HOUSSEN da46ff3d4b Provide tarball generation using cmake (cpack). (#70)
Provide tarball generation using cmake (cpack)
2017-10-26 16:56:06 +02:00
Franck HOUSSEN 282fe8aa79 Run the testsuite in the CI with cmake. Fixes issue #64. 2017-10-26 15:49:37 +02:00
Franck HOUSSEN 19ac60166b Improve iso_c_binding coverage (#73)
* Provide arpack.h/hpp in install directory.

>> tree local/
local/
├── include
│   ├── arpack.h
│   └── arpack.hpp
└── lib
    ├── libarpack.a
    ...

* [BUG FIX] Provide arpack.h/hpp in install directory: fix make distcheck.

* Move iso_c_binding to icb_arpack.
This will ease iso_c_binding implementation for parpack (future dev).

* Improve iso_c_binding coverage. Add tests involving complex.
2017-10-26 11:46:24 +02:00
Franck HOUSSEN 771cbbd9c8 Add support for iso_c_binding (portability, f/c/c++ binding). (#68)
* Add support for iso_c_binding (portability, f/c/c++ binding).

* Add support for iso_c_binding: add README and comment examples.
2017-10-16 17:47:23 +02:00
Franck HOUSSEN be3a61cfee Provide find_package for (cmake) users to find arpack-ng. (#69)
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.
2017-10-16 14:38:51 +02:00