Matrix Inverse

Cached API

template<typename TensorTypeAInv, typename TensorTypeA, MatInverseAlgo_t ALGO = MAT_INVERSE_ALGO_LU>
void matx::inv(TensorTypeAInv &a_inv, const TensorTypeA &a, cudaStream_t stream = 0)

Non-Cached API

template<typename TensorTypeAInv, typename TensorTypeA, MatInverseAlgo_t ALGO = MAT_INVERSE_ALGO_LU>
class matx::matxInversePlan_t

Public Functions

inline matxInversePlan_t(TensorTypeAInv &a_inv, const TensorTypeA &a)

Construct a matrix inverse handle

Creates a handle for executing a matrix inverse. There are several methods of performing a matrix inverse with various tradeoffs, so an algorithm type is supplied to give flexibility. To perform a matrix inversion the input matrix must be square, and non-singular.

Template Parameters
  • T1 – Data type of A matrix

  • RANK – Rank of A matrix

  • ALGO – Inverse algorithm to use

Parameters
  • a – Input tensor view

  • a_inv – Inverse of A (if it exists)

inline ~matxInversePlan_t()

Inverse handle destructor

Destroys any helper data used for provider type and any workspace memory created

inline void Exec(cudaStream_t stream)

Execute a matrix inverse

Execute a matrix inverse operation on matrix A with the chosen algorithm.

Note

Views being passed to matxInverse_t must be column-major order for now

Template Parameters

T1 – Type of matrix A

Parameters

stream – CUDA stream