Difference between revisions of "Function:MatMulTrans"

From CUVI Wiki
(Created page with "__NOTOC__ Performs matrix multiplication with its transpose. ===Function=== {| |style="font-size:150%;"| <syntaxhighlight lang="cpp"> CuviStatus matMulTrans(const CuviImage& ...")
 
(2 intermediate revisions by the same user not shown)
Line 40: Line 40:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Input 1
! Input
! Input 2
! Output
! Output
|-
|-
| 32f single channel
| 32f single channel
| 32f single channel
| 32f single channel
| 32f single channel
Line 56: Line 54:


CuviSize aSize(3,3);
CuviSize aSize(3,3);
CuviSize bSize(3,3);


//Initialize input image
//Initialize input image
Line 67: Line 64:


//Perform matrix multiplication (A * A')
//Perform matrix multiplication (A * A')
cuvi::arithmeticLogical::matMul(A,B);
cuvi::arithmeticLogical::matMulTrans(A,B);


//The order of multiplication can be reversed to (A' * A)
//The order of multiplication can be reversed to (A' * A)
cuvi::arithmeticLogical::matMul(A,B,true);
cuvi::arithmeticLogical::matMulTrans(A,B,true);




</syntaxhighlight>
</syntaxhighlight>
|}
|}

Revision as of 13:45, 16 June 2014

Performs matrix multiplication with its transpose.

Function

CuviStatus matMulTrans(const CuviImage& A,
                       CuviImage& B,
                       bool trans = false,
                       const CuviStream& stream = CuviStream());

Parameters

Name Type Description
A CuviImage& Input Image
B CuviImage& Resultant Image
stream CuviStream& GPU stream ID for execution

Image Type Support

Input Output
32f single channel 32f single channel


Example

CuviSize aSize(3,3);

//Initialize input image
CuviImage A(aSize, CUVI_32FC1);

//Fill image with random values
cuvi::dataExchange::generateRandomImage(A);

CuviImage B;

//Perform matrix multiplication (A * A')
cuvi::arithmeticLogical::matMulTrans(A,B);

//The order of multiplication can be reversed to (A' * A)
cuvi::arithmeticLogical::matMulTrans(A,B,true);