/******************************************************* * Copyright (c) 2014, ArrayFire * All rights reserved. * * This file is distributed under 3-clause BSD license. * The complete license agreement can be obtained at: * http://arrayfire.com/licenses/BSD-3-Clause ********************************************************/ #include #include #include #include #include #include using af::dim4; using arrayfire::common::half; namespace arrayfire { namespace opencl { template Array histogram(const Array &in, const unsigned &nbins, const double &minval, const double &maxval, const bool isLinear) { const dim4 &dims = in.dims(); dim4 outDims = dim4(nbins, 1, dims[2], dims[3]); Array out = createValueArray(outDims, uint(0)); kernel::histogram(out, in, nbins, minval, maxval, isLinear); return out; } #define INSTANTIATE(T) \ template Array histogram(const Array &, const unsigned &, \ const double &, const double &, \ const bool); INSTANTIATE(float) INSTANTIATE(double) INSTANTIATE(char) INSTANTIATE(int) INSTANTIATE(uint) INSTANTIATE(schar) INSTANTIATE(uchar) INSTANTIATE(short) INSTANTIATE(ushort) INSTANTIATE(intl) INSTANTIATE(uintl) INSTANTIATE(half) } // namespace opencl } // namespace arrayfire