|  | 
| template<typename ElementA , typename LayoutA , typename ElementB , typename LayoutB , typename ElementC , typename LayoutC , typename ScalarType , typename ComputeType , typename InnerProductOp  = multiply_add<ComputeType>, typename ConvertOp  = NumericConverter<ElementC, ScalarType>> | 
| void | compute_gemm (gemm::GemmCoord problem_size, ScalarType alpha, TensorRef< ElementA, LayoutA > tensor_a, TensorRef< ElementB, LayoutB > tensor_b, ScalarType beta, TensorRef< ElementC, LayoutC > tensor_c, TensorRef< ElementC, LayoutC > tensor_d, ComputeType initial_accum) | 
|  | 
| template<typename ElementA , typename LayoutA , typename ElementB , typename LayoutB , typename ElementC , typename LayoutC , typename ScalarType , typename ComputeType , typename InnerProductOp  = multiply_add<ComputeType>, typename ConvertOp  = NumericConverter<ElementC, ScalarType>> | 
| void | compute_gemm (gemm::GemmCoord problem_size, ScalarType alpha, TensorRef< ElementA, LayoutA > tensor_a, TensorRef< ElementB, LayoutB > tensor_b, ScalarType beta, TensorRef< ElementC, LayoutC > tensor_c, ComputeType initial_accum) | 
|  | 
| template<typename TensorRefCollectionA , typename TensorRefCollectionB , typename TensorRefCollectionC , typename ScalarType , typename AccumulatorType > | 
| void | BatchedGemm (gemm::GemmCoord problem_size, int batch_count, ScalarType alpha, TensorRefCollectionA const &tensor_a, TensorRefCollectionB const &tensor_b, ScalarType beta, TensorRefCollectionC &tensor_c, AccumulatorType initial_accum) | 
|  | Computes a batch of GEMMs over a set of matrices of common dimension.  More... 
 | 
|  | 
| template<typename TensorRefCollectionA , typename TensorRefCollectionB , typename TensorRefCollectionC , typename ScalarType , typename AccumulatorType > | 
| void | BatchedGemm (gemm::GemmCoord problem_size, int batch_count, ScalarType alpha, TensorRefCollectionA const &tensor_a, TensorRefCollectionB const &tensor_b, ScalarType beta, TensorRefCollectionC &tensor_c) | 
|  | 
| template<typename ElementA , typename LayoutA , typename ElementB , typename LayoutB , typename ElementC , typename LayoutC , typename ScalarType , typename ComputeType , typename ConvertOp  = NumericConverter<ElementC, ScalarType>, typename InnerProductOp  = multiply_add<ComputeType>> | 
| void | GemmComplex (gemm::GemmCoord problem_size, ScalarType alpha, TensorRef< ElementA, LayoutA > tensor_a, ComplexTransform transform_a, TensorRef< ElementB, LayoutB > tensor_b, ComplexTransform transform_b, ScalarType beta, TensorRef< ElementC, LayoutC > tensor_c, ComputeType initial_accum) | 
|  | 
| template<typename ElementA , typename LayoutA , typename ElementB , typename LayoutB , typename ElementC , typename LayoutC , typename ScalarType > | 
| void | GemmComplex (gemm::GemmCoord problem_size, ScalarType alpha, TensorRef< ElementA, LayoutA > tensor_a, ComplexTransform transform_a, TensorRef< ElementB, LayoutB > tensor_b, ComplexTransform transform_b, ScalarType beta, TensorRef< ElementC, LayoutC > tensor_c) | 
|  | 
| template<typename Element , typename Layout > | 
| bool | TensorEquals (TensorView< Element, Layout > const &lhs, TensorView< Element, Layout > const &rhs) | 
|  | Returns true if two tensor views are equal.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| bool | TensorNotEquals (TensorView< Element, Layout > const &lhs, TensorView< Element, Layout > const &rhs) | 
|  | Returns true if two tensor views are NOT equal.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| bool | TensorContains (TensorView< Element, Layout > const &view, Element value) | 
|  | Returns true if a value is present in a tensor.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| std::pair< bool, Coord< Layout::kRank > > | TensorFind (TensorView< Element, Layout > const &view, Element value) | 
|  | < Layout function  More... 
 | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout , typename F > | 
| void | TensorCopy (TensorView< DstElement, DstLayout > dst, TensorView< SrcElement, SrcLayout > src, F const &transform) | 
|  | Copies elements from one tensor view into another, satisfying bounds of each tensor.  More... 
 | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout , typename F > | 
