Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeModules/build_forge.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ENDIF()
ExternalProject_Add(
forge-ext
GIT_REPOSITORY https://github.com/arrayfire/forge.git
GIT_TAG 0892228ec28902200c7903a707ea4afb96203192
GIT_TAG 79fac0b7ed35c96f25c8006075ec934729cf9dc4
PREFIX "${prefix}"
INSTALL_DIR "${prefix}"
UPDATE_COMMAND ""
Expand Down
19 changes: 18 additions & 1 deletion docs/details/data.dox
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,24 @@ The distribution is centered around 0
\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_setseed setSeed

\brief Set the seed for random number generator


\ingroup data_mat
\ingroup arrayfire_func


\defgroup data_func_getseed getSeed

\brief Get the seed for random number generator


\ingroup data_mat
\ingroup arrayfire_func


\defgroup data_func_identity identity

Expand Down
2 changes: 1 addition & 1 deletion docs/details/image.dox
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@ unwrap(A, 3, 3, 3, 3, 2, 2) [9 9 1 1]
\defgroup image_func_wrap wrap
\ingroup image_mod_mat

Wrap takes an unwrapped image (see \ref unwrap) and converts it back to an image.
Wrap takes an unwrapped image (see \ref unwrap()) and converts it back to an image.

The inputs to this function should be the same as the inputs used to generate the unwrapped image.
@}
Expand Down
19 changes: 19 additions & 0 deletions docs/details/index.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
\addtogroup arrayfire_func
@{

\defgroup index_func_index index

\brief lookup values on array based on sequences

\ingroup index_mat



\defgroup index_func_assign assign

\brief Copy and write values in the locations specified by the sequences

\ingroup index_mat
@}
*/
2 changes: 1 addition & 1 deletion docs/details/lapack.dox
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ The arrayfire function only returns the non zero diagonal elements of **S**. To

\snippet test/svd_dense.cpp ex_svd_reg

When memory is a concern, and **A** is dispensible, \ref svdInPlace can be used
When memory is a concern, and **A** is dispensible, \ref svdInPlace() can be used


=======================================================================
Expand Down
4 changes: 2 additions & 2 deletions docs/details/util.dox
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ An file with 2 arrays would look like (representative)
> Array 2 Dims\n
> Array 2 Data\n

\ingroup stream_func
\ingroup dataio_mat
\ingroup arrayfire_func

=======================================================================
Expand Down Expand Up @@ -129,7 +129,7 @@ On each append, the array counter in the header is incremented and the new
array is written to the end of the file. This function does not check if the
tag is unique or not.

\ingroup stream_func
\ingroup dataio_mat
\ingroup arrayfire_func

=======================================================================
Expand Down
3 changes: 2 additions & 1 deletion docs/doxygen.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1978,7 +1978,8 @@ INCLUDE_FILE_PATTERNS =
PREDEFINED = __declspec(x)= \
__attribute__(x)= \
__cplusplus \
AF_DOC
AF_DOC \
AF_API_VERSION=${AF_API_VERSION_CURRENT}

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
6 changes: 2 additions & 4 deletions docs/pages/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,7 @@ af_print(pi);

## Citations and Acknowledgements

If you redistribute ArrayFire, please follow the terms established in
[the license](LICENSE).
If you redistribute ArrayFire, please follow the terms established in <a href="https://github.com/arrayfire/arrayfire/blob/master/LICENSE">the license</a>.
If you wish to cite ArrayFire in an academic publication, please use the
following reference:

