Releases: arrayfire/arrayfire-rust
Releases · arrayfire/arrayfire-rust
Fix Release for v3.4
v3.4.2
Features
info_string
- Returns the library meta-information asstd::string::String
.- Added arithmetic(+, -, *, /, %, &, |, ^, <<, >>) traits implementations for all input combinations of
Array
and&Array
types. - Added a
batch
(boolean) parameter for logical operation functions - this breaks the API and please change your code where you call these functions accordingly. We are sorry for the inconvenience caused. get_revision
- Returns ArrayFire Revision (commit) information of the library as a string.device_info
- Returns a quadruple of Strings indicating the name, platform, toolkit name and computer version of the currently active device.
Fixes
Community contributors for this release
Thank you.
Fix Release for v3.4
v3.4.1
Features
Neg
trait implementation for object typeArray
- New set of following functions that lets the user create an array based on dimensions and a particular DType. Earlier to this addition, data generation functions deduced the target array type using generic type.
- constant_t
- range_t
- iota_t
- identity_t
Examples
- A new graphics example that illustrates acoustic wave propagation.
Fixes
- A much simplified string passing to C from Rust.
- Fix to Cell structure layout that is used in multiple view rendering.
- Use null::ptr() while passing empty strings to FFI functions instead of passing pointer to 0 length strings.
Community contributors for this release
Thank you.
Rust wrapper for ArrayFire 3.4.0
Features
- Sparse Matrix and BLAS
- Support for CSR and COO storage types.
- Sparse-Dense Matrix Multiplication and Matrix-Vector Multiplication as a
part of af::matmul() using CSR format for sparse. - Conversion to and from dense matrix to CSR and COO storage types.
- Faster JIT
- Performance improvements for CUDA and OpenCL JIT functions.
- Support for evaluating multiple outputs in a single kernel. See
eval!()
macro or functioneval_multiple()
.
- Random Number Generation
- A random engine object to handle setting the random engine type and seed for random number generator engines.
- Supported engine types are:
- Graphics
- Using Forge v0.9.0
- New Functions to render Vector Fields
Window::draw_vector_field2()
Window::draw_vector_field3()
Window::draw_vector_field()
- Multiple overlays on the same window are now possible.
- Overlays support for same type of object (2D/3D)
- Supported by
Window::draw_plot[2|3]()
,Window::draw_hist()
,Window::draw_surface()
,
Window::draw_vector_field[2|3]()
.
- New API to set axes limits for graphs.
- Draw calls do not automatically compute the limits. This is now under user control.
Window::set_axes_limits_[2d|3d|compute]()
can be used to set axes limits automatically or manually.Window::set_axes_titles()
can be used to set axes titles.
- New API for plot and scatter:
Window::draw_plot()
andWindow::draw_scatter()
now can handle 2D and 3D and determine appropriate order.draw_plot()
draw_plot2()
draw_plot3()
draw_scatter()
draw_scatter2()
draw_scatter3()
- New interpolation types to enum InteropType that apply to following functions
resize()
transform()
approx1()
approx2()
- Support for complex mathematical functions
- Add complex support for trignometry functions,
sqrt()
,log()
.
- Add complex support for trignometry functions,
- medfilt1(): Median filter for 1-d signals
- Generalized scan functions: scan_func_scan and scan_func_scanbykey
- Now supports inclusive or exclusive scans
- Supports binary operations defined by BinaryOp.
- Image Moments functions
- Add
get_size_of()
function fordtype
For other information regarding bug fixes, compile time improvements and known issues in ArrayFire upstream, please visit the
ArrayFire v3.4.0 Release Notes URL.
Broken/Replaced API
- The behaviour of
Window::draw_plot
has been to changed to handle generic plot rendering, 2D or 3D line plots. New functionsWindow::draw_plot[2|3]
are added for dimension specific plot rendering. - The behaviour of
Window::draw_scatter
has been to changed to handle generic plot rendering, 2D or 3D line plots. New functionsWindow::draw_scatter[2|3]
are added for dimension specific plot rendering.
Fix Release for v3.3
v3.3.1
Fixes
- Program crashes on release builds reported here has been fixed.
- Dependent crates(
libc
,num
,rustc-serialize
) versions have been bumped up.
Community contributors for this release
Thank you.
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!
Rust wrapper for ArrayFire 3.2
- Feature parity with ArrayFire 3.2 libs except any CUDA/OpenCL pinned memory related functions.
The wrapper has known issue with ArrayFire v3.2.0 libs due to a single missing symbol af_draw_surface
from the native library. Please use ArrayFire v3.2.1 fix release to fix the problem. Any version > 3.2.1 should also work fine.