Libraries Description

General Information

The libraries contain routines which are independent of the rest of the package, e.g. they do not use the include linking the main programs. They thus have a special status and are kept together in the $MCTDH_DIR/source/lib directory.

When changing a library routine, try to avoid changing an interface. This could lead to unforeseen problems in a program.

The following libraries are employed by the MCTDH program:

lapack: Contains all the LAPACK routines that MCTDH uses. This is the reference implementation from NETLIB.

blas: Contains all the BLAS routines that MCTDH uses. Again, this is the reference implementation from NETLIB.

la: Contains all other linear algebra calculations, such as matrix multiplication or determination of eigenvalues.

ode: Contains all integrators, e.g. Bulirsch-Stoer and Lanczos.

num: Contains all numerical operations (e.g. FFT, special functions, ...).

sys: Contains routines concerning the machine and the operating system and the input of data.

Compiling the Library

The libraries are automatically compiled as required when a program is compiled. It is also possible to compile the libraries separately using the general compile script. Typing
compile lib

will compile all the library archives. A single archive can also be compiled, e.g.

compile libnum

will compile the NUM library.

One useful feature of the compilation procedure is that it is possible to generate debug code for a program with optimised libraries, e.g.

compile -d mctdh

compiles a debug version (mctdh<ver>d) of the MCTDH program with optimised libraries. This is useful as the library routines need a large percentage of the computer time, and this speeds up the process of debugging. To compile a program with debug information also for the library, use the -D option.

For more details on the $MCTDH_DIR/bin/compile script, see Compiling the programs.

Contents of the Library LAPACK

This is not the complete LAPACK library, but only those selected routines from NETLIB's reference implementation which are needed by MCTDH and auxiliary programs.

dgelq2.f dgelqf.f dgels.f dgeqr2.f dgeqrf.f
disnan.f dlabad.f dlacpy.f dladiv.f dlae2.f
dlaev2.f dlaisnan.f dlamch.f dlange.f dlanst.f
dlansy.f dlapy2.f dlapy3.f dlarf.f dlarfb.f
dlarfg.f dlarft.f dlartg.f dlascl.f dlaset.f
dlasr.f dlasrt.f dlassq.f dlatrd.f dorg2l.f
dorg2r.f dorgql.f dorgqr.f dorgtr.f dorm2r.f
dorml2.f dormlq.f dormqr.f dpbtf2.f dpbtrf.f
dpbtrs.f dposv.f dpotf2.f dpotrf.f dpotrs.f
dsteqr.f dsterf.f dsyev.f dsytd2.f dsytrd.f
dtrtrs.f ieeeck.f iladlc.f iladlr.f ilaenv.f
ilazlc.f ilazlr.f iparmq.f lsame.f xerbla.f
zgebak.f zgebal.f zgeev.f zgehd2.f zgehrd.f
zheev.f zhetd2.f zhetrd.f zhseqr.f zlacgv.f
zlacpy.f zladiv.f zlahqr.f zlahr2.f zlahrd.f
zlange.f zlanhe.f zlanhs.f zlaqr0.f zlaqr1.f
zlaqr2.f zlaqr3.f zlaqr4.f zlaqr5.f zlarf.f
zlarfb.f zlarfg.f zlarft.f zlarfx.f zlartg.f
zlascl.f zlaset.f zlasr.f zlassq.f zlatrd.f
zlatrs.f zrot.f zsteqr.f ztrevc.f ztrexc.f
zung2l.f zung2r.f zunghr.f zungql.f zungqr.f
zungtr.f zunm2r.f zunmhr.f zunmqr.f

Contents of the Library BLAS

Like above, this is not the complete BLAS library, but only those selected routines from NETLIB's reference implementation which are needed by MCTDH and auxiliary programs.

daxpy.f dcabs1.f dcopy.f ddot.f dgemm.f
dgemv.f dger.f dnrm2.f dscal.f dswap.f
dsymm.f dsymv.f dsyr2.f dsyr2k.f dsyr.f
dsyrk.f dtbsv.f dtrmm.f dtrmv.f dtrsm.f
dtrsv.f dzasum.f dznrm2.f idamax.f izamax.f
zaxpy.f zcopy.f zdotc.f zdotu.f zdscal.f
zgemm.f zgemv.f zgerc.f zhemv.f zher2.f
zher2k.f zscal.f zswap.f ztrmm.f ztrmv.f
ztrsv.f

Contents of the Library LA

The library la contains routines for linear algebra calculations. The code is contained in various files:

Contents of the Library ODE

The library ode contains various integrators for ordinary differential equations. The following files and routines exist:

Contents of the Library NUM

The library num contains routines for various numerical operations. The following files and routines exist:

Contents of the Library SYS

The library sys contains routines concerning the machine and the operating system. The following files and routines exist: