Skip to content

Releases: arrayfire/arrayfire-rust

Fix Release for v3.4

26 Feb 07:34
Compare
Choose a tag to compare

v3.4.2

Features

  • info_string - Returns the library meta-information as std::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

11 Jan 06:41
Compare
Choose a tag to compare

v3.4.1

Features

  • Neg trait implementation for object type Array
  • 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

Community contributors for this release

Thank you.

Rust wrapper for ArrayFire 3.4.0

15 Sep 08:34
Compare
Choose a tag to compare

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 function eval_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() and Window::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().
  • 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 for dtype

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 functions Window::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 functions Window::draw_scatter[2|3] are added for dimension specific plot rendering.

Fix Release for v3.3

08 Jun 06:35
Compare
Choose a tag to compare

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

20 May 17:27
Compare
Choose a tag to compare

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 to DType
  • 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 and partialeq to all enums.
  • Added traits partialeq and debug to type Dim4.
  • 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.
  • Following are the other miscellaneous functions added to the library
    • is_lapack_available - Returns true if ArrayFire was compiled with LAPACK functions enabled
    • is_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

10 Dec 22:26
Compare
Choose a tag to compare
  • 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.