Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
371 commits
Select commit Hold shift + click to select a range
9cbc641
Add test for index copy assignment.
FilipeMaia Jul 8, 2015
4d23d41
Add move constructor and move assignment op
FilipeMaia Jul 8, 2015
12e4f9d
Add SVD API
klemmster Jul 4, 2015
369013c
Add SVD Cuda backend
klemmster Jul 4, 2015
2969c73
Add SVD CPU Backend
klemmster Jul 4, 2015
82d039f
Add SVD OpenCL Stump
klemmster Jul 4, 2015
864c51d
Add SVD example
klemmster Jul 4, 2015
a5efdea
BUGFIX: Check for NULL values when allocating memory on CPU backend
pavanky Jul 10, 2015
981cb4a
Ensure CUDA and OpenCL return proper errors when out of memory
pavanky Jul 10, 2015
171d8dd
TEST: Adding test to trash the memory manager and see if it recovers
pavanky Jul 10, 2015
d22c0bb
FEAT,TEST: Adding sigmoid function for all backends
pavanky Jul 10, 2015
bc2b8f5
Adding the option to remove tests from ctest
pavanky Jul 10, 2015
4cc3a9b
Merge pull request #895 from FilipeMaia/devel
umar456 Jul 10, 2015
1a2b405
Merge pull request #897 from pavanky/minor_changes
umar456 Jul 10, 2015
8253205
BUGFIX/TEST: Fixing bug in rank. Added appropriate tests
pavanky Jul 13, 2015
e7d75be
BUGFIX/TEST: Fixing not for C API. Added relevant tests.
pavanky Jul 13, 2015
1bde871
BUGFIX: Fixing a bug in randn for CPU backend
pavanky Jul 13, 2015
05509c9
BUGFIX: Fixing setSeed for randu
pavanky Jul 13, 2015
b8cfd77
TEST: Updating and fixing the randu/randn tests
pavanky Jul 13, 2015
71da964
Merge pull request #882 from klemmster/cusolver_svd
pavanky Jul 13, 2015
bd39083
TEST: Updating random tests to properly reset seeds
pavanky Jul 13, 2015
cd78911
TEST: Fixing out of bounds access in fft tests
pavanky Jul 13, 2015
3fb199d
BUGFIX in randn for apple systems
pavanky Jul 13, 2015
214acf1
Renaming rank test to rank_dense
pavanky Jul 13, 2015
ed3a830
Merge pull request #906 from pavanky/bugfixes
Jul 13, 2015
89d7e65
Automatically enable and build CUDA and OpenCL backends by default.
bkloppenborg Jul 14, 2015
c69ca0a
Added 64-bit integer type support for functions
shehzan10 Jul 14, 2015
426dc0b
Added print errors to documentation
shehzan10 Jul 14, 2015
5ad9ada
Suppress FIND output for non-essential libraries.
bkloppenborg Jul 14, 2015
a86171a
Merge pull request #910 from shehzan10/devel
pavanky Jul 14, 2015
88a2c26
Merge pull request #909 from bkloppenborg/autobuild-backends
pavanky Jul 14, 2015
5df0554
BUGFIX: Fixed issues with mixed real and complex types
pavanky Jul 15, 2015
9564317
Fixing the checks for skew
pavanky Jul 15, 2015
fb24097
BUGFIX: conjg no longer errors out for real inputs
pavanky Jul 16, 2015
d4cd847
af_scale now checks for default parameters properly
pavanky Jul 16, 2015
3b19720
Merge pull request #915 from pavanky/fixes
shehzan10 Jul 16, 2015
16d8e27
Extended support for interleaved convolution
pavanky Jul 20, 2015
4c34bf2
Made cpu::Array constructor consistent with CUDA & OpenCL
Jul 21, 2015
3499b98
Fixed filenames for the files used in computer vision examples
Jul 21, 2015
de9ba74
SUSAN Corner Detector
Jul 21, 2015
1a8892b
Added error checks non-array parameters of susan API
Jul 23, 2015
8aaf299
Updating the COPYRIGHT.md document
pavanky Jul 24, 2015
2c3e0d8
CUDA backend for SUSAN dectector
Jul 23, 2015
ddd704b
Updating the language in COPYRIGHT document
pavanky Jul 24, 2015
e57ed91
OpenCL backend for SUSAN dectector
Jul 24, 2015
220f027
fixes: typos; specific to windows; additional unit test
Jul 24, 2015
307040b
Corrected memory allocation bug in cpu backend for orb, where
Jul 24, 2015
2f5c672
Removed uncessary corner sorting for SUSAN
Jul 28, 2015
f3df808
matchTemplate example
Jul 29, 2015
aca80f8
matchTemplate fix in opencl to support indexed template images
Jul 29, 2015
d322941
Removed uncessary copy in matchTemplate example
Jul 29, 2015
314bc9e
Added heat colormap to display disparity values for matching
Jul 29, 2015
51d441c
Merge pull request #922 from 9prady9/match_template_example
pavanky Jul 29, 2015
e9535b9
Changed CUDA/OpenCL kernels to use zero leading dimension
Jul 29, 2015
57ffa26
typo fix in cuda SUSAN kernel
Jul 29, 2015
26df8b3
SUSAN CUDA/OpenCL: Added bound checks to load shared/local Memory
Jul 30, 2015
a9fd10c
Replaced static shared memory with dynamic in SUSAN CUDA kernel
Jul 31, 2015
3d405b9
Merge pull request #921 from 9prady9/susan
pavanky Jul 31, 2015
3cedee7
Added new example: heston_model in financial
michaelnowotny Jul 24, 2015
4358056
Moving af_array info gathering functions from util.h to array.h
pavanky Jul 30, 2015
3ede60b
Changed default cuda stream to be non-zero
Aug 4, 2015
f816f41
Making fft_inplace consistent across all backends
pavanky Aug 4, 2015
61968d6
FEAT / TEST: Adding support for inplace fft
pavanky Aug 4, 2015
1363441
Wrapped cuda kernel launches with CUDA_LAUNCH macro
Aug 4, 2015
822fd5a
Moving general fft implementation to src/api/c
pavanky Aug 4, 2015
61ea091
FEAT: Summed Area Tables (sat, af_sat) a.k.a integral images
Aug 4, 2015
d46b15b
Added stream parameter for upstream{thrust, cufft, cublas} calls
Aug 5, 2015
8f250e7
Added check for skipping double type test when not supported
Aug 5, 2015
d8760f6
Added uintl, intl support for jit operations in cuda backend
Aug 5, 2015
60c2be9
thrust fixes for cuda stream selection on cuda < 7.0
Aug 5, 2015
27f3385
Merge pull request #931 from 9prady9/sat
pavanky Aug 5, 2015
f19ecf8
Merge pull request #929 from 9prady9/cuda_default_stream
pavanky Aug 5, 2015
75c81f1
Merge pull request #928 from pavanky/minor_changes
pavanky Aug 5, 2015
499dc09
shared/local memory loading fix
Aug 5, 2015
8086d34
Merge pull request #933 from 9prady9/ker_fixes
umar456 Aug 5, 2015
60c4979
namespace fix for POST_LAUNCH_CHECK macro: cuda backend
Aug 6, 2015
6cf4a5a
Replaced cuda Memcopy/Memset with async versions
Aug 6, 2015
e2994d9
Merge pull request #935 from 9prady9/cudaMem_stream
umar456 Aug 6, 2015
3b4d983
typo fix in opencl morph kernel
Aug 6, 2015
dc38b24
graphics window set size functions
Aug 6, 2015
6efd999
style fixes in graphics examples
Aug 6, 2015
b92e629
Removing consts from the fftInplace API
pavanky Aug 7, 2015
155293f
FEAT/TEST: Adding R2C and C2R FFT transforms for all backends
pavanky Aug 7, 2015
91f6e35
DOCS: Adding documentation for real to complex transforms
pavanky Aug 7, 2015
7900fca
Fixing a minor issue in ArrayFireConfigVersion.cmake file
pavanky Aug 7, 2015
d65d048
Fixing issue in documentation
pavanky Aug 7, 2015
0efb69a
Cleaning up multiply_inplace in cpu backend
pavanky Aug 7, 2015
0a1adee
Enabling memory manager back in cuda backend
pavanky Aug 7, 2015
d2e182f
Merge pull request #936 from pavanky/fft
Aug 7, 2015
b47dc5b
Merge pull request #937 from 9prady9/wind_resize
pavanky Aug 7, 2015
910feb7
FEAT: Adding select for CPU backend
pavanky Aug 8, 2015
97c916a
FEAT: Select added for CUDA backend
pavanky Aug 9, 2015
773c02d
FEAT: Select for opencl backend
pavanky Aug 9, 2015
981c5e6
FEAT: replace for all backends
pavanky Aug 9, 2015
0472884
TEST: Adding tests for select and replace
pavanky Aug 9, 2015
5df1b8c
Merge pull request #941 from pavanky/new_funcs_31
Aug 10, 2015
3e3be90
Fix type in linux doc
shehzan10 Aug 10, 2015
62b0360
Fix signed-usigned comp warnings
shehzan10 Aug 10, 2015
07ffda7
Fixes to print functions
shehzan10 Aug 10, 2015
50699cc
FEAT Added saveArray and readArray functions for file read/write
shehzan10 Aug 10, 2015
b259259
YCbCr <-> RGB conversion functions
Aug 10, 2015
4c876fc
unit tests for YCbCr <-> RGB conversion
Aug 10, 2015
ce88eec
Documentation for ycbcr_rgb conversion functions
Aug 10, 2015
587aa2d
Modified colorspace function to handle new colorspace - YCbCr
Aug 10, 2015
b55a459
Modifed colorspace function wrapper code for efficiency
Aug 11, 2015
77c31e6
FEAT: adding complex support for exp
pavanky Aug 11, 2015
345c579
Binary operations with floating point scalars default to single preci…
pavanky Aug 11, 2015
2a9e855
Removed af_print_array_c. af::print now calls af_print_array_p
shehzan10 Aug 11, 2015
57449b0
saveArray returns index of array
shehzan10 Aug 11, 2015
e59c953
Rename af_print_array_p to af_print_array_gen
shehzan10 Aug 11, 2015
1e60132
BUGFIX: Fixing offset issue with CPU element wise operations
pavanky Aug 12, 2015
384cbc7
Replaced padArray calls with Jit operations in ycbcr conversions
Aug 12, 2015
f4cc97f
Updated forge tag
Aug 12, 2015
26a2e40
PERF: improvements to element wise operations in CPU backend
pavanky Aug 12, 2015
0da5291
Merge pull request #942 from 9prady9/ycbcr
pavanky Aug 12, 2015
9e20a23
Merge pull request #945 from pavanky/jit_fixes
Aug 12, 2015
cbdd5be
Merge pull request #944 from pavanky/minor
Aug 12, 2015
3794c80
Merge branch 'devel' into svd
pavanky Aug 13, 2015
028960f
Added SIFT prototypes and parameter documentation
Aug 13, 2015
60546a1
Added C API for SIFT
Aug 13, 2015
efe1331
Added C++ API for SIFT
Aug 13, 2015
3ef9fdf
Added CUDA backend for SIFT
Aug 13, 2015
b87ba86
Added OpenCL backend for SIFT
Aug 13, 2015
25344cb
Added CPU backend for SIFT
Aug 13, 2015
48e909a
Added AF_ERR_NONFREE to defines.h
Aug 13, 2015
1ee6b70
Added BUILD_NONFREE option to CMake
Aug 13, 2015
b177218
Added SIFT Copyright information
Aug 13, 2015
b69215c
Added OpenSIFT License
Aug 13, 2015
afe1e46
Added SIFT documentation
Aug 13, 2015
d1d122e
Updated test data
Aug 13, 2015
ca57067
Added SIFT unit tests
Aug 13, 2015
bdbf30e
Changes to style and fix compile errors
pavanky Aug 13, 2015
43e5fe1
Made SIFT image indexing more readable in CPU backend
Aug 13, 2015
a6ae78b
SIFT fix for CUDA on Windows, made it more readable
Aug 13, 2015
9d09e4d
Made SIFT image indexing more readable in OpenCL backend
Aug 13, 2015
cce0e73
Templated SIFT gaussianElimination() in CPU and CUDA backends
Aug 13, 2015
ac92dda
FEAT added to string function
shehzan10 Aug 13, 2015
a5e8a5e
Added missing CUDA_LAUNCH and THRUST_SELECT to SIFT
Aug 13, 2015
dc6b11c
Merge pull request #943 from shehzan10/stream
pavanky Aug 13, 2015
bda81b0
Improved CUDA SIFT coalescing and performance
Aug 13, 2015
dd97ce5
Improved OpenCL SIFT coalescing and performance
Aug 14, 2015
a9a8140
Passing shared size memory dynamically to CUDA SIFT
Aug 14, 2015
3ada93a
Moved OpenCL's conv2Helper to kernel directory
Aug 14, 2015
b5cf8d5
Improved SIFT OpenCL code
Aug 14, 2015
079f4df
Using pre-defined constants for workgroup sizes in CUDA SIFT
Aug 14, 2015
78b9b99
Style changes to code in unwrap
pavanky Aug 14, 2015
2d60aed
FEAT: Adding support to unwrap along rows as well as columns
pavanky Aug 14, 2015
c17da09
Using 3D arrays for Gaussian/DoG pyramids in CUDA SIFT
Aug 17, 2015
9bd1693
Using cudaMemsetAsync for SIFT
Aug 17, 2015
966a130
Fixed OpenCL SIFT bug causing segmentation faults on Intel
Aug 17, 2015
45a4966
Added missing buffer freeing call to OpenCL SIFT
Aug 17, 2015
298c4d8
Fixed CUDA SIFT on unused memory buffer
Aug 17, 2015
b563615
Changed SIFT unit test to use std::stable_sort()
Aug 17, 2015
30dd47a
modified cpu::getInfo to display CPU information
Aug 18, 2015
4cd73be
Fixes for cpu backend getInfo on Tegra platform
Aug 18, 2015
3121ca1
Create instances for const index member functions
umar456 Aug 18, 2015
2fa808b
Fixed missing header error for windows platform
Aug 18, 2015
faefa30
Moved syncthreads/barriers out of thread conditionals
Aug 18, 2015
817ccc3
FEAT Added image IO using memory functions and tests
shehzan10 Aug 18, 2015
a958628
BUGFIX: Fixed a bug for unwrap in all backends
pavanky Aug 18, 2015
7df4dcd
FEAT/TEST/DOC: Adding wrap for CPU backend
pavanky Aug 19, 2015
1909fa5
FEAT: wrap for CUDA backend
pavanky Aug 19, 2015
1fab923
Adding atomics.hpp file for CUDA that can be used in the future
pavanky Aug 19, 2015
365afb4
Moving the kernel cache map to a centralized location
pavanky Aug 19, 2015
2e05dd4
FEAT: wrap for OpenCL backend
pavanky Aug 19, 2015
a8113b0
Removing faulty test
pavanky Aug 19, 2015
aca30fa
Cleaning up unwrap code in OpenCL by using cache store
pavanky Aug 19, 2015
791dfcc
Merge pull request #952 from 9prady9/cpuinfo
pavanky Aug 19, 2015
08b6ecf
Fixing the compile error on windows
pavanky Aug 19, 2015
cd097af
Fix conjugate transpose for vectors
shehzan10 Aug 19, 2015
1580652
fix #957: remove unused dtype trait for size_t
ghisvail Aug 19, 2015
c43af47
Changed saveImageMem API. Added image format enum
shehzan10 Aug 19, 2015
ee4d0bd
Moving CUDA SIFT syncthreads calls out of thread conditionals
Aug 19, 2015
20b5f51
Cleaning up cpu blas / lapack in OpenCL backend
pavanky Aug 20, 2015
e7e38b5
Fixes to supress annoying compiler warnings in OpenCL backend
pavanky Aug 20, 2015
05c3d62
Add typedef af_image_format af::imageFormat
shehzan10 Aug 20, 2015
0681ddd
Merge pull request #954 from shehzan10/imageio_mem
umar456 Aug 20, 2015
f89e37b
Merge pull request #955 from pavanky/wrap
umar456 Aug 20, 2015
5867404
Merge pull request #958 from shehzan10/ctrans_fix
umar456 Aug 20, 2015
a8d8837
Merge pull request #959 from ghisvail/bugfix/remove-unused-dtype-traits
umar456 Aug 20, 2015
7f06c0d
update cl.hpp to upstream version 1.2.7
ghisvail Aug 20, 2015
30f9e3c
fix instantiation of Platform objects
ghisvail Aug 20, 2015
fde6380
Adding functions from clMagma necessary for OpenCL SVD:
pavanky Aug 20, 2015
73b8081
Initial support for SVD in OpenCL backend
pavanky Aug 21, 2015
162e258
fix instantiation of cl::Platform objects
ghisvail Aug 21, 2015
163ab37
Adding proper error checking in magma
pavanky Aug 21, 2015
7b759ce
adding GL headers in platform.cpp
Aug 21, 2015
af598d1
Moved GL headers in platform.cpp inside WITH_GRAPHICS block
Aug 21, 2015
cc0f401
BUGFIX: in array_proxy::get() const
pavanky Aug 21, 2015
9dbf2df
Merge pull request #961 from 9prady9/cl_hpp_fixes
pavanky Aug 22, 2015
1ba33a6
Merge pull request #953 from umar456/fix_951
pavanky Aug 22, 2015
b6d8e2d
Updated boost compute version tags
shehzan10 Aug 21, 2015
eb66094
Fixing svd params to reflect clmagma
pavanky Aug 24, 2015
0ce0df2
Merge pull request #962 from shehzan10/update-deps
pavanky Aug 24, 2015
0183b6a
Fixing the output of af::info() for OpenCL backend
pavanky Aug 24, 2015
f34693e
Updating documentation and adding version guards for for 3.1
pavanky Aug 24, 2015
c88929e
Merge pull request #948 from pentschev/sift
pavanky Aug 24, 2015
b372e49
Reorganizing non free build process.
pavanky Aug 24, 2015
b9fac73
Changing build flags to build non free algorithms
pavanky Aug 24, 2015
5e0ceac
Templated options are now runtime compile options for opencl reductions
pavanky Aug 24, 2015
8bf6589
Templated options are now runtime compile options for opencl convolut…
pavanky Aug 24, 2015
bf69efc
Templated options are now runtime compile options for opencl indexed …
pavanky Aug 24, 2015
5c0da49
Templated options are now runtime compile options for opencl scan
pavanky Aug 24, 2015
39f9977
Templated options are now runtime compile options for opencl nearest …
pavanky Aug 24, 2015
d03c3c0
Removing unnecessary switch case from opencl ireduce
pavanky Aug 24, 2015
2c00e64
Templated options are now runtime compile options for opencl FAST
pavanky Aug 24, 2015
72f7ff5
Splitting up opencl sort_by_key files to compile in parallel
pavanky Aug 24, 2015
398b55c
Splitting sort_by_key across too many files slows down compile times
pavanky Aug 24, 2015
98f6f7c
Fixing a bug introduced a couple of commits ago in OpenCL SIFT
pavanky Aug 24, 2015
8bb6ad7
Merge pull request #966 from pavanky/compile_fixes
umar456 Aug 24, 2015
c071d86
Merge pull request #964 from pavanky/fixes_310
umar456 Aug 24, 2015
7fb28f6
Merge branch 'devel' into nonfree_fixes
pavanky Aug 24, 2015
71c12e8
Remove set_scalar(x, 0) instructions
shehzan10 Aug 24, 2015
af7681f
Merge pull request #965 from pavanky/nonfree_fixes
umar456 Aug 24, 2015
d0e1e7b
Remove unused opencl/kernel/set files
shehzan10 Aug 24, 2015
f52389e
Merge pull request #968 from shehzan10/opencl_fixes
pavanky Aug 25, 2015
c265948
Merge remote-tracking branch 'upstream/devel' into svd
pavanky Aug 25, 2015
549f6b5
Work around for issues in OpenCL svd
pavanky Aug 25, 2015
5fc32dc
API clean up and adding support for complex numbers for SVD
pavanky Aug 25, 2015
4118733
Fixing various typos and bug fixes for SVD in CUDA and OpenCL
pavanky Aug 25, 2015
b3c5f0f
TEST: for SVD
pavanky Aug 25, 2015
974856b
DOCS: Updating the documentation for SVD
pavanky Aug 25, 2015
9ef664c
Adding version guards for svd
pavanky Aug 25, 2015
73717c1
Adding more pragma directives to supress GCC warnings
pavanky Aug 25, 2015
083f6b8
TEST: updating SVD tests to contain all four floating point data types
pavanky Aug 25, 2015
25975bb
Fixing svd example to reflect the change in API
pavanky Aug 25, 2015
d1b1a0e
Fix typo
shehzan10 Aug 25, 2015
0b76aa3
Revert "Updated boost compute version tags"
pavanky Aug 25, 2015
ed9e1be
Compilation fixes for OSX
pavanky Aug 25, 2015
8bcbf98
Use xGESVD instead of xGESDD for ARM platforms
pavanky Aug 25, 2015
80593d5
Merge pull request #969 from pavanky/svd
shehzan10 Aug 25, 2015
8755004
Added missing 3.1 version gaurds
shehzan10 Aug 25, 2015
40912e5
BUGFIX SVD use gesdd only with MKL, use gesvd with atlas
shehzan10 Aug 25, 2015
52923a1
Updated release notes for v3.1.0
shehzan10 Aug 25, 2015
7f8799d
Version guards for complex operators
shehzan10 Aug 25, 2015
ff39491
Added SIFT license info to release notes
shehzan10 Aug 25, 2015
e1bee7a
SVD using gesdd on Apple
shehzan10 Aug 26, 2015
2c7044b
Merge pull request #970 from shehzan10/rel_31
pavanky Aug 26, 2015
aa8bc95
FEAT: Adding support for linear assignment in C API
pavanky Aug 26, 2015
654dffb
Restore original shape after flattening input for linear indexing
pavanky Aug 26, 2015
5b671c2
Merge pull request #971 from pavanky/assign
shehzan10 Aug 26, 2015
4b5725b
FEAT: Adding support for linear indexing in C API
pavanky Aug 27, 2015
d2741e0
OpenCL backend af_info function string fixes
Aug 27, 2015
52f45e9
Documentation for CUDA backend specific API
Aug 27, 2015
41d517e
Documentation fixes for 3.1 release
Aug 27, 2015
d27f91b
Updated forge upstream tag for 3.1 release
Aug 27, 2015
2712182
Documentation for missing index header functions
Aug 27, 2015
164b39e
Added missing docs for complex and opencl backend specific fns
Aug 27, 2015
4f60872
Added missing docs for operator%, array::H and array::T
Aug 27, 2015
1a52ee1
Merge pull request #973 from 9prady9/upstream_updates
shehzan10 Aug 27, 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
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions ArrayFireConfigVersion.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,16 @@
# but only if the requested major version is the same as the current one.


