= Repa (REgular PArallel arrays) = Repa provides high performance, regular, multi-dimensional, shape polymorphic parallel arrays. All numeric data is stored unboxed. Functions written with the Repa combinators are automatically parallel provided you supply +RTS -Nwhatever on the command line when running the program. Repa means "turnip" in Russian. If you don't like turnips then this library probably isn't for you. == Download == Repa is split up into a few packages to help control dependencies. * [http://hackage.haskell.org/package/repa repa] * [http://hackage.haskell.org/package/repa-bytestring repa-bytestring] * [http://hackage.haskell.org/package/repa-io repa-io] * [http://hackage.haskell.org/package/repa-algorithms repa-algorithms] * [http://hackage.haskell.org/package/repa-examples repa-examples] If you want the lot then just install the examples, and this will pull down the rest. {{{ cabal install repa-examples }}} == Report a bug == If you have a bug or feature request, please add a [http://trac.haskell.org/repa/newticket new ticket].[[br]] Note that for spam prevention you must first [http://trac.haskell.org/repa/register register] (takes 10 sec) before you can add a ticket. You can also send email to `repa@ouroborus.net` == Examples == Here is the output of some of the examples included in the [http://hackage.haskell.org/package/repa-examples repa-examples] package: || fft2d-highpass || Laplace || || [[Image(WikiStart:lena-high2-thumb.jpg)]] || [[Image(WikiStart:pls-400x400-out-thumb.jpg)]] || || [wiki:Examples/Fft2dHighpass more info] || [wiki:Examples/Laplace more info] || == Demo == There is also an OSX demo that does edge detection on a video stream: * The [http://code.ouroborus.net/beholder/beholder-head/ source] should compile with XCode 3.2.1 and GHC 7.0.3, but you need to update and run the CONFIGURE.sh script to point it to your GHC install. * There are also prebuilt OSX i386 versions for [http://code.ouroborus.net/beholder/distro/beholder-N2.tgz two] [http://code.ouroborus.net/beholder/distro/beholder-N4.tgz four] and [http://code.ouroborus.net/beholder/distro/beholder-N6.tgz six] threads. These just have the corresponding +RTS -N# option baked in, you can set it in the main.m module. Some day I will make it so you can select this from the GUI. * If you don't have a Mac then you can watch a [http://code.ouroborus.net/beholder/video/Edge480.mov video] of me demonstrating it. * You can also run the edge detector over a single uncompressed .bmp file using the repa-canny program from the [http://hackage.haskell.org/package/repa-examples repa-examples] package.