(Pilfered from Rust's README, adapting...)
ArrayFire is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific computing code that is portable across CUDA, OpenCL and CPU devices. This project provides Lua bindings for the ArrayFire library. The wrapper is currently compliant with ArrayFire 3.2 API (and lower). If you find any bugs, please report them here.
You can find the most recent updated documentation TODO.
Currently, only Windows. So far, compiles with Lua 5.1.
You can install ArrayFire using one of the following two ways.
-
Build Lua, e.g. from above source
-
arrayfire depends on Lua (TODO: probably should add -lua suffix...)
-
(Windows) client depends on both of these
-
In these latter two, linkage required for appropriate ArrayFire library
TODO: 5.2, 5.3... LuaJIT source. Alternatives such as Ravi and Terra?
Preprocessor stuff:
For Lua: LUA_BUILD_AS_DLL; Windows-specific: _CRT_SECURE_NO_WARNINGS
For arrayfire: AFDLL
Not implemented: WANT_CUDA, WANT_OPENCL to include interface bindings (are there already alternatives?)
Setup:
Configuring package.path, package.cpath (ArrayFireWrapper/ArrayFireWrapper.cpp doing this, for Windows anyhow)
LuaJIT FFI looking for some variables (TODO: explain)
This is a work in progress and is not intended for production use.
The ArrayFire library is written by developers at ArrayFire LLC with (TODO: contributions)?
The developers at ArrayFire LLC have received partial financial support from several grants and institutions. Those that wish to receive public acknowledgement are listed below:
(Not sure if this was for Rust or ArrayFire... if the latter, add back in)