| void | TensorCopy (TensorView< DstElement, DstLayout > dst, TensorRef< SrcElement, SrcLayout > src, F const &transform) | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout , typename F > | 
| void | TensorCopy (TensorRef< DstElement, DstLayout > dst, TensorView< SrcElement, SrcLayout > src, F const &transform) | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout > | 
| void | TensorCopy (TensorView< DstElement, DstLayout > dst, TensorView< SrcElement, SrcLayout > src) | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout , typename F > | 
| void | TensorCopy (TensorView< DstElement, DstLayout > dst, TensorRef< SrcElement, SrcLayout > src) | 
|  | 
| template<typename DstElement , typename DstLayout , typename SrcElement , typename SrcLayout > | 
| void | TensorCopy (TensorRef< DstElement, DstLayout > dst, TensorView< SrcElement, SrcLayout > src) | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorAdd (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a, TensorRef< ElementB, LayoutB > b) | 
|  | Adds two tensors and stores in the destination tensor: d = a + b.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA > | 
| void | TensorAdd (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a) | 
|  | Adds a tensor in place: d = d .+ a.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorSub (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a, TensorRef< ElementB, LayoutB > b) | 
|  | Subtracts two tensors and stores in the destination tensor: d = a - b.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorSub (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a) | 
|  | Subtracts two tensors in place: d = d .- a.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorMul (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a, TensorRef< ElementB, LayoutB > b) | 
|  | Multiplies two tensors and stores in the destination tensor: d = a .* b.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA > | 
| void | TensorMul (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a) | 
|  | Multiplies tensors in place: d = d .* a.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorDiv (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a, TensorRef< ElementB, LayoutB > b) | 
|  | Divides two tensors and stores in the destination tensor: d = a ./ b.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA > | 
| void | TensorDiv (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a) | 
|  | Divides tensors in place: d = d ./ a.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA , typename ElementB , typename LayoutB > | 
| void | TensorModulus (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a, TensorRef< ElementB, LayoutB > b) | 
|  | Divides two tensors and stores in the destination tensor: d = a ./ b.  More... 
 | 
|  | 
| template<typename ElementD , typename LayoutD , typename ElementA , typename LayoutA > | 
| void | TensorModulus (TensorView< ElementD, LayoutD > d, TensorRef< ElementA, LayoutA > a) | 
|  | Divides tensors in place: d = d ./ a.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFill (TensorView< Element, Layout > dst, Element val=Element(0)) | 
|  | Fills a tensor with a uniform value.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillRandomGaussian (TensorView< Element, Layout > dst, uint64_t seed, double mean=0, double stddev=1, int bits=-1) | 
|  | Fills a tensor with random values with a Gaussian distribution.  More... 
 | 
|  | 
| template<typename Element > | 
| void | BlockFillRandomGaussian (Element *ptr, size_t capacity, uint64_t seed, double mean=0, double stddev=1, int bits=-1) | 
|  | Fills a tensor with random values with a Gaussian distribution.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillRandomUniform (TensorView< Element, Layout > dst, uint64_t seed, double max=1, double min=0, int bits=-1) | 
|  | Fills a tensor with random values with a uniform random distribution.  More... 
 | 
|  | 
| template<typename Element > | 
| void | BlockFillRandomUniform (Element *ptr, size_t capacity, uint64_t seed, double max=1, double min=0, int bits=-1) | 
|  | Fills a tensor with random values with a uniform random distribution.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillDiagonal (TensorView< Element, Layout > dst, Element diag=Element(1), Element other=Element(0)) | 
|  | Fills a tensor everywhere with a unique value for its diagonal.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillIdentity (TensorView< Element, Layout > dst) | 
|  | Helper to fill a tensor's digonal with 1 and 0 everywhere else.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorUpdateDiagonal (TensorView< Element, Layout > dst, Element val=Element(1)) | 
|  | Writes a uniform value to the diagonal of a tensor without modifying off-diagonal elements.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorUpdateOffDiagonal (TensorView< Element, Layout > dst, Element other=Element(1)) | 
|  | Writes a uniform value to all elements in the tensor without modifying diagonal elements.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillLinear (TensorView< Element, Layout > dst, Array< Element, Layout::kRank > const &v, Element s=Element(0)) | 
|  | Fills tensor with a linear combination of its coordinate and another vector.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorFillSequential (TensorView< Element, Layout > dst, Element s=Element(0)) | 
|  | Fills tensor with a linear combination of its coordinate and another vector.  More... 
 | 
|  | 
| template<typename Element > | 
| void | BlockFillSequential (Element *ptr, int64_t capacity, Element v=Element(1), Element s=Element(0)) | 
|  | Fills a block of data with sequential elements.  More... 
 | 
|  | 
| template<typename Element > | 
| void | BlockFillRandom (Element *ptr, size_t capacity, uint64_t seed, Distribution dist) | 
|  | Fills a block of data with sequential elements.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorCopyDiagonalIn (TensorView< Element, Layout > dst, Element const *ptr) | 
|  | Copies a diagonal in from host memory without modifying off-diagonal elements.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| void | TensorCopyDiagonalOut (Element *ptr, TensorView< Element, Layout > src) | 
|  | Copies the diagonal of a tensor into a dense buffer in host memory.  More... 
 | 
|  | 
| template<typename Func , int Rank> | 
| void | TensorForEach (Coord< Rank > extent, Func &func) | 
|  | Iterates over the index space of a tensor.  More... 
 | 
|  | 
| template<typename Func , int Rank> | 
| void | TensorForEachLambda (Coord< Rank > extent, Func func) | 
|  | Iterates over the index space of a tensor and calls a C++ lambda.  More... 
 | 
|  | 
| template<typename Element , typename Layout , typename ElementReduction > | 
| ElementReduction | TensorNorm (TensorView< Element, Layout > view, ElementReduction accumulator) | 
|  | Computes the p=2 norm of the elements of a tensor with arbitrary reduction data type.  More... 
 | 
|  | 
| template<typename Element , typename Layout > | 
| double | TensorNorm (TensorView< Element, Layout > view) | 
|  | Computes the p=2 norm of the elements of a tensor.  More... 
 | 
|  |