Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
88680b5
Additional operator* overloads for cfloat, cdouble
Jun 30, 2015
b3e65dc
Added mean<T> instantiations for int64 and uint64 in C++ API
Jun 30, 2015
034e905
Clean up mean helper functions & typo fix in af_mean_all_weighted
Jun 30, 2015
8cd7964
Additional unit tests for mean
Jun 30, 2015
d30462c
Updating assets commit tag
Jun 30, 2015
a736988
Merge branch 'devel' into stats_tests
Jul 7, 2015
7f422f5
Merge branch 'devel' into stats_tests
Jul 13, 2015
8b11400
Corrected path typo in mean tests
Jul 13, 2015
d026e5f
Merge branch 'devel' into stats_tests
Aug 4, 2015
66de62b
Merge branch 'devel' into stats_tests
Aug 10, 2015
857a6b4
Initial commit for heterogenous api for ArrayFire backends
Aug 25, 2015
b70c2c4
Windows specific changes to HAPI Symbol Manager
Aug 26, 2015
280af8d
Cleaned up function call in hapi functions
Aug 26, 2015
131de34
Heterogeneous API for arith and algorithm header functions
Aug 26, 2015
45d804b
Merge branch 'devel' into stats_tests
Aug 27, 2015
7a462eb
Merge branch 'devel' into heterogeneous_api
Aug 27, 2015
79c90ac
Updated copyright year in hapi source files
Aug 28, 2015
f9ebb38
backend-independent api wrapper for image & vision headers
Aug 28, 2015
ceabe02
backend-independent wrapper for arrayfire funtions
Aug 28, 2015
d12d141
Renamed cmake file hapi build-identifier
Aug 29, 2015
8d73db4
Cleaned up symbol manager class in HAPI wrapper
Aug 29, 2015
cc26908
Changed default backend enum to point to zero
Aug 31, 2015
7463601
Wrapper work around for af_make_seq function in hapi
Aug 31, 2015
8b94ac1
FEAT Added batch support for approx1 and approx2
shehzan10 Aug 31, 2015
c954729
Changing int to dim_t in approx kernels
shehzan10 Aug 31, 2015
a9cb8fe
set_backend and get_backend_count functions
Aug 31, 2015
871e114
Added any dimension batching and gfor support for approx1 and approx2
shehzan10 Aug 31, 2015
15c3cb0
Change condition structure in approx
shehzan10 Aug 31, 2015
53d327e
Moved HAPI examples into standard examples location
Aug 31, 2015
a83b095
Fixed typo in data, device & index wrapper source files
Aug 31, 2015
92d0ec1
Documentation for runtime backend selection functions
Aug 31, 2015
5db4b02
Merge pull request #979 from shehzan10/approx-batch
pavanky Sep 1, 2015
7b17460
Corrected BUILD_ALL cmake macro arguments
Sep 1, 2015
9f36a1d
fix: opencl backend alone build fails due to this missing header
Sep 1, 2015
be34055
Merge branch 'devel' into heterogeneous_api
Sep 2, 2015
6ca7247
Utility functions for generating af_index_t array objects
Sep 2, 2015
11fbdfb
Moved indexing utility functions to common location
Sep 2, 2015
15b0221
Added missing functions hapi wrapper
Sep 2, 2015
d6c13c2
Renaming src/api/hapi to src/api/unified
pavanky Sep 4, 2015
ec94996
Fixing CMakeFiles for unified backend
pavanky Sep 4, 2015
4cb64cb
Changes required to make unified library build the cpp bindings
pavanky Sep 4, 2015
e35b5ec
Changes to examples and test CMakeLists to build *_unified binaries
pavanky Sep 4, 2015
d042df9
changed unified api to load libraries using prioritized list of paths
Sep 7, 2015
7e46c54
Fixed CMake source bugs for windows platform in unified api sources
Sep 8, 2015
aa5b8ae
Removed AFAPI attribute declaration where no needed for func definitions
Sep 8, 2015
59484b0
Another cmake fix for windows platform in unified api project
Sep 8, 2015
859112e
Fixed cmake bug in examples also
Sep 8, 2015
a884c96
Added error display strings for unified api error codes
Sep 8, 2015
e737b52
use RAII to avoid freeimage bitmap resource leaks
vakopian Sep 11, 2015
a24a264
fix in unified api for af_save_image
Sep 11, 2015
6c0c1b8
Disabled Sort1000 & SortMed tests for sort_by_key and sort_index
Sep 11, 2015
63436aa
Merge pull request #977 from arrayfire/heterogeneous_api
pavanky Sep 11, 2015
11a6b07
Merge pull request #994 from vakopian/fi-leak-fix
Sep 11, 2015
2d75672
Merge branch 'arrayfire/master' into 'arrayfire/devel'
pavanky Sep 14, 2015
bd5ab15
Merge branch 'devel' into stats_tests
Sep 14, 2015
f26cc0d
typo fixes in mean unit test
Sep 14, 2015
cb54732
Merge pull request #1001 from arrayfire/hotfixes-3.1.2
pavanky Sep 15, 2015
1b52681
Fix sizes for approx batch tests
shehzan10 Sep 4, 2015
fc7630f
Use af_print_array_gen in unified basic example
shehzan10 Sep 14, 2015
4a0f164
Change unified backend priority. Add af/backend.h to arrayfire.h
shehzan10 Sep 18, 2015
c5f8b3c
Changed unified/basic.cpp to use C++ api
shehzan10 Sep 18, 2015
94e8dbf
Add unified backend details to using on pages and cmake.in file
shehzan10 Sep 18, 2015
4923e58
Documentation for unified backend
shehzan10 Sep 18, 2015
cb68a30
Reduced size of approx1 batched linear test
shehzan10 Sep 18, 2015
fe1f289
Merge pull request #1007 from shehzan10/unified_doc
pavanky Sep 18, 2015
4693a58
Change output of DOG to floating type
shehzan10 Sep 22, 2015
4439521
Increment version to 3.2.0
shehzan10 Sep 22, 2015
8d68ba5
Added AF_MSG macro
shehzan10 Sep 22, 2015
ebfe9e5
Added short (s16) and ushort (u16) types for CPU
shehzan10 Sep 22, 2015
7f3ff10
Added short, ushort support for CUDA backend
shehzan10 Sep 22, 2015
5e88e4a
Fix memory alloc for fast opencl
shehzan10 Sep 22, 2015
50582e1
Added short and ushort support for CUDA backend
shehzan10 Sep 22, 2015
4a2b3bc
Remove ushort redifinition from imageio
shehzan10 Sep 22, 2015
984525c
Change ushort to unsigned short in cpp
shehzan10 Sep 22, 2015
4286b86
Add typedef for ushort in tests
shehzan10 Sep 23, 2015
5b82ff1
Corrections in unified backend doc
shehzan10 Sep 23, 2015
f606a91
Add 16-bit enums to docs
shehzan10 Sep 23, 2015
14b0a4d
Merge pull request #1014 from shehzan10/16bit
pavanky Sep 23, 2015
31d2475
Merge branch 'master' into devel
shehzan10 Sep 26, 2015
4b478af
Merge branch 'devel' into stats_tests
Sep 28, 2015
01bd5d1
Corrected a typo in statistics functions documentation
Sep 28, 2015
2876c22
Fix dlopen string for OSX
shehzan10 Sep 28, 2015
c32937d
Documentation fixes
shehzan10 Sep 28, 2015
d7ce9fa
basic unit tests for `af::cov` and `af_cov`
Sep 28, 2015
dd0a803
unit tests for standard deviation function
Sep 29, 2015
d004ca8
unit tests for correlation coefficient function
Sep 29, 2015
6934df6
Enabled integral types to float/double reduction
Sep 29, 2015
c19058f
statistics functions fixes
Sep 29, 2015
064be97
Merge pull request #1031 from shehzan10/unified_fixes
Sep 29, 2015
645903e
Merge branch 'devel' into stats_tests
Sep 29, 2015
8dd257b
function to set active cuda device using native id
Sep 29, 2015
9d85fb5
function to set active opencl device using cl_device_d
Sep 29, 2015
ff0cbf8
Fixed template specilization for MSVC compiler in mean function
Sep 30, 2015
581ea3d
Added check to verify f64 support in covariance unit test
Sep 30, 2015
5c012ec
Specilization for Binary functor for cdouble type in cpu backend
Sep 30, 2015
63807f4
Merge pull request #1034 from 9prady9/set_native_device
shehzan10 Oct 1, 2015
f9f3e7d
Merge remote-tracking branch 'upstream/hotfixes-3.1.3' into devel
shehzan10 Oct 7, 2015
06a9cd6
Added GLOH function prototypes
Oct 7, 2015
037d2f7
Added C API for GLOH
Oct 7, 2015
746a40f
Added C++ API for GLOH
Oct 7, 2015
97dae2e
Added CPU implementation of GLOH
Oct 7, 2015
337fcec
Added CUDA implementation of GLOH
Oct 7, 2015
de6d401
Added OpenCL implementation of GLOH
Oct 7, 2015
5f18136
Added GLOH documentation
Oct 7, 2015
eaa14d5
Added GLOH unit tests
Oct 7, 2015
e7facc8
Merge branch 'devel' into gloh
Oct 7, 2015
653f789
Added missing 'AFAPI' to C++ API
Oct 7, 2015
ef53a67
Added unified API for GLOH
Oct 7, 2015
73bcb3b
Merge pull request #1052 from pentschev/gloh
shehzan10 Oct 8, 2015
0ca7aeb
Added CPU fallback for CUDA LU when CUDA older than 7
shehzan10 Oct 8, 2015
590da11
Added CPU fallback for CUDA QR when CUDA older than 7
shehzan10 Oct 8, 2015
37e0658
Added CPU fallback for CUDA QR when CUDA older than 7
shehzan10 Oct 8, 2015
876494d
Added CPU fallback for CUDA Solve when CUDA older than 7
shehzan10 Oct 8, 2015
adbd62b
Added CPU fallback for CUDA Inverse when CUDA older than 7
shehzan10 Oct 8, 2015
55fdae4
Added CPU fallback for CUDA SVD when CUDA older than 7
shehzan10 Oct 8, 2015
c166c8f
Call deviceGC before solve tests to minimize memory (tegra)
shehzan10 Oct 9, 2015
d3f29d5
Updated test data
Oct 9, 2015
6223be6
Default CPU fallback for CUDA LAPACK to OFF. Use CUDA_LAPACK_CPU_FALL…
shehzan10 Oct 10, 2015
0759aea
Merge pull request #1053 from shehzan10/cudalapack
pavanky Oct 12, 2015
9191492
Change condition when nonfree are removed from ctest
shehzan10 Oct 12, 2015
5abb983
Fix comparison warnings
shehzan10 Oct 12, 2015
66453c4
Call submodule update if submodules are missing
shehzan10 Oct 13, 2015
ee04f37
Changed std::sort to std::stable_sort in CPU SIFT
Oct 13, 2015
08e6b65
Updated SIFT/GLOH test thresholds
Oct 13, 2015
bb93ee4
Merge remote-tracking branch 'upstream/devel' into sift_fixes
Oct 13, 2015
9b47179
Merge pull request #7 from pentschev/sift_fixes
shehzan10 Oct 13, 2015
a67ea40
Updated SIFT/GLOH test thresholds
shehzan10 Oct 13, 2015
f8462bc
Merge pull request #1056 from shehzan10/devel
umar456 Oct 13, 2015
7fc3856
Fixed out-of-bounds memory access in CUDA/OpenCL SIFT
Oct 14, 2015
c607f62
Merge pull request #1062 from arrayfire/master
shehzan10 Oct 18, 2015
c0b9c80
Provide option for MKL use for CUDA lapack cpu fallback
shehzan10 Oct 18, 2015
2b4ed25
3D line plot feature
syurkevi Oct 16, 2015
52b63cf
Fix compilation fixes for VS2015
shehzan10 Oct 19, 2015
ded5320
Add return type docs for functions with varying return type
shehzan10 Oct 19, 2015
ca1e922
Fix warnings
shehzan10 Oct 19, 2015
c23e49b
Port shallow water eq example from 2.1
umar456 Oct 19, 2015
2a1d63d
3d surface rendering features
syurkevi Oct 19, 2015
380b7b0
Merge pull request #1065 from umar456/swe
pavanky Oct 20, 2015
5a938e2
Change clBLAS tag to the corrected commit
shehzan10 Oct 20, 2015
eb0f5b6
Add unified backend binaries to the OSX installer
umar456 Oct 20, 2015
a4733f5
Update installation documentation to match current methods.
bkloppenborg Oct 20, 2015
0c90cce
Added function to get available backends
shehzan10 Oct 20, 2015
ae5d7a5
Include special instructions for Windows.
bkloppenborg Oct 21, 2015
218d2b1
Optimizations to backends available computation
shehzan10 Oct 21, 2015
7437975
Merge pull request #1070 from bkloppenborg/devel
pavanky Oct 21, 2015
95de3c5
Merge pull request #1069 from umar456/devel
pavanky Oct 21, 2015
97bed15
Merge pull request #1064 from shehzan10/devel
pavanky Oct 21, 2015
35579b4
Merge branch 'surface_plot' of git://github.com/syurkevi/arrayfire in…
Oct 29, 2015
9436f10
Fix for cuda backend surface rendering function
Oct 29, 2015
33de00a
Merge branch 'syurkevi-surface_plot' into devel
Oct 29, 2015
8f54598
Replaced deviceSychronize calls with async versions
Oct 29, 2015
aa75b14
Optimization for JPEG, cleanup
shehzan10 Oct 29, 2015
551cd56
Moved common functions from imageio into header file
shehzan10 Oct 29, 2015
61226f3
FEAT add loadImageT and saveImageT. Provides loading in different types
shehzan10 Oct 29, 2015
662efff
Change loop in surface example
shehzan10 Oct 29, 2015
ff8369b
Fix enum value conversion in image
shehzan10 Oct 29, 2015
6a21345
Fix imageio load order in case of bitmap and not bitmap
shehzan10 Oct 30, 2015
86457a9
Add s16 and u16 types to image (graphics)
shehzan10 Oct 30, 2015
ec6d55d
Add s16 and u16 types to surface (graphics)
shehzan10 Oct 30, 2015
f3e7308
Add s16 and u16 types to histogram (graphics)
shehzan10 Oct 30, 2015
2f209d4
Add s16 and u16 types to plot (graphics)
shehzan10 Oct 30, 2015
4dd618c
Add s16 and u16 types to plot3 (graphics)
shehzan10 Oct 30, 2015
26399fc
Update forge build tag
shehzan10 Oct 30, 2015
f3dbb85
Add load_image_t and save_image_t to unified
shehzan10 Oct 30, 2015
ff4812c
Removed uncessary stream synchronizes in device pointer functions
Oct 30, 2015
35111ba
Doc for loadImageT and saveImageT
shehzan10 Oct 30, 2015
75f228b
Fixes for ushort on windows
shehzan10 Oct 30, 2015
61d0d54
Update test data
shehzan10 Oct 30, 2015
0b90a21
Style fixes
Nov 2, 2015
ab2e222
Merge pull request #1076 from 9prady9/cuda_memcpy_stream_fixes
umar456 Nov 2, 2015
805176e
Merge pull request #1077 from shehzan10/imageio
umar456 Nov 2, 2015
778b13f
Add intl/uintl to sort, sort_index, sort_by_key
shehzan10 Oct 21, 2015
d60ae28
use cl_long and cl_ulong in sort functions
shehzan10 Oct 22, 2015
c0cb5cd
Add intl/uintl to lookup
shehzan10 Oct 21, 2015
5ff4efc
Add intl/uintl to histogram and histeq
shehzan10 Oct 21, 2015
401f130
Add intl/uintl to convolve and fftconvolve
shehzan10 Oct 21, 2015
2e36523
Add intl/uintl to set functions
shehzan10 Oct 22, 2015
a479c25
Add intl/uintl to meanshift
shehzan10 Oct 21, 2015
944159c
Fix cuda shared memory instantiation for s64 and u64
shehzan10 Nov 3, 2015
53d77a7
Added homography function prototype and API
Nov 3, 2015
80869d9
Added CPU backend for homography
Nov 3, 2015
693397d
Added CUDA backend for homography
Nov 3, 2015
5ca352a
Added OpenCL backend for homography
Nov 3, 2015
008a6d9
Added homography documentation
Nov 3, 2015
b514aab
Added homography unit tests
Nov 3, 2015
e5e954e
Updated test data
Nov 3, 2015
804651a
Fix comparison warning
shehzan10 Nov 3, 2015
04153f9
Compilation fix for non-imageio builds
shehzan10 Nov 3, 2015
80d49eb
Merge remote-tracking branch 'upstream/devel' into homography
Nov 4, 2015
33d4ead
Fixed homography for Intel OpenCL
Nov 4, 2015
cb13531
Disabled homography LMedS unit tests
Nov 4, 2015
b3da23b
Split vision.h prototypes into multiple lines
Nov 4, 2015
452f51f
Add OpenGL requirements for Forge.
bkloppenborg Oct 21, 2015
ec4adea
Update documentation.
bkloppenborg Oct 21, 2015
c19e636
Add Ubuntu 14.04 installation quirk
bkloppenborg Nov 2, 2015
f819023
Update INSTALL.md
bkloppenborg Nov 2, 2015
e0dcaa6
Update CMake and Make examples.
bkloppenborg Nov 2, 2015
674b9df
Update section titles, helloworld exe.
bkloppenborg Nov 2, 2015
e3b7a1c
Add install page to layout
shehzan10 Nov 2, 2015
69b9ace
More documentation updates for tutorials
shehzan10 Nov 4, 2015
d7abcf2
Fixed __syncthreads() calls in homography
Nov 4, 2015
6601bef
API Change loadImageT -> loadImageNative
shehzan10 Nov 5, 2015
dc1bea3
Add support for c32/c64 for isInf, isNaN, iszero
shehzan10 Nov 5, 2015
4bcf103
Update links
shehzan10 Nov 5, 2015
888cf7c
Merge pull request #1089 from shehzan10/devel2
pavanky Nov 5, 2015
b9495c7
Merge pull request #1087 from shehzan10/devel
pavanky Nov 5, 2015
6975da8
Fix iota dims check
shehzan10 Nov 6, 2015
3e0abfa
Added AF_HOMOGRAPHY prefix to af_homography_t enum
Nov 6, 2015
7ad94e5
Fix af_device_array dims check
shehzan10 Nov 6, 2015
c55cae4
Fixed homography documentation
Nov 6, 2015
ca9ca6f
Typo AFF_ERR_NONFREE -> AF_ERR_NONFREE
shehzan10 Nov 6, 2015
15411eb
Add version guards for v3.2
shehzan10 Nov 6, 2015
9067eb8
Update link to example projects.
bkloppenborg Nov 6, 2015
ba5ca79
Add XCode instructions, assets.
bkloppenborg Nov 6, 2015
75891bb
Add link to ArrayFire project template repo.
bkloppenborg Nov 6, 2015
49a41d4
Add PPA for glfw3 on Ubuntu 14.04
bkloppenborg Nov 9, 2015
bd3e37d
Update INSTALL.md
bkloppenborg Nov 9, 2015
2a21ddc
Memory leak fix in SUSAN feature detector
Nov 10, 2015
7ad7ce0
Encode backend info into ArrayInfo::devId
shehzan10 Nov 10, 2015
efd5c02
Added array/backend checks to unified backend
shehzan10 Nov 10, 2015
da4d2cc
Add getBackendId function to get backend info of an array
shehzan10 Nov 10, 2015
e0233fc
Update unified api docs
shehzan10 Nov 10, 2015
7aa5911
CHECK_ARRAYS lets C-API return errors in case of arr = 0
shehzan10 Nov 10, 2015
42d3301
specilizations for abs math function for int & char
Nov 10, 2015
6e19054
Merge branch 'doc-updates' of https://github.com/bkloppenborg/arrayfi…
shehzan10 Nov 10, 2015
4242378
Merge branch 'devel' of https://github.com/shehzan10/arrayfire into u…
shehzan10 Nov 10, 2015
dd3f023
Indexing test for out of bounds access
Nov 10, 2015
cf0ab91
Added version checks for getBackendId
shehzan10 Nov 10, 2015
144a2db
Fix triangle test failures
shehzan10 Nov 10, 2015
0d8f647
Merge branch 'homography' of https://github.com/pentschev/arrayfire i…
shehzan10 Nov 10, 2015
68df69a
Merge pull request #1096 from 9prady9/susan_fixes
shehzan10 Nov 11, 2015
31761d2
Removed unnecessary __syncthreads() on homography
Nov 11, 2015
ddc179e
updates matrix manipulation documentation
syurkevi Nov 11, 2015
1fd4511
Removed unnecessary barrier from homography
Nov 11, 2015
1bf915a
Merge branch 'homography' of https://github.com/pentschev/arrayfire i…
shehzan10 Nov 11, 2015
463f044
Moved det to rank test file. Removed rank and det from missing test
shehzan10 Nov 11, 2015
1b8c231
Merge pull request #1097 from shehzan10/unified_checks
pavanky Nov 11, 2015
bbd3d8a
Merge pull request #1099 from syurkevi/maniparr_docupdate
pavanky Nov 11, 2015
ace69d2
Removed gfor unsupported functionality
shehzan10 Nov 11, 2015
70de4fe
Added new examples
shehzan10 Nov 11, 2015
1830993
Added release notes for 3.2.0
shehzan10 Nov 11, 2015
140c340
Update forge tag for af3.2.0
shehzan10 Nov 11, 2015
a4ffcf5
Add Tegra X1 badges to readme
shehzan10 Nov 11, 2015
8bbb6eb
Merge pull request #1100 from shehzan10/docs-3.2
pavanky Nov 12, 2015
2a45792
Transpose build table in readme
shehzan10 Nov 12, 2015
46a45b5
Added groups for graphics func documentation
shehzan10 Nov 12, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 19 additions & 11 deletions ArrayFireConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
#
# ----------------------------------------------------------------------------
#
# ArrayFire_CPU_FOUND - True of the ArrayFire CPU library has been found.
# ArrayFire_CPU_LIBRARIES - Location of ArrayFire's CPU library, if found
# ArrayFire_CUDA_FOUND - True of the ArrayFire CUDA library has been found.
# ArrayFire_CUDA_LIBRARIES - Location of ArrayFire's CUDA library, if found
# ArrayFire_OpenCL_FOUND - True of the ArrayFire OpenCL library has been found.
# ArrayFire_OpenCL_LIBRARIES - Location of ArrayFire's OpenCL library, if found
# ArrayFire_CPU_FOUND - True of the ArrayFire CPU library has been found.
# ArrayFire_CPU_LIBRARIES - Location of ArrayFire's CPU library, if found
# ArrayFire_CUDA_FOUND - True of the ArrayFire CUDA library has been found.
# ArrayFire_CUDA_LIBRARIES - Location of ArrayFire's CUDA library, if found
# ArrayFire_OpenCL_FOUND - True of the ArrayFire OpenCL library has been found.
# ArrayFire_OpenCL_LIBRARIES - Location of ArrayFire's OpenCL library, if found
# ArrayFire_Unified_FOUND - True of the ArrayFire Unified library has been found.
# ArrayFire_Unified_LIBRARIES - Location of ArrayFire's Unified library, if found
#
#=============================================================================
# Copyright (c) 2015, ArrayFire
Expand Down Expand Up @@ -48,17 +50,23 @@

