All Projects β†’ arrayfire β†’ arrayfire-haskell

arrayfire / arrayfire-haskell

Licence: BSD-3-Clause license
Haskell bindings to ArrayFire

Programming Languages

haskell
3896 projects
c
50402 projects - #5 most used programming language
Nix
1067 projects

Projects that are alternatives of or similar to arrayfire-haskell

saddle
SADDLE: Scala Data Library
Stars: ✭ 23 (-55.77%)
Mutual labels:  linear-algebra
kaliningraph
πŸ•ΈοΈ Graphs, finite fields and discrete dynamical systems in Kotlin
Stars: ✭ 62 (+19.23%)
Mutual labels:  linear-algebra
JOLI.jl
Julia Operators LIbrary
Stars: ✭ 14 (-73.08%)
Mutual labels:  linear-algebra
linearmap-family
Purely-functional, coordinate-free linear algebra
Stars: ✭ 22 (-57.69%)
Mutual labels:  linear-algebra
magicl
Matrix Algebra proGrams In Common Lisp.
Stars: ✭ 186 (+257.69%)
Mutual labels:  linear-algebra
BitLens
πŸ”Ž Have your bits and eat them too! A C++17 bit lens container for vector types.
Stars: ✭ 20 (-61.54%)
Mutual labels:  array
FUPRAL
Fortran OO implementation of a generic container using an unlimited polymorphic class. Implementation of a resizable container array and a double linked list.
Stars: ✭ 18 (-65.38%)
Mutual labels:  array
ml-compiled
Quick definitions and intuitive explanations around machine learning.
Stars: ✭ 29 (-44.23%)
Mutual labels:  linear-algebra
Symbolic-computation-Python
Symbolic computation using SymPy and various applications
Stars: ✭ 18 (-65.38%)
Mutual labels:  linear-algebra
eigenvalues
symmetric matrices algorithms to compute eigenvalue/eigenvector pairs
Stars: ✭ 26 (-50%)
Mutual labels:  linear-algebra
go-streams
Stream Collections for Go. Inspired in Java 8 Streams and .NET Linq
Stars: ✭ 127 (+144.23%)
Mutual labels:  array
pasvl
Array Validator (regular expressions for arrays, sort of)
Stars: ✭ 40 (-23.08%)
Mutual labels:  array
maths-for-deep-learning-ai
A open source book covering the foundational maths of deep learning and machine learning using TensorFlow
Stars: ✭ 35 (-32.69%)
Mutual labels:  linear-algebra
Learn-Machine-Learning-in-3-month
No description or website provided.
Stars: ✭ 35 (-32.69%)
Mutual labels:  linear-algebra
longest
Get the length of the longest item in an array.
Stars: ✭ 31 (-40.38%)
Mutual labels:  array
float
Single precision (float) matrices for R.
Stars: ✭ 41 (-21.15%)
Mutual labels:  linear-algebra
CuVec
Unifying Python/C++/CUDA memory: Python buffered array ↔️ `std::vector` ↔️ CUDA managed memory
Stars: ✭ 73 (+40.38%)
Mutual labels:  array
HashMapC
A tiny library for using easily HashMap, arraylist in the C.
Stars: ✭ 21 (-59.62%)
Mutual labels:  array
SLICOT-Reference
SLICOT - A Fortran subroutines library for systems and control
Stars: ✭ 19 (-63.46%)
Mutual labels:  linear-algebra
Data-Structures-Algorithms-Handbook
A series of important questions with solutions to crack the coding interview and ace it!
Stars: ✭ 30 (-42.31%)
Mutual labels:  array

ArrayFire is a general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.

arrayfire-haskell is a Haskell binding to ArrayFire.

Table of Contents

Installation

Install ArrayFire via the download page.

ArrayFire can also be fetched from nixpkgs master.

Haskell Installation

arrayfire can be installed w/ cabal, stack or nix.

cabal install arrayfire
stack install arrayfire

Also note, if you plan on using ArrayFire's visualization features, you must install fontconfig and glfw on OSX or Linux.

Documentation

Hacking

To hack on this library locally, complete the installation step above. We recommend installing the nix package manager to facilitate development.

After the above tools are installed, clone the source from Github.

git clone [email protected]:arrayfire/arrayfire-haskell.git
cd arrayfire-haskell

To build and run all tests in response to file changes

nix-shell --run test-runner

To perform interactive development w/ ghcid

nix-shell --run ghcid

To interactively evaluate code in the repl

nix-shell --run repl

To produce the haddocks and open them in a browser

nix-shell --run docs

Example

{-# LANGUAGE TypeApplications, ScopedTypeVariables #-}
module Main where

import qualified ArrayFire as A
import           Control.Exception (catch)

main :: IO ()
main = print newArray `catch` (\(e :: A.AFException) -> print e)
  where
    newArray = A.matrix @Double (2,2) [ [1..], [1..] ] * A.matrix @Double (2,2) [ [2..], [2..] ]

{-|

ArrayFire Array
[2 2 1 1]
    2.0000     6.0000
    2.0000     6.0000

-}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].