Arrayfire Rust Versions Save

Rust wrapper for ArrayFire

v3.8.0

3 years ago

New Functions and Features

  • APIs - #244
    • max_ragged
    • cov_v2
    • var_v2, var_all_v2
    • stdev_v2, stdev_all_v2
  • Features
    • Serialization support for ArrayFire Types - #250

Fixes

  • Fix return type trait bound on reduce all functions - #253

Improvements in Upstream

For information on improvements and bug fixes made in the upstream, ArrayFire, please refer to the following two release notes.

Thank you!

v3.7.2

3 years ago

v3.7.2

This fix release fixes a critical bug regarding thread safety of structure wrappers of ArrayFire objects. This bug was inadvertently introduced in the v3.7.1 release. Hence, we are going to yank that version from crates.io. Existing users of v3.7.1 will still be able to use that crate version although multi-threaded code might not work as expected. We strongly recommend upgrading to v3.7.2 for all users.

Improvements

Apart from fixing the critical bug we have also added a new tutorial to our book with short code examples on how to use ArrayFire in multi-threaded programs

Thank you! everyone.

v3.7.1

3 years ago

v3.7.1

Major Enhancements

Improvements

  • Added IndexMut trait implementation for Dim4 structure - #230
  • Added support to let users create Array from raw device pointers - #234
  • Added example for Array::host method - #220
  • Added functions (missing FFI wrappers) to handle Pinned memory allocation and free functions - #238
  • Added bit shift trait implementations for Array by unsigned integer types - #236
  • Marked C FFI handle getter from Structures as unsafe - #234
  • Improved documentation of batch parameter for arithmetic functions - #234
  • Improved reorder_v2 function documentation - #218
  • Refactored AfError Enum to use fmt::Display instead of error::Error - #224
  • Refactored whole array reduce functions to use appropriate output type - #242
  • Updated indexing tutorials in md-book to include macro based examples - #239
  • Added new macros dim4 and seq to easily enable creation of Seq and Dim4 objects - #230
  • Fixed crate qualifier for functions used inside macro - #230

Fixes

  • Fixed AfError Enum C representation to u32 for consistency - #234
  • Fixed axes computation in reorder_v2 function - #216
  • Fixed clippy warnings in data module tests - #218
  • Fixed documentation - #236 , #234 and #216
  • Fixed mutability of left-hand-size parameters of assignment operations(functions) - #224
  • Fixed pad FFI arguments in wrapper code - #247
  • Fixed set_row internal logic to handle unit vectors - #247
  • Fixed unused import warning in error handler test - commit

Improvements in Upstream

For information on improvements and bug fixes made in the upstream, ArrayFire, please refer to the following two release notes.

Community Contributors

Thank you! everyone.

v3.7.0

4 years ago

New Features & Improvements

New Features/Functions

Fixes and Improvements

  • Linked to md-book on gh-pages so that docs.rs works
  • Fixed product functions output Array type. For boolean/char inputs, the output of product operation is char and everywhere else same as AggregateType alias.

Improvements in Upstream

  • Added 16-bit floating point support for the following features/functions.
    • JIT
    • Printing of Array
    • Random Number Generation
    • Unary operators/functions
    • clamp
    • flat
    • matmul
    • reorder
    • select_scalar
    • transpose
  • Sparse array - Sparse array arithmetic support added in upstream.
  • Print stack trace on errors.

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

v3.6.3

4 years ago

v3.6.3

Updates

  • Fixed second argument of reorder API to be more clear - #203
  • Fixed unchecked string creation from ffi return value - #212
  • Implemented operator traits for Scalar and Array combinations - #208
  • Improved some tutorials - #204
  • Moved all tutorials into a mdbook - #204
  • Replaced deprecated uint8_t type with u8 - #209

Community Contributors

Thank you.

v3.6.2

4 years ago

v3.6.2

Updates

  • Added missing docs for FloatingPoint trait members (6fe03718e1872a7605e8d8af56e6d480a863c2c2)
  • Update num crate to 0.2 (d0ad33dba10f089c40fd14b76fa07901e08c04af)

Community Contributors

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

v3.6.1

4 years ago

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

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

5 years ago

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

6 years ago

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

7 years ago

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.