declarative alternatives and similar packages
Based on the "Math" category.
Alternatively, view declarative alternatives based on common mentions on social networks and blogs.

vector
An efficient implementation of Intindexed arrays (both mutable and immutable), with a powerful loop optimisation framework . 
statistics
A fast, high quality library for computing with statistics in Haskell. 
HerbiePlugin
GHC plugin that improves Haskell code's numerical stability 
hgeometry
HGeometry is a library for computing with geometric objects in Haskell. It defines basic geometric types and primitives, and it implements some geometric data structures and algorithms. The main two focusses are: (1) Strong type safety, and (2) implementations of geometric algorithms and data structures that have good asymptotic running time guarantees. 
dimensional
Dimensional library variant built on Data Kinds, Closed Type Families, TypeNats (GHC 7.8+). 
computationalalgebra
GeneralPurpose Computer Algebra System as an EDSL in Haskell 
mwcrandom
A very fast Haskell library for generating high quality pseudorandom numbers. 
numhask
A haskell numeric prelude, providing a clean structure for numbers and operations that combine them. 
matrix
A Haskell native implementation of matrices and their operations. 
vectorspace
Vector & affine spaces, linear maps, and derivatives 
poly
Fast polynomial arithmetic in Haskell (dense and sparse, univariate and multivariate, usual and Laurent) 
cf
"Exact" real arithmetic for Haskell using continued fractions (Not formally proven correct) 
optimization
Some numerical optimization methods implemented in Haskell 
rampart
:european_castle: Determine how intervals relate to each other. 
equationalreasoning
Agdastyle equational reasoning in Haskell 
safedecimal
Safe and very efficient arithmetic operations on fixed decimal point numbers 
sbvPlugin
Formally prove properties of Haskell programs using SBV/SMT. 
monoidsubclasses
Subclasses of Monoid with a solid theoretical foundation and practical purposes 
polynomial
Haskell library for manipulating and evaluating polynomials 
eigen
Haskel binding for Eigen library. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. 
modulararithmetic
A useful type for working with integers modulo some constant. 
manifoldrandom
Coordinatefree hypersurfaces as Haskell types
InfluxDB  Power RealTime Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of declarative or a related project?
README
declarative
DIY Markov Chains.
What is this
This package presents a simple combinator language for Markov transition operators that are useful in MCMC.
Any transition operators sharing the same stationary distribution and obeying the Markov and reversibility properties can be combined in a couple of ways, such that the resulting operator preserves the stationary distribution and desirable properties amenable for MCMC.
We can deterministically concatenate operators endtoend, or sample from a collection of them according to some probability distribution. See Geyer, 2005 for details.
The result is a simple grammar for building composite, propertypreserving transition operators from existing ones:
transition ::= primitive <transition>
 concatT transition transition
 sampleT transition transition
This library also reexports a number of productionquality transition operators from the mightymetropolis, speedyslice, and hastyhamiltonian libraries.
Markov chains can then be run over arbitrary Target
s using whatever
transition operator is desired.
import Numeric.MCMC
import Data.Sampling.Types
target :: [Double] > Double
target [x0, x1] = negate (5 *(x1  x0 ^ 2) ^ 2 + 0.05 * (1  x0) ^ 2)
rosenbrock :: Target [Double]
rosenbrock = Target target Nothing
transition :: Transition IO (Chain [Double] b)
transition =
concatT
(sampleT (metropolis 0.5) (metropolis 1.0))
(sampleT (slice 2.0) (slice 3.0))
main :: IO ()
main = withSystemRandom . asGenIO $ mcmc 10000 [0, 0] transition rosenbrock
Installation
Installing is best done via stack, which will pull down everything you might need (including GHC).
$ stack install declarative
If you want to grab the test suite/examples, grab the repo and build via
git clone [email protected]:jtobin/declarative.git
cd declarative
stack build
You can then run the test suite via stack test
.
Documentation & Examples
Check out the haddockgenerated docs on Hackage.
You can also peruse the introductory announce post.
Etc.
PRs and issues welcome.
*Note that all licence references and agreements mentioned in the declarative README section above
are relevant to that project's source code only.