netlib-ffi (empty) → 0.0
raw patch · 4 files changed
+96/−0 lines, 4 filesdep +basedep +transformerssetup-changed
Dependencies added: base, transformers
Files
- LICENSE +27/−0
- Setup.lhs +3/−0
- netlib-ffi.cabal +40/−0
- src/Numeric/Netlib/Class.hs +26/−0
+ LICENSE view
@@ -0,0 +1,27 @@+Copyright (c) Henning Thielemann 2017++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions+are met:+1. Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+ notice, this list of conditions and the following disclaimer in the+ documentation and/or other materials provided with the distribution.+3. Neither the name of the author nor the names of his contributors+ may be used to endorse or promote products derived from this software+ without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF+SUCH DAMAGE.
+ Setup.lhs view
@@ -0,0 +1,3 @@+#! /usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMain
+ netlib-ffi.cabal view
@@ -0,0 +1,40 @@+Name: netlib-ffi+Version: 0.0+License: BSD3+License-File: LICENSE+Author: Henning Thielemann <haskell@henning-thielemann.de>+Maintainer: Henning Thielemann <haskell@henning-thielemann.de>+Homepage: http://hub.darcs.net/thielema/netlib-ffi/+Category: Math+Synopsis: Helper modules for FFI to BLAS and LAPACK+Description:+ Netlib is a collection of packages for efficient numeric linear algebra.+ Most prominent parts of Netlib are BLAS and LAPACK.+ These packages contain functions for matrix computations,+ solution of simultaneous linear equations and eigenvalue problems.+ .+ This package provides definitions shared by+ the packages @blas-ffi@ and @lapack-ffi@.+Tested-With: GHC==7.4.2, GHC==7.8.4+Cabal-Version: >=1.14+Build-Type: Simple++Source-Repository this+ Tag: 0.0+ Type: darcs+ Location: http://hub.darcs.net/thielema/netlib-ffi/++Source-Repository head+ Type: darcs+ Location: http://hub.darcs.net/thielema/netlib-ffi/++Library+ Build-Depends:+ transformers >=0.2 && <0.6,+ base >=4.5 && <5++ GHC-Options: -Wall -fwarn-missing-import-lists+ Hs-Source-Dirs: src+ Default-Language: Haskell98+ Exposed-Modules:+ Numeric.Netlib.Class
+ src/Numeric/Netlib/Class.hs view
@@ -0,0 +1,26 @@+module Numeric.Netlib.Class where++import Foreign.Storable (Storable)++import Data.Functor.Compose (Compose(Compose, getCompose))+import Data.Complex (Complex)++import Prelude (Float, Double, ($))+++class (Storable a) => Real a where+ switchReal :: f Float -> f Double -> f a++instance Real Float where switchReal f _ = f+instance Real Double where switchReal _ f = f+++class Floating a where+ switchFloating ::+ f Float -> f Double ->+ f (Complex Float) -> f (Complex Double) -> f a++instance Floating Float where switchFloating f _ _ _ = f+instance Floating Double where switchFloating _ f _ _ = f+instance (Real a) => Floating (Complex a) where+ switchFloating _ _ fz fc = getCompose $ switchReal (Compose fz) (Compose fc)