APIs¶
backSubstitute¶
#include "back_substitute.hpp"
template < int RowsColsA, typename InputType, typename OutputType, typename TRAITS = backSubstituteTraits<RowsColsA, InputType, OutputType> > void backSubstitute ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixBStrm, int& is_singular )
backSubstitute
Parameters:
RowsColsA | Row and column dimensions |
InputType | Input data type |
OutputType | Output data type |
TRIATS | Traits class |
matrixAStrm | Stream of Input matrix |
matrixBStrm | Stream of Output matrix. |
is_singular | Indicates the diagonal of B contains zeros. |
cholesky¶
#include "cholesky.hpp"
template < bool LowerTriangularL, int RowsColsA, class InputType, class OutputType, typename TRAITS = choleskyTraits<LowerTriangularL, RowsColsA, InputType, OutputType> > int cholesky ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixLStrm )
cholesky
Parameters:
LowerTriangularL | When false generates the result in the upper triangle |
RowsColsA | Defines the matrix dimensions |
InputType | Input data type |
OutputType | Output data type |
TRAITS | choleskyTraits class |
matrixAStrm | Stream of Hermitian/symmetric positive definite input matrix |
matrixLStrm | Stream of Lower or upper triangular output matrix |
Returns:
An integer type. 0=Success. 1=Failure. The function attempted to find the square root of a negative number i.e. the input matrix A was not Hermitian/symmetric positive definite.
choleskyInverse¶
#include "cholesky_inverse.hpp"
template < int RowsColsA, typename InputType, typename OutputType, typename CholeskyInverseTraits = choleskyInverseTraits<RowsColsA, InputType, OutputType> > void choleskyInverse ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixInverseAStrm, int& cholesky_success )
CHOLESKY_INVERSE.
Parameters:
RowsColsA | Defines the matrix dimensions |
InputType | Input data type |
OutputType | Output data type |
CholeskyInverseTraits | Traits class |
matrixAStrm | Stream of Square Hermitian/symmetric positive definite input matrix |
matrixInverseAStrm | Stream of Inverse of input matrix |
cholesky_success | Indicates if matrix A was successfully inverted. 0 = Success. 1 = Failure. |
matrixMultiply¶
matrixMultiply overload (1)¶
#include "matrix_multiply.hpp"
template < class TransposeFormA1, class TransposeFormA2, int RowsA, int ColsA, int RowsC, int ColsC, typename InputType, typename OutputType, typename TRAITS = matrixMultiplyTraits<TransposeFormA1, TransposeFormA2, RowsA, ColsA, RowsA, ColsA, InputType, OutputType> > void matrixMultiply ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixCStrm )
matrixMultiply entry point function for calculating matrix power.
Parameters:
TransposeFormA1 | Defines if the first matix is transposed before the multiplication. Valid values are: NoTranspose, Transpose, ConjugateTranspose |
TransposeFormA2 | Defines if the second matix is transposed before the multiplication. |
RowsA | Defines the number of rows in the A matrix |
ColsA | Defines the number of columns in the A matrix |
RowsC | Defines the number of rows in the C matrix |
ColsC | Defines the number of columns in the C matrix |
InputType | Input data type |
OutputType | Output data type |
TRAITS | Traits class |
matrixAStrm | Stream of input matrix |
matrixCStrm | Stream of A^2 product output matrix |
matrixMultiply overload (2)¶
#include "matrix_multiply.hpp"
template < class TransposeFormA, class TransposeFormB, int RowsA, int ColsA, int RowsB, int ColsB, int RowsC, int ColsC, typename InputType, typename OutputType, typename TRAITS = matrixMultiplyTraits<TransposeFormA, TransposeFormB, RowsA, ColsA, RowsB, ColsB, InputType, OutputType> > void matrixMultiply ( hls::stream <InputType>& matrixAStrm, hls::stream <InputType>& matrixBStrm, hls::stream <OutputType>& matrixCStrm )
matrixMultiply entry point function.
Parameters:
TransposeFormA | Defines if the A matix is transposed before the multiplication. Valid values are: NoTranspose, Transpose, ConjugateTranspose |
TransposeFormB | Defines if the B matix is transposed before the multiplication. |
RowsA | Defines the number of rows in the A matrix |
ColsA | Defines the number of columns in the A matrix |
RowsB | Defines the number of rows in the B matrix |
ColsB | Defines the number of columns in the B matrix |
RowsC | Defines the number of rows in the C matrix |
ColsC | Defines the number of columns in the C matrix |
InputType | Input data type |
OutputType | Output data type |
TRAITS | Traits class |
matrixAStrm | Stream of First input matrix |
matrixBStrm | Stream of Second input matrix |
matrixCStrm | Stream of AB product output matrix |
qrInverse¶
#include "qr_inverse.hpp"
template < int RowsColsA, typename InputType, typename OutputType, typename QRInverseTraits = qrInverseTraits<RowsColsA, InputType, OutputType> > void qrInverse ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixInverseAStrm, int& A_singular )
qrInverse the entry point function.
Parameters:
RowsColsA | Defines the matrix dimensions |
InputType | Input data type |
OutputType | Output data type |
QRInverseTraits | QRInverse Traits class |
matrixAStrm | Stream of Input matrix A |
matrixInverseAStrm | Stream of Inverse of input matrix |
A_singular | Failure, matrix A is singular |
qrf¶
#include "qrf.hpp"
template < bool TransposedQ, int RowsA, int ColsA, typename InputType, typename OutputType, typename QRF_TRAITS = qrfTraits > void qrf ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixQStrm, hls::stream <OutputType>& matrixRStrm )
QRF, to computes the full QR factorization (QR decomposition) of input matrix A, A=QR, producing orthogonal output matrix Q and upper-triangular matrix R.
Parameters:
TransposedQ | Selects whether Q is output in transposed form |
RowsA | Number of rows in input matrix A |
ColsA | Number of columns in input matrix A |
InputType | Input data type |
OutputType | Output data type |
QRF_TRAITS | qrfTraits type with specified values |
matrixAStrm | Stream of Input matrix |
matrixQStrm | Stream of Orthogonal output matrix |
matrixRStrm | Stream of Upper triangular output matrix |
svd¶
#include "svd.hpp"
template < int RowsA, int ColsA, typename InputType, typename OutputType, typename SVDTraits = svdTraits<RowsA, ColsA, InputType, OutputType> > void svd ( hls::stream <InputType>& matrixAStrm, hls::stream <OutputType>& matrixSStrm, hls::stream <OutputType>& matrixUStrm, hls::stream <OutputType>& matrixVStrm )
SVD the entry point function.
Parameters:
RowsA | Row dimension |
ColsA | Column dimension |
InputType | Input data type |
OutputType | Output data type |
matrixAStrm | Stream of input matrix |
matrixSStrm | Stream of singular values output matrix |
matrixUStrm | Stream of left singular vectors output matrix |
matrixVStrm | Stream of right singular vectors output matrix |