get_filename_component(ArrayFire_INCLUDE_DIRS "@INCLUDE_DIR@" ABSOLUTE)

# keep in the backends in the slowest to fastest order
foreach(backend CPU OpenCL CUDA)
string(TOLOWER "${backend}" lowerbackend)
macro(find_backend backend libname)
set(targetFile ${CMAKE_CURRENT_LIST_DIR}/@BACKEND_DIR@/ArrayFire${backend}.cmake)
if(EXISTS ${targetFile})
include(${targetFile})
set(ArrayFire_${backend}_FOUND ON)
set(ArrayFire_${backend}_LIBRARIES af${lowerbackend})
set(ArrayFire_${backend}_LIBRARIES af${libname})
# set the default backend
set(ArrayFire_LIBRARIES af${lowerbackend})
set(ArrayFire_LIBRARIES af${libname})
else()
set(ArrayFire_${backend}_FOUND OFF)
endif()
endmacro()

# keep in the backends in the slowest to fastest order
foreach(backend CPU OpenCL CUDA)
string(TOLOWER "${backend}" lowerbackend)
find_backend("${backend}" "${lowerbackend}")
endforeach()

find_backend("Unified" "")
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ OPTION(BUILD_SIFT "Build ArrayFire nonfree algorithms" OFF)