set(PACKAGE_VERSION "@AF_VERSION@@AF_VERSION_MINOR@")
set(PACKAGE_VERSION "@AF_VERSION_MAJOR@@AF_VERSION_MINOR@")

if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()

if("@AF_VERSION@@AF_VERSION_MINOR@" MATCHES "^([0-9]+)\\.")
if("@AF_VERSION_MAJOR@@AF_VERSION_MINOR@" MATCHES "^([0-9]+)\\.")
set(ArrayFire_VERSION_MAJOR "${CMAKE_MATCH_1}")
else()
set(ArrayFire_VERSION_MAJOR "@AF_VERSION@@AF_VERSION_MINOR@")
set(ArrayFire_VERSION_MAJOR "@AF_VERSION_MAJOR@@AF_VERSION_MINOR@")
endif()

if("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "${ArrayFire_VERSION_MAJOR}")
Expand Down
44 changes: 40 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,38 @@ PROJECT(ARRAYFIRE)

SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
INCLUDE(${CMAKE_MODULE_PATH}/UploadCoveralls.cmake)
INCLUDE(AFInstallDirs)

OPTION(BUILD_TEST "Build Tests" ON)
OPTION(BUILD_EXAMPLES "Build Examples" ON)
OPTION(BUILD_GTEST "Download gtest and check for updates. Necessary if you change compilers" ON)

OPTION(BUILD_CPU "Build ArrayFire with a CPU backend" ON)

FIND_PACKAGE(CUDA QUIET)
IF(${CUDA_FOUND})
SET(BUILD_CUDA ON CACHE BOOL "")
ENDIF(${CUDA_FOUND})
OPTION(BUILD_CUDA "Build ArrayFire with a CUDA backend" OFF)

FIND_PACKAGE(OpenCL QUIET)
IF(${OpenCL_FOUND})
SET(BUILD_OPENCL ON CACHE BOOL "")
ENDIF(${OpenCL_FOUND})
OPTION(BUILD_OPENCL "Build ArrayFire with a OpenCL backend" OFF)

OPTION(BUILD_GRAPHICS "Build ArrayFire with Forge Graphics" ON)

OPTION(BUILD_DOCS "Create ArrayFire Documentation" OFF)
OPTION(WITH_COVERAGE "Added code coverage flags" OFF)

OPTION(BUILD_NONFREE "Build ArrayFire nonfree algorithms" OFF)
OPTION(BUILD_SIFT "Build ArrayFire nonfree algorithms" OFF)

MARK_AS_ADVANCED(BUILD_SIFT)

# 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 All @@ -24,10 +43,6 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
"MinSizeRel" "RelWithDebInfo")
endif()

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
INCLUDE(${CMAKE_MODULE_PATH}/UploadCoveralls.cmake)
INCLUDE(AFInstallDirs)

