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.Typelevel`

http://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
`Vector`

s. With `Axis`

you can refer to the components of
`Vector`

s, compose them, or contract them. See the wiki
http://www.paraiso-lang.org/wiki/ and the paper
http://arxiv.org/abs/1204.4779 for more detail. Examples
are in https://github.com/nushio3/Paraiso/tree/master/examples.

0.3.1.5 : Catch up to stack lts-3.16/ghc 7.10.2, thanks to Justus Sagemüller's patch!

0.3.0.0 *Doughnut* : refined interface and support for cyclic boundary conditions.

0.2.0.0 *Companion* : genetic algorithm support for automated tuning.

0.1.0.0 *Binary* : enhanced backend, code generator for OpenMP and CUDA

0.0.0.0 *Atmosphere* : code generator for single CPU