All Versions
14
Latest Version
Avg Release Cycle
123 days
Latest Release
976 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v3.4.1 Changes
January 11, 2017v3.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.
-
v3.4.0 Changes
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 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:
- 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()
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.
- ๐ Sparse Matrix and BLAS
-
v3.3.1 Changes
June 08, 2016v3.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 Changes
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 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!
- 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