Releases: arrayfire/arrayfire-rust
Rust wrapper for ArrayFire 3.8.0
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!
Fix Release for v3.7
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.
Fix Release for v3.7
v3.7.1
Major Enhancements
- We are pushing two additional crates in this release to help inter-operation with RAW CUDA/OpenCL code from rust.
- Couple of new macros to help improve the syntax for indexing and modifying portions of Arrays. Checkout out the new set of examples from indexing tutorial.
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
andDim4
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.
Rust wrapper for ArrayFire 3.7.0
New Features & Improvements
New Features/Functions
- Confidence Connected Components confidence_cc - #213
- Deconvolutions - #213
- Event - #213
- Reduction using keys - #213
- Neural network based convolution and gradient functions - #213
- Support for uniform ranges in approx1 and approx2 functions - #213
- Window::set_axes_label_formats - #213
- gemm - #213
- meanvar - #213
- pad - #213
- pinverse - #213
- rsqrt - #213
- set_cublas_mode - #213
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 asAggregateType
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.
Fix Release for v3.6
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.
Fix Release for v3.6
Fix Release for v3.6
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
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.
Rust wrapper for ArrayFire 3.6.0
New Features & Improvements
Functions
- New topk function.
- New anisotropic smoothing function, anisotropic_diffusion.
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.
Rust wrapper for ArrayFire 3.5.0
New Features & Improvements
- canny() edge detection operator.
- Can automatically calculate high threshold with AF_CANNY_THRESHOLD_AUTO_OTSU
- Supports both L1 and L2 Norms to calculate gradients.
- Array::get_allocated_bytes()
- Replace
rustc-serialize
development dependency withSedre
. This modification resulted in changing minimum required Rust version to be1.15.1
- Added
Array::new_empty
method - Added Lint to warn for missing documentation
- Changed Documentation Workflow to use external markdown files
- Add conditional compiliation attributes for modules
Bug Fixes
- Enforce Indexable objects to use lifetime of Indexer object
- Fix documentation of
Seq::end
method. - Changed return type of
Array::elements
method tousize
- Added
HasAfEnum
trait bound toArray::host
method - Update docs about type of Array returned by comparison ops
- Update load_image docs
- Add documentation for traits: Indexable, ConstGenerator and Convertable.
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.
Fix Release for v3.4
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
andClone
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.