turboencabulator 998b89840e Autotools cleanup (#172)
* Version numbers need to be kept up-to-date

* arpack.pc:  includedir should match the corresponding ./configure option

* Override pkgincludedir instead of creating a new directory variable

* Supplying arguments to AC_OUTPUT is obsolete behavior

* Distribute the entire source regardless of build options

Otherwise you won't be able to build ICB/MPI/etc. if the tarball wasn't
originally built with those options, because those files will be
missing.  Missing files leads to more breakage.

DIST_SUBDIRS is handled automatically.

* Clean up conditional recursion into subdirectories

Don't need to check for ICB inside a subdirectory if it won't be
descended into from the parent directory.

* Fix various include path problems

Should be using $(top_srcdir), not $(top_builddir).
-I flags go in CPPFLAGS, not CFLAGS nor FCFLAGS.

* Minor rearrangement of autoconf macros

Put all AC_CONFIG_*s together near the end.
Put all AM_CONDITIONALs together near the end.  These should never be
conditionally expanded.

* Run Fortran flag tests against the correct compiler

* Simplify --enable arguments

AC_HELP_STRING has been replaced by AS_HELP_STRING.
Setting enable_foo to $enableval is an unnecessary self-assignment.

* Fix missing files in the distribution

* Simplify creation of arpackdef.h

The ax_gen_arpack.m4 macro would add a bunch of extra garbage to
arpackdef.h, such as PACKAGE_NAME, VERSION, HAVE_BLAS, etc. that would
clash if any other project tried to #include it.  Shorten it to only the
one #define that we care about.

This file is placed in $(top_builddir) so add that path to CPPFLAGS.
-I$(top_builddir) should be first.  Note that autoheader would do this,
but now we don't need to use autoheader.

Move #include lines inside the include guards.

* Need PKG_PROG_PKG_CONFIG if first PKG_CHECK_MODULES is conditional

* Populate the version and URL fields of arpack.pc from CMake

Still not installing this yet because it doesn't contain full dependency
info for LAPACK/BLAS.

* Bump version to 3.7.0

* Update shared library version

Updating the minor number (libtool "age") due to the new dbgini/staini
symbols.  Note that CMake doesn't follow libtool's current:revision:age
numbering scheme, so care should be taken with any future changes to
make sure they generate files with the same numbers.

* Enable checks for eigen3 headers
2019-01-10 11:12:29 +01:00
2018-04-03 18:46:31 -04:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2018-06-23 15:17:57 +02:00
2019-01-10 11:12:29 +01:00
2013-01-09 17:14:55 -05:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2018-12-29 13:56:48 +01:00
2019-01-10 11:12:29 +01:00
2019-01-10 11:12:29 +01:00
2018-09-15 17:35:57 +02:00
2018-06-23 15:17:57 +02:00
2019-01-10 11:12:29 +01:00
2018-03-10 17:05:05 +01:00
2018-12-29 14:11:50 +01:00
2018-09-15 17:35:57 +02:00
2018-04-09 17:54:03 +02:00

ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.


Coverage Status

Important Features:

  • Reverse Communication Interface.
  • Single and Double Precision Real Arithmetic Versions for Symmetric, Non-symmetric, Standard or Generalized Problems.
  • Single and Double Precision Complex Arithmetic Versions for Standard or Generalized Problems.
  • Routines for Banded Matrices - Standard or Generalized Problems.
  • Routines for The Singular Value Decomposition.
  • Example driver routines that may be used as templates to implement numerous Shift-Invert strategies for all problem types, data types and precision.
  • arpackmm: utility to test arpack with matrix market files. Note: to run this utility, you need the eigen library (to handle RCI).
  • ILP64 support:
    • users: set INTERFACE64 at configure time.
    • developpers:
      • all files which needs ILP64 support must include "arpackdef.h".
      • when coding, use a_int (defined in arpackdef.h) instead of int. a_int stands for "architecture int": it's #defined to int or int64_t according to the architecture.
    • example: to test arpack with sequential ILP64 MKL assuming you use gnu compilers
      $ export FFLAGS='-I/usr/include/mkl'
      $ export FCFLAGS='-I/usr/include/mkl'
      $ export LIBS='-Wl,--no-as-needed -lmkl_sequential -lmkl_core -lpthread -lm -ldl'
      $ export INTERFACE64=1
      $ ./configure --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64
      $ make all check```
      
      

This project started as a joint project between Debian, Octave and Scilab in order to provide a common and maintained version of arpack. This is now a community project maintained by a few volunteers.

Indeed, no single release has been published by Rice university for the last few years and since many software (Octave, Scilab, R, Matlab...) forked it and implemented their own modifications, arpack-ng aims to tackle this by providing a common repository, maintained versions with a testsuite.

arpack-ng is replacing arpack almost everywhere.

  1. You have successfully unbundled ARPACK-NG and are now in the ARPACK-NG directory that was created for you.

  2. The directory SRC contains the top level routines including the highest level reverse communication interface routines

  • ssaupd, dsaupd - symmetric single and double precision

  • snaupd, dnaupd - non-symmetric single and double precision

  • cnaupd, znaupd - complex non-symmetric single and double precision

    The headers of these routines contain full documentation of calling sequence and usage. Additional information is in the DOCUMENTS directory.

    The directory PARPACK contains the Parallel ARPACK routines.

  1. Example driver programs that illustrate all the computational modes, data types and precisions may be found in the EXAMPLES directory. Upon executing the 'ls EXAMPLES' command you should see
  • BAND

  • COMPLEX

  • NONSYM

  • README

  • SIMPLE

  • SVD

  • SYM

    Example programs for banded, complex, nonsymmetric, symmetric, and singular value decomposition may be found in the directories BAND, COMPLEX, NONSYM, SYM, SVD respectively. Look at the README file for further information. To get started, get into the SIMPLE directory to see example programs that illustrate the use of ARPACK in the simplest modes of operation for the most commonly posed standard eigenvalue problems.

    Example programs for Parallel ARPACK may be found in the directory PARPACK/EXAMPLES. Look at the README file for further information.

    The following instructions explain how to make the ARPACK library.

  1. Unlike ARPACK, ARPACK-NG is providing autotools and cmake based build system and iso_c_binding support (which enables to call fortran subroutines natively from C or C++).

Therefore, the classical commands should work as expected:

$ sh bootstrap
$ ./configure
$ make
$ make check
$ make install

Furthermore, ARPACK-NG now provides CMake functionality:

$ mkdir build
$ cd build
$ cmake -D EXAMPLES=ON -D MPI=ON -D BUILD_SHARED_LIBS=ON ..
$ make
$ make install

builds everything including examples and parallel support (with MPI).

To build with code coverage:

$ mkdir build
$ cd build
$ cmake -DCOVERALLS=ON -DCMAKE_BUILD_TYPE=Debug ..
$ make all check test coveralls

To get iso_c_binding support:

$ ./configure --enable-icb
$ cmake -D ICB=ON

The install will now provide arpack.h/hpp, parpack.h/hpp and friends. Examples of use can be found in ./TESTS and ./PARPACK/TESTS/MPI. A few related links can be found here:

  1. Within DOCUMENTS directory there are three files
  • ex-sym.doc

  • ex-nonsym.doc and

  • ex-complex.doc

    for templates on how to invoke the computational modes of ARPACK. Also look in the README.MD file for explanations concerning the other documents.

Good luck and enjoy.

S
Description
No description provided
Readme
4 MiB
Languages
Fortran 92.2%
C++ 2.9%
Python 1.2%
M4 1.1%
C 0.8%
Other 1.8%