All Versions
10
Latest Version
Avg Release Cycle
129 days
Latest Release
119 days ago

Changelog History

  • v3.6.2

    July 25, 2019

    v3.6.2

    ⚡️ Updates

    • ➕ Added missing docs for FloatingPoint trait members (6fe0371)
    • ⚡️ Update num crate to 0.2 (d0ad33d)

    Community Contributors

    Thank you @maxtnuk and @acm0055 for reporting the issue with num crate version 0.2.

  • v3.6.1

    June 18, 2019

    👌 Improvements, Fixes and New Examples

    👌 Improvements

    • Code changes to Rust 2018 Edition - #186
    • Reformatted code base using rustfmt tool - #186
    • 👉 Use self keyword where applicable instead of type names - #193 #194
    • 🖨 Updated macros af_print, join_many and eval to work with expressions instead of identifiers - #195

    🐛 Bug Fixes

    • ➕ Added additional search path suffix (lib64) for dl-loading libs - #186
    • 🛠 Fix comparison functions output type - #187
    • Internal traits are made public now to enable users write generic functions using arrayfire-rust's Array object - #188
    • ✂ Removed core from features - #190
    • Fixed documentation for nearest_neighbour & hamming_matcher - 8444609
    • Corrected OSX DYLD path instruction in README - 5d2ae2d

    🆕 New Examples

    • Conway's Game of Life - #179
    • Simple & Basic Example of fft Usage - #196

    Community Contributors

    Thank you.

    🚀 For more information about the performance and bug fixes made in the upstream, ArrayFire, please refer to the following two release notes.

  • v3.6.0

    September 27, 2018

    🆕 New Features & Improvements

    Functions

    💥 Breaking Changes

    Prior to v3.6.0 Array structure was a non-generic structure that didn't carry any information about the type of data being managed by the ArrayFire's memory manager. From now on, Array is generic over the type of data it is storing, thus has all the benefits of Rust checks. This may result in few code changes on the user's side. Hopefully they are minimal. Please don't hesitate to contact if you face any issue while moving to 3.6.0. We have made the necessary modifications to the examples provided in the crate to give you an idea of what the changes might look like. We will keep improving the API based on community feedback.

    👌 Improvements

    • Array is a generic and hence comes with all the checks rust carries out. Hopefully, this helps the users in avoiding type related issues.
    • All sub-modules are organized into domain based categories so that they can be compiled individually into a crate with only the required functionality. Core is the only mandatory module needed by any other module.

    🐛 Bug Fixes

    • 🛠 Fix Rust enum representations to match FFI ABI.
    • 🛠 Fix a couple of typos in the documentation.

    Community contributors

    Thank you.

    🚀 For more information about the performance and bug fixes made in the upstream, ArrayFire, please refer to the following two release notes.

  • v3.5.0

    June 28, 2017

    🆕 New Features & Improvements

    🐛 Bug Fixes

    💥 Breaking Changes

    🆕 New Features & Major Updates from ArrayFire Upstream

    • 👍 ArrayFire now supports threaded applications.
    • 📜 Sparse-Dense Arithmetic Operations.
    • Tuned OpenCL BLAS Backend.
    • ✂ Removed CUDA 6.5 Support
    • CUDA JIT now uses NVRTC instead of NVVM.
    • 🚀 ArrayFire Graphics now use Forge v1.0 stable release.

    🚀 For a detailed information on improvements, bug-fixes, new-examples and known-issues, please go through the ArrayFire v3.5.0 release notes.

  • v3.4.3

    April 10, 2017

    v3.4.3

    🛠 Fixes

    • 🔄 Changed shift parameter type from unsigned type to signed type to enable usage of negative offsets. Shift was incorrectly using unsigned offset parameter earlier.
    • 🛠 Fixed Rust String to CString conversion in image loading/saving functions.
    • 🛠 Fixes/Changes in the documentation for following functions:
      • Array::copy and Clone trait implementation for Array
      • Add note to std::ops traits implementation explicitly stating they carry out element wise operations.
      • Corrected documentation dot that it accepts only vector/scalar arrays.
    • ➕ Added more search locations for build.rs script to look for ArrayFire libraries.
  • v3.4.2

    February 26, 2017

    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.

  • v3.4.1

    January 11, 2017

    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.

  • v3.4.0

    September 15, 2016

    🔋 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:
      • Philox
      • Threefry
      • Mersenne Twister
    • 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.
  • v3.3.1

    June 08, 2016

    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.

  • v3.3.0

    May 20, 2016

    ⚡️ 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!