lapack-comfort-array: Auto-generated interface to Fortran LAPACK via comfort-array
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
LAPACK is a package for efficient numerically robust linear algebra. The original implementation is written in FORTRAN. This is a semi-automatically generated mid-level wrapper. The functions are not ready to use for high-level applications, but they are a step closer.
The functions are all in IO monad because they are auto-generated and
we cannot make sure automatically that unsafePerformIO is always safe.
Instead of raw pointers we use Arrays and Mutable.Arrays
and assign and check array bounds to LAPACK function parameters,
as far we can retrieve this information from the FORTRAN comments.
We check consistency of dimensions where consistent dimensions are required,
but we cannot do all kind of bound checks.
We use immutable Array for input and output parameters
and mutable Mutable.Array for input/output parameters.
LAPACK plays some nasty tricks of in-place array updates
on input/output arrays
even if the dimensions of input and output array differ (see e.g. GELS).
The wrappers also manage allocation of memory for function parameters.
This is necessary since FORTRAN passes all parameters by reference.
Further on, the wrappers convert from Haskell values like Int
to low-level values like CInt
.
We provide bindings to functions of all variants
for Float
, Double
, Complex Float
and Complex Double
.
We do not use TemplateHaskell nor HSC nor CHS, but instead Haskell 98 code
generated by the custom lapack-ffi-tools
package.
Properties
Versions | 0.0, 0.0.0.1, 0.0.0.1, 0.0.0.2, 0.0.1 |
---|---|
Change log | None available |
Dependencies | base (>=4.5 && <5), comfort-array (>=0.3 && <0.5), lapack-ffi (>=0.0 && <0.1), netlib-comfort-array (>=0.0 && <0.1), netlib-ffi (>=0.0 && <0.2), storable-complex (>=0.2.2 && <0.3), transformers (>=0.4 && <0.6) [details] |
License | BSD-3-Clause |
Author | Henning Thielemann <haskell@henning-thielemann.de> |
Maintainer | Henning Thielemann <haskell@henning-thielemann.de> |
Category | Math |
Home page | http://hub.darcs.net/thielema/lapack-comfort-array/ |
Source repo | this: darcs get http://hub.darcs.net/thielema/lapack-comfort-array/ --tag 0.0.0.1 head: darcs get http://hub.darcs.net/thielema/lapack-comfort-array/ |
Uploaded | by HenningThielemann at 2019-05-24T04:46:10Z |
Modules
[Index] [Quick Jump]
- Numeric
- LAPACK
- ComfortArray
- LAPACK
Downloads
- lapack-comfort-array-0.0.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees