packages feed

dvda-0.2.1: dvda.cabal

Name:                dvda
Version:             0.2.1
License:             BSD3
License-file:        LICENSE
Author:              Greg Horn
Maintainer:          gregmainland@gmail.edu
Stability:           Experimental
Category:            Numerical, Math
Build-type:          Custom
Synopsis:            Efficient automatic differentiation
Cabal-version:       >= 1.8
Description: {
dvda == DVDA Verifiably Differentiates Algorithmically
.
This library provides a symbolic type `Dvda.Expr` which is
manipulated mathematically through its Num\/Fractional\/Floating instances.
Expr can be a scalar, vector, or matrix. Binary operations (adding\/multiplying\/etc)
are all elementwise.
.
Matrix/vector/scalar safety is enforced at compile time
.

Efficient derivatives can be computed. Internally reverse automatic differentiation
is performed including efficient common subexpression elimination.
.
Function graphs can be JIT compiled into efficient functions using "buildHSFunction".
This is the intended way to use this library.
.
Pretty graphviz plots!
.
If the runtime JIT stuff works in terminal ghci but not emacs haskell-mode, you may need to add
`(setenv "PATH" (concatenate 'string (getenv "PATH") ":/usr/local/bin"))` to your .emacs file
.
To get started look in `Dvda.Examples` or CompileTest.hs in the github repo
}

source-repository head
  type: git
  location: git://github.com/ghorn/dvda.git
--  tag: 

Flag stressTest
  Description: Build a profilable hard executable
  Default: False

Library
  Exposed-modules:   Dvda
                     Dvda.BinUn
                     Dvda.CallNative
                     Dvda.Codegen
                     Dvda.Config
--                     Dvda.Dot
                     Dvda.Dual
                     Dvda.Examples
                     Dvda.Expr
                     Dvda.Graph
--                     Dvda.HSBuilder
--                     Dvda.HSSyntax
                     Dvda.MultipleShooting.MSCoctave
                     Dvda.MultipleShooting.MSMonad
                     Dvda.MultipleShooting.MultipleShooting
                     Dvda.MultipleShooting.Types
                     Dvda.OctaveSyntax
                     Dvda.SparseLA
                     Dvda.SymMonad
--                     Dvda.CFunction
--                     Dvda.Codegen.CBuilder
--                     Dvda.Codegen.CCallWrapper
--                     Dvda.Codegen.CSyntax
--                     Dvda.Codegen.Utils

  Other-modules:     

  Build-depends:     base       >= 4     && < 5,
                     hashable  >= 1.1 && < 1.2,
                     repa  >= 3.2 && < 3.3,
                     containers >= 0.4 && < 0.5,
                     unordered-containers  >= 0.2 && < 0.3,
                     graphviz >= 2999.12 && < 2999.13,
                     fgl >= 5.4 && < 5.5,
                     mtl >= 2.0 && < 2.1,
                     directory >= 1.1 && < 1.2,
--                     process >= 1.1 && < 1.2,
--                     text >= 0.11 && < 0.12,
--                     plugins >= 1.5 && < 1.6,
--                     deepseq >= 1.3 && < 1.4,
                     hmatrix >= 0.14 && < 0.15
		     
--                     latc >= 0.1 && < 0.2
--                     unix
--                     text,

  Ghc-options:       -Wall
--  Ghc-options:       -O2 -Wall -threaded
  GHC-Prof-Options: -prof -fprof-auto


flag test
  description: Build test program.
  default:     False

Test-suite test
  type:		   exitcode-stdio-1.0
  hs-source-dirs:  test, .
  main-is:         Test.hs
  build-depends:   base,                      
                   QuickCheck == 2.4.*,
                   ad,
                   test-framework-quickcheck2,
                   test-framework
  ghc-options:     -Wall

-- Executable stressTest
--   if flag(stressTest)
--      Buildable: True
--   else
--      Buildable: False
-- 
--   Main-Is:           StressTest.hs
-- 
--   Ghc-Options: -O2
-- 
--   GHC-Prof-Options: -prof -fprof-auto