MARK_AS_ADVANCED(BUILD_SIFT)

OPTION(BUILD_UNIFIED "Build Backend-Independent ArrayFire API" ON)

# Set a default build type if none was specified
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
Expand Down Expand Up @@ -163,6 +165,11 @@ IF(${BUILD_OPENCL})
ADD_SUBDIRECTORY(src/backend/opencl)
ENDIF()

IF(${BUILD_UNIFIED})
ADD_DEFINITIONS(-DAF_UNIFIED)
ADD_SUBDIRECTORY(src/api/unified)
ENDIF()

IF(${BUILD_DOCS})
ADD_SUBDIRECTORY(docs)
ENDIF()
Expand Down
4 changes: 2 additions & 2 deletions CMakeModules/Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# Make a version file that includes the ArrayFire version and git revision
#
SET(AF_VERSION_MAJOR "3")
SET(AF_VERSION_MINOR "1")
SET(AF_VERSION_PATCH "3")
SET(AF_VERSION_MINOR "2")
SET(AF_VERSION_PATCH "0")

SET(AF_VERSION "${AF_VERSION_MAJOR}.${AF_VERSION_MINOR}.${AF_VERSION_PATCH}")
SET(AF_API_VERSION_CURRENT ${AF_VERSION_MAJOR}${AF_VERSION_MINOR})
Expand Down
2 changes: 1 addition & 1 deletion CMakeModules/build_clBLAS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENDIF()
ExternalProject_Add(
clBLAS-external
GIT_REPOSITORY https://github.com/arrayfire/clBLAS.git
GIT_TAG 47662a6ac1186c756508109d7fef8827efab4504
GIT_TAG 102c832825e8e4d60ad73ca97e95668463294068
PREFIX "${prefix}"
INSTALL_DIR "${prefix}"
UPDATE_COMMAND ""
Expand Down
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 af3.1.2
GIT_TAG af3.2.0
PREFIX "${prefix}"
INSTALL_DIR "${prefix}"
UPDATE_COMMAND ""
Expand Down
16 changes: 12 additions & 4 deletions CMakeModules/osx_install/OSXInstaller.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ PKG_BUILD( PKG_NAME ArrayFireCPU
SCRIPT_DIR ${OSX_INSTALL_DIR}/cpu_scripts
IDENTIFIER com.arrayfire.pkg.arrayfire.cpu.lib
PATH_TO_FILES package/lib
FILTERS opencl cuda)
FILTERS opencl cuda unified)

