Name: cblas-ffi Version: 0.0 License: BSD3 License-File: LICENSE Author: Henning Thielemann Maintainer: Henning Thielemann Homepage: https://hub.darcs.net/thielema/cblas-ffi/ Category: Math Synopsis: Interface to extra functions in CBLAS Description: BLAS is a package for efficient basic linear algebra operations. The reference implementation is written in FORTRAN. CBLAS provides a C interface to those functions but common implementations like OpenBLAS, Flame and MKL provide additional functions. These are usual built-in FORTRAN functions that are missing in C. . Currently we support: . * copyMatrix for matrix transposition and copying sub-matrices . * ismin, ismax for minimum of a vector . We recommend that you bind to the same C library as for @blas-ffi@ otherwise you might encounter name conflicts. With no Cabal flag we simply import @blas-ffi@ and employ a semi-manual solution with original BLAS functions. Tested-With: GHC==8.6.5, GHC==9.6.5 Cabal-Version: 1.14 Build-Type: Simple Extra-Source-Files: Makefile openblas.nix amd-blis.nix mkl.nix Flag openblas Description: Use OpenBLAS implementation Default: False Manual: True -- Default: True Flag flame-blis Description: Use Flame-BLIS implementation Default: False Manual: True Flag amd-blis Description: Use AMD BLIS implementation Default: False Manual: True Flag mkl Description: Use Intel MKL implementation Default: False Manual: True Flag buildExamples Description: Build example executables Default: False Source-Repository this Tag: 0.0 Type: darcs Location: https://hub.darcs.net/thielema/cblas-ffi/ Source-Repository head Type: darcs Location: https://hub.darcs.net/thielema/cblas-ffi/ Library If flag(flame-blis) Hs-Source-Dirs: flame-blis Extra-Libraries: blis -- PkgConfig-Depends: blis Other-Modules: Numeric.CBLAS.FFI.Routine Numeric.CBLAS.FFI.Type Else If flag(amd-blis) Hs-Source-Dirs: amd-blis Extra-Libraries: blis-mt Build-Depends: transformers >=0.4 && <0.7 Other-Modules: Numeric.CBLAS.FFI.Routine Numeric.CBLAS.FFI.Type Else If flag(mkl) Hs-Source-Dirs: mkl C-Sources: mkl/mkl_trans_wrapper.c -- CC-Options: -std=c99 PkgConfig-Depends: mkl-dynamic-lp64-seq -- Extra-Libraries: mkl_core mkl_rt mkl_intel_lp64 mkl_sequential Other-Modules: Numeric.CBLAS.FFI.Routine Numeric.CBLAS.FFI.Type Else If flag(openblas) Hs-Source-Dirs: openblas PkgConfig-Depends: openblas -- Extra-Libraries: gfortran Other-Modules: Numeric.CBLAS.FFI.Routine Numeric.CBLAS.FFI.Type Else -- PkgConfig-Depends: cblas Hs-Source-Dirs: blas Build-Depends: blas-ffi >=0.0 && <0.2, transformers >=0.4 && <0.7 Build-Depends: netlib-ffi >=0.1.2 && <0.2, base >=4.5 && <5 GHC-Options: -Wall Hs-Source-Dirs: src Default-Language: Haskell98 Exposed-Modules: Numeric.CBLAS.FFI.Extra Other-Modules: Numeric.CBLAS.FFI.Private Numeric.CBLAS.FFI.Common Executable cblas-ffi-example If flag(buildExamples) Build-Depends: cblas-ffi, netlib-ffi, base Else Buildable: False GHC-Options: -Wall Default-Language: Haskell98 Main-Is: example/Main.hs