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_handlerthat lets the user set the function that has to handle the error values returned by ArrayFire FFI calls. - enum
Aftypehas 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_backendthat gives us the current active backend. - Improved Array Creation/Generation API
- Added
mem_infomacro to print GPU memory usage information to standard output. - Added
af_printmacro. - Added traits
cloneandpartialeqto all enums. - Added traits
partialeqanddebugto 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!