The Paraiso package

The purpose of this project is to design a high-level language
for implementing explicit partial-differential equations solvers
on supercomputers as well as today’s advanced personal
computers.
A language to describe the knowledge on algebraic concepts,
physical equations, integration algorithms, optimization
techniques, and hardware designs --- all the necessaries of the
simulations in abstract, modular, re-usable and combinable forms.

How to use

The module Language.Paraiso.OM.Builder contains the
Builder monad, its typeclass instance declarations and
functions that can be used to build Paraiso
programs. Reserved words are load, store, imm,
loadIndex, loadSize, shift, reduce and
broadcast.

Paraiso frontend uses Data.Tensor.Typelevelhttp://hackage.haskell.org/package/typelevel-tensor,
the library for tensor calculus of
arbitrary rank and dimension. Vector and Axis are two main
concepts. The type Vector represents rank-1 tensor, and tensors
of higher ranks are recursively defined as Vector of
Vectors. With Axis you can refer to the components of
Vectors, compose them, or contract them. See the wiki for more detail:
http://www.paraiso-lang.org/wiki/