The Paraiso package

[ Tags: bsd3, language, library ] [ Propose Tags ]

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, 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:


Dependencies array (>=0.2 && <0.5), base (==4.*), containers (>=0.4.0 && <0.5), control-monad-failure (>=0.7.0 && <0.8), directory (>=1.0 && <1.2), fgl (>=5.4.2 && <5.5), filepath (>=1.2.0 && <1.4), ListLike (>=3.1.1 && <3.2), listlike-instances (==0.1.*), mtl (>=2.0.1 && <2.1), numeric-prelude (>=0.2 && <0.4), process (==1.1.*), random (>=1.0.0 && <1.1), text (>=0.11.1 && <0.12), typelevel-tensor (>=0.1), vector (>=0.7.1 && <0.8) [details]
License BSD3
Author Takayuki Muranushi
Category Language
Home page
Source repo head: git clone
Uploaded Sat Feb 11 15:06:19 UTC 2012 by TakayukiMuranushi
Distributions NixOS:
Downloads 5040 total (138 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI





Build the executable to run unit tests


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees