Rust wrapper for ArrayFire 3.3
Major Updates
- API breaking change is that error handling mechanism of returning Result objects from functions has been replaced with a callback style error handling. By default, we provide an error handler that panics with an appropriate message when a given function call or operation fails. If the users chooses to, they can also implement the error handler by themselves and call
register_error_handler
that lets the user set the function that has to handle the error values returned by ArrayFire FFI calls. - enum
Aftype
has been refactored toDType
- CPU backend supports aysnchronous execution.
- Performance improvements to OpenCL BLAS and FFT functions.
- Improved performance of memory manager.
- Improvements to visualization functions.
- Improved sorted order for OpenCL devices.
New Functions and Features:
- Scatter plot added to graphics functionality
- New function
get_active_backend
that gives us the current active backend. - Improved Array Creation/Generation API
- Added
mem_info
macro to print GPU memory usage information to standard output. - Added
af_print
macro. - Added traits
clone
andpartialeq
to all enums. - Added traits
partialeq
anddebug
to typeDim4
. transform()
now supports perspective transformation matrices.- Type Array now has the implementations for the compound assignment operations traits. These traits are auto-enabled only if you are using Rust >= 1.8.0 since those traits are stabilized from that particular version.
- A few new member functions are added to object Array.
- new_strided that lets you created array from strided data.
- strides
- offset
- is_linear
- is_owner
- Following are the other miscellaneous functions added to the library
is_lapack_available
- Returns true if ArrayFire was compiled with LAPACK functions enabledis_imageio_available
- Returns true if ArrayFire was compiled with Freeimage enabled- New member function for Array Object,
get_device_id
, that gets the device id on which the array resides.
Following are the community contributors for this release.
Thank you guys!