FIND_PACKAGE(FreeImage)
IF(FREEIMAGE_FOUND)
ADD_DEFINITIONS(-DWITH_FREEIMAGE)
Expand Down Expand Up @@ -71,6 +86,27 @@ IF(BUILD_GRAPHICS)

ENDIF(BUILD_GRAPHICS)

IF(BUILD_NONFREE)
MESSAGE(WARNING "Building With NONFREE ON requires the following patents")
SET(BUILD_SIFT ON)
ENDIF(BUILD_NONFREE)

IF(BUILD_SIFT)
ADD_DEFINITIONS(-DAF_BUILD_SIFT)

IF (NOT BUILD_NONFREE)
MESSAGE(WARNING "Building with SIFT requires the following patents")
ENDIF()

MESSAGE("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"
"filed March 8, 1999. Asignee: The University of British Columbia. For"
"further details, contact David Lowe (lowe@cs.ubc.ca) or the"
"University-Industry Liaison Office of the University of British"
"Columbia.")
ENDIF(BUILD_SIFT)

INCLUDE_DIRECTORIES(
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_SOURCE_DIR}/src/backend"
Expand Down
23 changes: 21 additions & 2 deletions CMakeModules/Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,29 @@
# Make a version file that includes the ArrayFire version and git revision
#
SET(AF_VERSION_MAJOR "3")
SET(AF_VERSION_MINOR "0")
SET(AF_VERSION_PATCH "2")
SET(AF_VERSION_MINOR "1")
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})