Expand All @@ -156,5 +155,4 @@ year = {2015}
}
```

ArrayFire development is funded by ArrayFire LLC and several third parties,
please see the list of [acknowledgements](https://github.com/arrayfire/arrayfire/blob/master/ACKNOWLEDGEMENTS.md) for further details.
ArrayFire development is funded by ArrayFire LLC and several third parties, please see the list of <a href="https://github.com/arrayfire/arrayfire/blob/master/ACKNOWLEDGEMENTS.md">acknowledgements</a>.
74 changes: 44 additions & 30 deletions docs/pages/release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ v3.1.0
Function Additions
------------------
* Computer Vision Functions
* Nearest Neighbour with SAD, SSD and SHD distances (nearestNeighbour)
* Harris Corner Detector (harris)
* Susan Corner Detector (susan)
* Scale Invariant Feature Transform (SIFT)
* \ref nearestNeighbour() - Nearest Neighbour with SAD, SSD and SHD distances
* \ref harris() - Harris Corner Detector
* \ref susan() - Susan Corner Detector
* \ref sift() - Scale Invariant Feature Transform (SIFT)
* Method and apparatus for identifying scale invariant features"
"in an image and use of same for locating an object in an image,\" David"
"G. Lowe, US Patent 6,711,293 (March 23, 2004). Provisional application"
Expand All @@ -20,36 +20,50 @@ Function Additions
"Columbia.")
* SIFT is available for compiling but does not ship with ArrayFire
hosted installers/pre-built libraries
* Difference of Gaussians (dog)
* \ref dog() - Difference of Gaussians

* Image Processing Functions
* RGB <->YCbCr color space conversion (ycbcr2rgb, rgb2ycbcr)
* Wrap and Unwrap (wrap, unwrap)
* Summed Area Tables (sat)
* Load and Save images to/from memory (loadImageMem, saveImageMem)
* Add imageFormat (af_image_format) enum

* Utility
* Allow users to set print precision (print, af_print_array_gen)
* Stream arrays to binary files (saveArray, readArray)
* toString function returns the array and data as a string
* \ref ycbcr2rgb() and \ref rgb2ycbcr() - RGB <->YCbCr color space conversion
* \ref wrap() and \ref unwrap() Wrap and Unwrap
* \ref sat() - Summed Area Tables
* \ref loadImageMem() and \ref saveImageMem() - Load and Save images to/from memory
* \ref af_image_format - Added imageFormat (af_image_format) enum

* Array & Data Handling
* Copy (copy)
* Lock and Unlock (array::lock, array::unlock)
* Select and Replace (select, replace)
* \ref copy() - Copy
* array::lock() and array::unlock() - Lock and Unlock
* \ref select() and \ref replace() - Select and Replace
* Get array reference count (af_get_data_ref_count)

* Signal Processing
* \ref fftInPlace() - 1D in place FFT
* \ref fft2InPlace() - 2D in place FFT
* \ref fft3InPlace() - 3D in place FFT
* \ref ifftInPlace() - 1D in place Inverse FFT
* \ref ifft2InPlace() - 2D in place Inverse FFT
* \ref ifft3InPlace() - 3D in place Inverse FFT
* \ref fftR2C() - Real to complex FFT
* \ref fftC2R() - Complex to Real FFT

* Linear Algebra
* \ref svd() and \ref svdInPlace() - Singular Value Decomposition

* Other operations
* SVD Decomposition (svd)
* FFT
* Support for in place FFT
* Sigmoid (sigmoid)
* \ref sigmoid() - Sigmoid
* Sum (with option to replace NaN values)
* Product (with option to replace NaN values)

* Graphics
* Window resizing using Forge API (Window::setSize)
* Window::setSize() - Window resizing using Forge API

* Utility
* Allow users to set print precision (print, af_print_array_gen)
* \ref saveArray() and \ref readArray() - Stream arrays to binary files
* \ref toString() - toString function returns the array and data as a string

* CUDA specific functionality
* \ref getStream() - Returns default CUDA stream ArrayFire uses for the current device
* \ref getNativeId() - Returns native id of the CUDA device

Improvements
------------
Expand All @@ -60,18 +74,13 @@ Improvements
* 64-bit integer support
* For reductions, random, iota, range, diff1, diff2, accum, join, shift
and tile
* sum and product
* Support for NaN value substitution
* convolve
* Support for non-overlapping batched convolutions
* Complex Arrays
* Fix binary ops on complex inputs of mixed types
* Complex type support for exp
* FFT
* Support for r2c and c2r FFT
* Support for in place FFT
* tile
* is now a JIT function
* Performance improvements by using JIT when possible.
* Add AF_API_VERSION macro
* Allows disabling of API to maintain consistency with previous versions
* Other Performance Improvements
Expand Down Expand Up @@ -123,9 +132,14 @@ Distribution Changes

Known Issues
------------
* OpenBlas can cause issues with QR
* OpenBlas can cause issues with QR factorization in CPU backend
* FreeImage older than 3.10 can cause issues with loadImageMem and
saveImageMem
* OpenCL backend issues on OSX
* AMD GPUs not supported because of driver issues
* Intel CPUs not supported
* Linear algebra functions do not work on Intel GPUs.
* Stability and correctness issues with open source OpenCL implementations such as Beignet, GalliumCompute.

v3.0.2
==============
Expand Down
3 changes: 3 additions & 0 deletions include/af/arith.h
Original file line number Diff line number Diff line change
Expand Up @@ -243,12 +243,15 @@ namespace af
/// \param[in] lhs is real value(s)
/// \param[in] rhs is imaginary value(s)
/// \return complex array from inputs
/// \ingroup arith_func_cplx
AFAPI array complex(const array &lhs, const array &rhs);

/// \copydoc complex(const array&, const array&)
/// \ingroup arith_func_cplx
AFAPI array complex(const array &lhs, const double rhs);

/// \copydoc complex(const array&, const array&)
/// \ingroup arith_func_cplx
AFAPI array complex(const double lhs, const array &rhs);

/// C++ Interface for creating complex array from real array
Expand Down
11 changes: 9 additions & 2 deletions include/af/array.h
Original file line number Diff line number Diff line change
Expand Up @@ -802,8 +802,15 @@ namespace af

~array();

// Transpose and Conjugate Tranpose
/// \brief Get the transposed the array
///
/// \returns Transposed matrix
/// \ingroup method_mat
array T() const;
/// \brief Get the conjugate-transpose of the current array
///
/// \returns conjugate-transpose matrix
/// \ingroup method_mat
array H() const;

#define ASSIGN(OP) \
Expand Down Expand Up @@ -1093,7 +1100,7 @@ namespace af
BIN_OP(operator||)
/// @}

/// \ingroup numeric_func_mod
/// \ingroup arith_func_mod
/// @{
/// \brief Performs an modulo operation on two arrays or an array and a value.
///
Expand Down
34 changes: 34 additions & 0 deletions include/af/cuda.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,28 @@ extern "C" {
#endif

#if AF_API_VERSION >= 31
/**
Get the stream for the CUDA device with \p id in ArrayFire context

\param[out] stream CUDA Stream of device with \p id in ArrayFire context
\param[in] id ArrayFire device id
\returns \ref af_err error code

\ingroup cuda_mat
*/
AFAPI af_err afcu_get_stream(cudaStream_t* stream, int id);
#endif

#if AF_API_VERSION >= 31
/**
Get the native device id of the CUDA device with \p id in ArrayFire context

\param[out] nativeid native device id of the CUDA device with \p id in ArrayFire context
\param[in] id ArrayFire device id
\returns \ref af_err error code

\ingroup cuda_mat
*/
AFAPI af_err afcu_get_native_id(int* nativeid, int id);
#endif

Expand All @@ -34,6 +52,14 @@ namespace afcu
{

#if AF_API_VERSION >= 31
/**
Get the stream for the CUDA device with \p id in ArrayFire context

\param[in] id ArrayFire device id
\returns cuda stream used by CUDA device

\ingroup cuda_mat
*/
static inline cudaStream_t getStream(int id)
{
cudaStream_t retVal;
Expand All @@ -45,6 +71,14 @@ static inline cudaStream_t getStream(int id)
#endif

#if AF_API_VERSION >= 31
/**
Get the native device id of the CUDA device with \p id in ArrayFire context

\param[in] id ArrayFire device id
\returns cuda native id of device

\ingroup cuda_mat
*/
static inline int getNativeId(int id)
{
int retVal;
Expand Down
28 changes: 4 additions & 24 deletions include/af/data.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,26 +204,16 @@ namespace af
const dim_t d3, const dtype ty=f32);

/**
\defgroup data_func_setseed setSeed
Set the seed for the random number generator


\param[in] seed is a 64 bit unsigned integer

\ingroup data_mat
\ingroup arrayfire_func
\ingroup data_func_setseed
*/
AFAPI void setSeed(const uintl seed);

/**
\defgroup data_func_getseed getSeed
Get the seed for the random number generator


\returns seed which is a 64 bit unsigned integer

\ingroup data_mat
\ingroup arrayfire_func
\ingroup data_func_getseed
*/
AFAPI uintl getSeed();

Expand Down Expand Up @@ -654,26 +644,16 @@ extern "C" {
AFAPI af_err af_randn(af_array *out, const unsigned ndims, const dim_t * const dims, const af_dtype type);

/**
\defgroup data_func_setseed setSeed
Set the seed for the random number generator


\param[in] seed is a 64 bit unsigned integer

\ingroup data_mat
\ingroup arrayfire_func
\ingroup data_func_setseed
*/
AFAPI af_err af_set_seed(const uintl seed);

/**
\defgroup data_func_getseed getSeed
Get the seed for the random number generator


\param[out] seed which is a 64 bit unsigned integer

\ingroup data_mat
\ingroup arrayfire_func
\ingroup data_func_getseed
*/
AFAPI af_err af_get_seed(uintl *seed);

Expand Down
Loading