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 |