# From CMake 3.0.0 CMAKE_<LANG>_COMPILER_ID is AppleClang for OSX machines
# that use clang for compilations
IF("${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang")
SET(COMPILER_NAME "AppleClang")
ELSEIF("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
SET(COMPILER_NAME "LLVM Clang")
ELSEIF("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
SET(COMPILER_NAME "GNU Compiler Collection(GCC/G++)")
ELSEIF("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
SET(COMPILER_NAME "Intel Compiler")
ELSEIF("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
SET(COMPILER_NAME "Microsoft Visual Studio")
ENDIF()

SET(COMPILER_VERSION "${CMAKE_C_COMPILER_VERSION}")
SET(AF_COMPILER_STRING "${COMPILER_NAME} ${COMPILER_VERSION}")

EXECUTE_PROCESS(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
Expand Down
1 change: 1 addition & 0 deletions CMakeModules/build_clFFT.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ ExternalProject_Add(
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DBUILD_SHARED_LIBS:BOOL=OFF
-DBUILD_EXAMPLES:BOOL=OFF
-DBUILD_CLIENT:BOOL=OFF
-DBUILD_TEST:BOOL=OFF
-DSUFFIX_LIB:STRING=
Expand Down
18 changes: 15 additions & 3 deletions CMakeModules/build_forge.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
INCLUDE(ExternalProject)

SET(prefix ${CMAKE_BINARY_DIR}/third_party/forge)
SET(forge_location "${prefix}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}forge${CMAKE_SHARED_LIBRARY_SUFFIX}")

IF(WIN32)
SET(forge_lib_prefix "${prefix}/lib")
ELSE(WIN32)
SET(forge_lib_prefix "${prefix}/src/forge-ext-build/src")
ENDIF(WIN32)

SET(forge_location "${forge_lib_prefix}/${CMAKE_SHARED_LIBRARY_PREFIX}forge${CMAKE_SHARED_LIBRARY_SUFFIX}")
IF(CMAKE_VERSION VERSION_LESS 3.2)
IF(CMAKE_GENERATOR MATCHES "Ninja")
MESSAGE(WARNING "Building forge with Ninja has known issues with CMake older than 3.2")
Expand All @@ -16,7 +22,7 @@ ENDIF()
ExternalProject_Add(
forge-ext
GIT_REPOSITORY https://github.com/arrayfire/forge.git
GIT_TAG af3.0.1
GIT_TAG 79fac0b7ed35c96f25c8006075ec934729cf9dc4
PREFIX "${prefix}"
INSTALL_DIR "${prefix}"
UPDATE_COMMAND ""
Expand All @@ -33,11 +39,17 @@ ExternalProject_Add(
${byproducts}
)

ExternalProject_Get_Property(forge-ext binary_dir)
ExternalProject_Get_Property(forge-ext install_dir)
ADD_LIBRARY(forge SHARED IMPORTED)
SET_TARGET_PROPERTIES(forge PROPERTIES IMPORTED_LOCATION ${forge_location})
IF(WIN32)
SET_TARGET_PROPERTIES(forge PROPERTIES IMPORTED_IMPLIB ${prefix}/lib/forge.lib)
SET_TARGET_PROPERTIES(forge PROPERTIES IMPORTED_IMPLIB ${forge_lib_prefix}/forge.lib)
ELSE(WIN32)
SET(forge_bindir_location ${binary_dir}/src/${CMAKE_SHARED_LIBRARY_PREFIX}forge${CMAKE_SHARED_LIBRARY_SUFFIX})
IF(NOT (${forge_bindir_location} STREQUAL ${forge_location}))
MESSAGE(WARNING "Did the forge binary location move? (Have ${forge_bindir_location} vs ${forge_location})")
ENDIF()
ENDIF(WIN32)
ADD_DEPENDENCIES(forge forge-ext)
SET(FORGE_INCLUDE_DIRECTORIES ${install_dir}/include)
Expand Down
2 changes: 2 additions & 0 deletions CMakeModules/version.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@
#define AF_VERSION_MAJOR @AF_VERSION_MAJOR@
#define AF_VERSION_MINOR @AF_VERSION_MINOR@
#define AF_VERSION_PATCH @AF_VERSION_PATCH@
#define AF_API_VERSION_CURRENT @AF_API_VERSION_CURRENT@
#define AF_REVISION "@GIT_COMMIT_HASH@"
#define AF_CMPLR_STR "@AF_COMPILER_STRING@"
40 changes: 34 additions & 6 deletions COPYRIGHT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Copyrights
==========================================
##Index
* [ArrayFire](#arrayfire)
* [ArrayFire: SIFT](#arrayfire-sift)
* [FreeImage](#freeimage)
* [clBLAS](#clblas)
* [clFFT](#clfft)
Expand All @@ -11,7 +12,7 @@ Copyrights
* [Magma](#magma)

### Introduction
ArrayFire uses software written by the following parties. Each software is listed with it's copyright, license and home page.
ArrayFire uses software written by the following parties. Each software is listed with its copyright, license and home page.

All the licenses can be found in the LICENSES directory.

Expand All @@ -22,56 +23,79 @@ ArrayFire is distributed under the BSD 3-Clause License. A copy of this license

See ArrayFire home page https://github.com/arrayfire/arrayfire for details and links to the source code.

### ArrayFire: SIFT
Copyright (C) 2014-2015, ArrayFire.

Copyright (c) 2006-2012, Rob Hess <rob@iqengines.com>

ArrayFire SIFT is based on the OpenSIFT project by Rob Hess, licensed and distributed under the BSD 3-Clause License. A full copy of the license is present in the LICENSES directory.

SIFT is an algorithm patented and protected by US Law under the US Patent 6,711,293 (March 23, 2004) assigned to the University of British Columbia. before using this code or any binary forms generated from it, please verify that you have permission to do so.

### FreeImage
Copyright (C) 2014-2015, FreeImage.

FreeImage is distributed under the FreeImage Public License (FIPL) version 1.0. A copy of this license is present in the LICENSES directory.

See FreeImage home page http://freeimage.sourceforge.net/ for details and links to the source code.

**How ArrayFire uses FreeImage:** The ArrayFire source code does not contain any source code from FreeImage. FreeImage can be optionally linked with or disabled during build time. The binary installers of ArrayFire may come packaged with FreeImage.

### clBLAS
Copyright (C) 2013-2015 Advanced Micro Devices, Inc.
This product includes software developed atAdvanced Micro Devices, Inc. (http://www.amd.com).
This product includes software developed at Advanced Micro Devices, Inc. (http://www.amd.com).

clBLAS is distributed under the Apache License Version 2.0 License. A copy of this license is present in the LICENSES directory.

See clBLAS home page https://github.com/clMathLibraries/clBLAS for details and links to the source code.

**How ArrayFire uses clBLAS:** The ArrayFire source code does not contain any source code from clBLAS. clBLAS is statically linked during build time when building OpenCL backend.

### clFFT
Copyright (C) 2013-2015 Advanced Micro Devices, Inc.
This product includes software developed atAdvanced Micro Devices, Inc. (http://www.amd.com).
This product includes software developed at Advanced Micro Devices, Inc. (http://www.amd.com).

clFFT is distributed under the Apache License Version 2.0 License. A copy of this license is present in the LICENSES directory.

See clFFT home page https://github.com/clMathLibraries/clBLAS for details and links to the source code.

**How ArrayFire uses clFFT:** The ArrayFire source code does not contain any source code from clFFT. clFFT is statically linked during build time when building OpenCL backend.

### Random123
Copyright (C) 2010-2015, D. E. Shaw Research.

Random123 is distributed under the BSD 3-Clause License. A copy of this license is present in the LICENSES directory.

See Random123 home page https://www.deshawresearch.com/resources_random123.html for details and links to the source code.

**How ArrayFire uses Random123:** ArrayFire uses a modified and stripped down version of Random123 in the OpenCL backend. Each of the source files using the modified version of Random123 contain the original copyright.

### Boost Compute
Copyright (C) 2013-2015 Kyle Lutz

Boost Compute is distributed under the Boost Software License, Version 1.0 License. A copy of this license is present in the LICENSES directory.

See Boost Compute home page https://github.com/boostorg/compute for details and links to the source code.

**How ArrayFire uses Boost Compute:** The ArrayFire source code does not contain any source code from Boost Compute. Boost Compute header files are optionally required to build the OpenCL backend.

### Thrust
Copyright (C) 2011-2015 NVIDIA Corporation.

Thrust is distributed under the Apache License Version 2.0 License. A copy of this license is present in the LICENSES directory.

See Thrust home page https://github.com/thrust/thrust for details and links to the source code.

### Magma
**How ArrayFire uses Thrust:** The ArrayFire source code does not contain any source code from Thrust. Thrust header files are optionally required to build the CUDA backend.

### clMagma
Copyright (C) 2015 The University of Tennessee.

Magma is distributed under the BSD 3-Clause License. A copy of this license is present in the LICENSES directory.
clMagma is distributed under the BSD 3-Clause License. A copy of this license is present in the LICENSES directory.

See Magma home page http://icl.cs.utk.edu/magma/index.html for details and links to the source code.
See clMagma home page http://icl.cs.utk.edu/magma/index.html for details and links to the source code.

**How ArrayFire uses clMagma:** ArrayFire uses a modified and stripped down version of clMagma in the OpenCL backend. Each of the source files using the modified version of clMagma contain the original copyright.

### GLEW
The OpenGL Extension Wrangler Library
Expand All @@ -84,10 +108,14 @@ A copy of these licenses is present in the LICENSES directory.

See GLEW home page http://glew.sourceforge.net for details and links to the source code.

**How ArrayFire uses GLEW:** The ArrayFire source code does not contain any source code from GLEW. GLEW can be optionally linked with during build time. The binary installers of ArrayFire may come packaged with GLEW.

### GLFW
Copyright (C) 2002-2006 Marcus Geelnard
Copyright (C) 2006-2011 Camilla Berglund

GLFW is distributed under the zlib/libpng License. A copy of this license is present in the LICENSES directory.

See GLFW home page http://www.glfw.org for details and links to the source code.

**How ArrayFire uses GLFW:** The ArrayFire source code does not contain any source code from GLFW. GLFW can be optionally linked with or disabled during build time. The binary installers of ArrayFire may come packaged with GLFW.
57 changes: 57 additions & 0 deletions LICENSES/OpenSIFT License.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Copyright (c) 2006-2012, Rob Hess <rob@iqengines.com>
All rights reserved.

The following patent has been issued for methods embodied in this
software: "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
filed March 8, 1999. Asignee: The University of British Columbia. For
further details, contact David Lowe (lowe@cs.ubc.ca) or the
University-Industry Liaison Office of the University of British
Columbia.

Note that restrictions imposed by this patent (and possibly others)
exist independently of and may be in conflict with the freedoms granted
in this license, which refers to copyright of the program, not patents
for any methods that it implements. Both copyright and patent law must
be obeyed to legally use and redistribute this program and it is not the
purpose of this license to induce you to infringe any patents or other
property right claims or to contest validity of any such claims. If you
redistribute or use the program, then this license merely protects you
from committing copyright infringement. It does not protect you from
committing patent infringement. So, before you do anything with this
program, make sure that you have permission to do so not merely in terms
of copyright, but also in terms of patent law.

Please note that this license is not to be understood as a guarantee
either. If you use the program according to this license, but in
conflict with patent law, it does not mean that the licensor will refund
you for any losses that you incur if you are sued for your patent
infringement.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright and
patent notices, this list of conditions and the following
disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name of Oregon State University nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ We currently have binary tar balls and installers available for the beta version
### Build Status
| | Build | Tests |
|-----------------|-----------------|-----------------|
| Linux x86 | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux/master)](http://ci.arrayfire.org/job/arrayfire-linux/branch/master/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-linux-test/master)](http://ci.arrayfire.org/job/arrayfire-linux-test/branch/master/) |
| Linux Tegra | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegra/master)](http://ci.arrayfire.org/job/arrayfire-tegra/branch/master/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-tegra-test/master)](http://ci.arrayfire.org/job/arrayfire-tegra-test/branch/master/) |
| Windows | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows/master)](http://ci.arrayfire.org/job/arrayfire-windows/branch/master/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-windows-test/master)](http://ci.arrayfire.org/job/arrayfire-windows-test/branch/master/) |
| OSX | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx/master)](http://ci.arrayfire.org/job/arrayfire-osx/branch/master/) | [![Build Status](http://ci.arrayfire.org/buildStatus/icon?job=arrayfire-osx-test/master)](http://ci.arrayfire.org/job/arrayfire-osx-test/branch/master/) |
| 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/) |

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

Expand Down
Loading