PKG_BUILD( PKG_NAME ArrayFireCUDA
DEPENDS afcuda
Expand All @@ -85,15 +85,23 @@ PKG_BUILD( PKG_NAME ArrayFireCUDA
SCRIPT_DIR ${OSX_INSTALL_DIR}/cuda_scripts
IDENTIFIER com.arrayfire.pkg.arrayfire.cuda.lib
PATH_TO_FILES package/lib
FILTERS cpu opencl)
FILTERS cpu opencl unified)

PKG_BUILD( PKG_NAME ArrayFireOPENCL
DEPENDS afopencl
TARGETS opencl_package
INSTALL_LOCATION /usr/local/lib
IDENTIFIER com.arrayfire.pkg.arrayfire.opencl.lib
PATH_TO_FILES package/lib
FILTERS cpu cuda)
FILTERS cpu cuda unified)

PKG_BUILD( PKG_NAME ArrayFireUNIFIED
DEPENDS af
TARGETS unified_package
INSTALL_LOCATION /usr/local/lib
IDENTIFIER com.arrayfire.pkg.arrayfire.unified.lib
PATH_TO_FILES package/lib
FILTERS cpu cuda opencl)

PKG_BUILD( PKG_NAME ArrayFireHeaders
TARGETS header_package
Expand All @@ -107,5 +115,5 @@ PKG_BUILD( PKG_NAME ArrayFireExtra
IDENTIFIER com.arrayfire.pkg.arrayfire.extra
PATH_TO_FILES package/share)

PRODUCT_BUILD(DEPENDS ${cpu_package} ${cuda_package} ${opencl_package} ${header_package} ${extra_package})
PRODUCT_BUILD(DEPENDS ${cpu_package} ${cuda_package} ${opencl_package} ${unified_package} ${header_package} ${extra_package})

35 changes: 29 additions & 6 deletions CMakeModules/osx_install/distribution.dist
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,55 @@
<welcome file="${WELCOME_FILE_OUT}" />
<readme file="${README_FILE_OUT}" mime-type="test/html" />
<license file="${CMAKE_MODULE_PATH}/../LICENSE" mime-type="test/plain" />
<script>
function CheckBackendSelected() {
return choices.opencl_lib.selected ||
choices.cuda_lib.selected ||
choices.cpu_lib.selected;
}
</script>

<pkg-ref id="com.arrayfire.arrayfire.cpu.lib" version="${AF_VERSION}" onConclusion="none">ArrayFireCPU.pkg</pkg-ref>
<pkg-ref id="com.arrayfire.arrayfire.cuda.lib" version="${AF_VERSION}" onConclusion="none">ArrayFireCUDA.pkg</pkg-ref>
<pkg-ref id="com.arrayfire.arrayfire.opencl.lib" version="${AF_VERSION}" onConclusion="none">ArrayFireOPENCL.pkg</pkg-ref>
<pkg-ref id="com.arrayfire.arrayfire.unified.lib" version="${AF_VERSION}" onConclusion="none">ArrayFireUNIFIED.pkg</pkg-ref>
<pkg-ref id="com.arrayfire.arrayfire.inc" version="${AF_VERSION}" onConclusion="none">ArrayFireHeaders.pkg</pkg-ref>
<pkg-ref id="com.arrayfire.arrayfire.extra" version="${AF_VERSION}" onConclusion="none">ArrayFireExtra.pkg</pkg-ref>
<options customize="always" require-scripts="false"/>
<choices-outline>
<line choice="libs">
<line choice="com.arrayfire.arrayfire.cpu.lib"/>
<line choice="com.arrayfire.arrayfire.cuda.lib"/>
<line choice="com.arrayfire.arrayfire.opencl.lib"/>
<line choice="cpu_lib"/>
<line choice="cuda_lib"/>
<line choice="opencl_lib"/>
<line choice="com.arrayfire.arrayfire.unified.lib"/>
</line>
<line choice="com.arrayfire.arrayfire.inc"/>
<line choice="com.arrayfire.arrayfire.extra"/>
</choices-outline>
<choice id="libs" title="ArrayFire Libraries" visible="true" />
<choice title="CPU Libraries" description="CPU Libraries" id="com.arrayfire.arrayfire.cpu.lib" visible="true" enabled="true">
<choice title="CPU Libraries"
description="ArrayFire targeting CPUs."
id="cpu_lib" visible="true" enabled="true">
<pkg-ref id="com.arrayfire.arrayfire.cpu.lib"/>
</choice>
<choice title="CUDA Libraries" description="CUDA Libraries" id="com.arrayfire.arrayfire.cuda.lib" visible="true" enabled="true">
<choice title="CUDA Libraries"
description="ArrayFire which targets the CUDA platform. This platform allows you to to take advantage of the CUDA enabled GPUs to run ArrayFire code."
id="cuda_lib" visible="true" enabled="true">
<pkg-ref id="com.arrayfire.arrayfire.cuda.lib"/>
</choice>
<choice title="OpenCL Libraries" description="OpenCL Libraries" id="com.arrayfire.arrayfire.opencl.lib" visible="true" enabled="true">
<choice title="OpenCL Libraries"
description="ArrayFire which targets the OpenCL platform. This platform allows you to use the ArrayFire library which targets OpenCL devices. NOTE: Currently ArrayFire does not support OpenCL for the Intel CPU on Apple."
id="opencl_lib" visible="true" enabled="true">
<pkg-ref id="com.arrayfire.arrayfire.opencl.lib"/>
</choice>
<choice title="Unified Library"
description="This library will allow you to choose the platform(cpu, cuda, opencl) at runtime. NOTE: This option requires the other platforms to work properly"
id="com.arrayfire.arrayfire.unified.lib"
selected="CheckBackendSelected()"
visible="true"
enabled="CheckBackendSelected()">
<pkg-ref id="com.arrayfire.arrayfire.unified.lib"/>
</choice>
<choice title="ArrayFire Headers" description="ArrayFire Headers" id="com.arrayfire.arrayfire.inc" visible="true" enabled="true">
<pkg-ref id="com.arrayfire.arrayfire.inc"/>
</choice>
Expand Down
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,10 @@ ArrayFire binary installers can be downloaded at the [ArrayFire Downloads](http:
* Email: <mailto:technical@arrayfire.com>

### Build Status
| | Build | Tests |
|-----------------|-----------------|-----------------|
| Linux x86 | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux/devel)](http://ci.arrayfire.org/job/arrayfire-linux/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux-test/devel)](http://ci.arrayfire.org/job/arrayfire-linux-test/branch/devel/) |
| Linux Tegra | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegra/devel)](http://ci.arrayfire.org/job/arrayfire-tegra/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegra-test/devel)](http://ci.arrayfire.org/job/arrayfire-tegra-test/branch/devel/) |
| Windows | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows/devel)](http://ci.arrayfire.org/job/arrayfire-windows/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows-test/devel)](http://ci.arrayfire.org/job/arrayfire-windows-test/branch/devel/) |
| OSX | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx/devel)](http://ci.arrayfire.org/job/arrayfire-osx/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx-test/devel)](http://ci.arrayfire.org/job/arrayfire-osx-test/branch/devel/) |
| | Linux x86 | Linux armv7l | Linux aarch64 | Windows | OSX |
|:-------:|:---------:|:------------:|:-------------:|:-------:|:---:|
| Build | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux/devel)](http://ci.arrayfire.org/job/arrayfire-linux/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegrak1/devel)](http://ci.arrayfire.org/job/arrayfire-tegrak1/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegrax1/devel)](http://ci.arrayfire.org/job/arrayfire-tegrax1/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows/devel)](http://ci.arrayfire.org/job/arrayfire-windows/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx/devel)](http://ci.arrayfire.org/job/arrayfire-osx/branch/devel/) |
| Test | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux-test/devel)](http://ci.arrayfire.org/job/arrayfire-linux-test/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegrak1-test/devel)](http://ci.arrayfire.org/job/arrayfire-tegrak1-test/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegrax1-test/devel)](http://ci.arrayfire.org/job/arrayfire-tegrax1-test/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows-test/devel)](http://ci.arrayfire.org/job/arrayfire-windows-test/branch/devel/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx-test/devel)](http://ci.arrayfire.org/job/arrayfire-osx-test/branch/devel/) |

Test coverage: [![Coverage Status](https://coveralls.io/repos/arrayfire/arrayfire/badge.svg?branch=HEAD)](https://coveralls.io/r/arrayfire/arrayfire?branch=HEAD)

Expand Down
38 changes: 37 additions & 1 deletion docs/details/algorithm.dox
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ This function performs the operation across all batches present in the input sim

Find the sum of values in the input

This table defines the return value types for the corresponding input types

Input Type | Output Type
--------------------|---------------------
f32, f64, c32, c64 | same as input
s32, u32, s64, u64 | same as input
s16 | s32
u16, u8, b8 | u32

\copydoc batch_detail_algo


Expand All @@ -25,6 +34,15 @@ Find the sum of values in the input

Find the product of values in the input

This table defines the return value types for the corresponding input types

Input Type | Output Type
--------------------|---------------------
f32, f64, c32, c64 | same as input
s32, u32, s64, u64 | same as input
s16 | s32
u16, u8, b8 | u32

\copydoc batch_detail_algo


Expand Down Expand Up @@ -55,6 +73,8 @@ Find the maximum values and their locations

Find if of all of the values in input are true

Return type is b8 for all input types

\copydoc batch_detail_algo


Expand All @@ -65,6 +85,8 @@ Find if of all of the values in input are true

Find if of any of the values in input are true

Return type is b8 for all input types

\copydoc batch_detail_algo


Expand All @@ -75,6 +97,8 @@ Find if of any of the values in input are true

Count the number of non-zero elements in the input

Return type is u32 for all input types

\copydoc batch_detail_algo


Expand All @@ -85,6 +109,15 @@ Count the number of non-zero elements in the input

Perform exclusive sum along specified dimension

This table defines the return value types for the corresponding input types

Input Type | Output Type
--------------------|---------------------
f32, f64, c32, c64 | same as input
s32, u32, s64, u64 | same as input
s16 | s32
u16, u8, b8 | u32

\copydoc batch_detail_algo


Expand All @@ -95,6 +128,8 @@ Perform exclusive sum along specified dimension

Locate the indices of non-zero elements

Return type is u32 for all input types

The locations are provided by flattening the input into a linear array.


Expand Down Expand Up @@ -135,7 +170,8 @@ Sort an multi dimensional array

Sort input arrays get the sorted indices

Sort a multi dimensional array and return sorted indices
Sort a multi dimensional array and return sorted indices. Index array is of
type u32.



Expand Down
66 changes: 66 additions & 0 deletions docs/details/backend.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/**
\addtogroup arrayfire_func
@{

\defgroup unified_func_setbackend setBackend

\brief Set the current backend when using Unified backend

This is a noop when using one of CPU, CUDA, or OpenCL backend.

However, when using on of those 3 but trying to set it to a different backend
will return in an exception.

\ingroup unified_func
\ingroup arrayfire_func

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

\defgroup unified_func_getbackendcount getBackendCount

\brief Get the number of backends whose libraries were successfully loaded.

This will be between 0-3. 0 Being no backends were loaded and 3 being all
backends loaded successfully.

\ingroup unified_func
\ingroup arrayfire_func

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

\defgroup unified_func_getavailbackends getAvailableBackends

\brief Returns an integer indicating the backends loaded successfully.

The number returned denotes the backends available according to the table:

Return Value | Backends Available
-------------|-----------------------
0 | None
1 | CPU
2 | CUDA
3 | CPU and CUDA
4 | OpenCL
5 | CPU and OpenCL
6 | CUDA and OpenCL
7 | CPU, CUDA and OpenCL

\ingroup unified_func
\ingroup arrayfire_func

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

\defgroup unified_func_getbackendid getBackendId

\brief Get's the backend enum for an array

This will return one of the values from the \ref af_backend enum.
The return value specifies which backend the array was created on.

\ingroup unified_func
\ingroup arrayfire_func

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

@}
*/
3 changes: 3 additions & 0 deletions docs/details/image.dox
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,9 @@ distance as well as the color distance.
The bilateral filter requires the size of the filter (in pixels) and the upper
bound on color values, N, where pixel values range from 0–N inclusively.

The return type of the array is f64 for f64 input, f32 for all other input
types.

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

\defgroup image_func_erode erode
Expand Down
Loading