HPL_dgemm man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

HPL_dgemm(3)		     HPL Library Functions		  HPL_dgemm(3)

NAME
       HPL_dgemm - C := alpha * op(A) * op(B) + beta * C.

SYNOPSIS
       #include "hpl.h"

       void  HPL_dgemm(	 const	enum  HPL_ORDER	 ORDER,	 const	enum HPL_TRANS
       TRANSA, const enum HPL_TRANS TRANSB, const int M, const	int  N,	 const
       int  K, const double ALPHA, const double * A, const int LDA, const dou‐
       ble * B, const int LDB, const double BETA, double * C, const int LDC );

DESCRIPTION
       HPL_dgemm performs one of the matrix-matrix operations

	   C := alpha * op( A ) * op( B ) + beta * C

	where op( X ) is one of

	   op( X ) = X	 or   op( X ) = X^T.

       Alpha and beta are scalars,  and A,  B and C are matrices,  with	 op(A)
       an m by k matrix, op(B) a k by n matrix and  C an m by n matrix.

ARGUMENTS
       ORDER   (local input)	       const enum HPL_ORDER
	       On  entry,  ORDER  specifies the storage format of the operands
	       as follows:
		  ORDER = HplRowMajor,
		  ORDER = HplColumnMajor.

       TRANSA  (local input)	       const enum HPL_TRANS
	       On entry, TRANSA	 specifies the form of	op(A)  to be  used  in
	       the matrix-matrix operation follows:
		  TRANSA==HplNoTrans	: op( A ) = A,
		  TRANSA==HplTrans	: op( A ) = A^T,
		  TRANSA==HplConjTrans	: op( A ) = A^T.

       TRANSB  (local input)	       const enum HPL_TRANS
	       On  entry,  TRANSB  specifies the form of  op(B)	 to be used in
	       the matrix-matrix operation follows:
		  TRANSB==HplNoTrans	: op( B ) = B,
		  TRANSB==HplTrans	: op( B ) = B^T,
		  TRANSB==HplConjTrans	: op( B ) = B^T.

       M       (local input)	       const int
	       On entry,  M  specifies	the  number  of rows  of  the	matrix
	       op(A)  and  of  the  matrix  C.	M  must	 be  at least  zero.

       N       (local input)	       const int
	       On  entry,   N  specifies  the number  of columns of the matrix
	       op(B)  and  the number of columns of the matrix	C. N  must  be
	       at least zero.

       K       (local input)	       const int
	       On  entry,   K  specifies  the  number of columns of the matrix
	       op(A) and the number of rows of the matrix op(B).  K   must  be
	       be at least  zero.

       ALPHA   (local input)	       const double
	       On  entry,  ALPHA specifies the scalar alpha.   When  ALPHA  is
	       supplied	 as  zero  then the elements of the matrices A	and  B
	       need not be set on input.

       A       (local input)	       const double *
	       On entry,  A  is an array of dimension (LDA,ka),	 where ka is k
	       when   TRANSA==HplNoTrans,   and	  is   m   otherwise.	Before
	       entry   with   TRANSA==HplNoTrans, the  leading	m by k part of
	       the array  A must contain the matrix A, otherwise the leading k
	       by  m  part of the array	 A  must  contain the  matrix  A.

       LDA     (local input)	       const int
	       On  entry,  LDA	specifies the first dimension of A as declared
	       in the  calling (sub) program. When   TRANSA==HplNoTrans	  then
	       LDA  must  be at least max(1,m), otherwise LDA must be at least
	       max(1,k).

       B       (local input)	       const double *
	       On entry, B is an array of dimension (LDB,kb),  where  kb  is n
	       when  TRANSB==HplNoTrans, and  is  k  otherwise.	  Before entry
	       with TRANSB==HplNoTrans,	 the  leading  k by  n	 part  of  the
	       array  B must contain the matrix B, otherwise the leading n  by
	       k  part of the array  B	must  contain  the matrix  B.

       LDB     (local input)	       const int
	       On entry, LDB  specifies the first dimension of B  as  declared
	       in  the	 calling (sub) program. When  TRANSB==HplNoTrans  then
	       LDB must be at least max(1,k), otherwise LDB must be  at	 least
	       max(1,n).

       BETA    (local input)	       const double
	       On  entry,   BETA  specifies the scalar	beta.	When  BETA  is
	       supplied	 as  zero  then	 the  elements of the matrix  C	  need
	       not be set on input.

       C       (local input/output)    double *
	       On  entry,   C  is an array of dimension (LDC,n). Before entry,
	       the  leading m by n part	 of  the  array	 C  must  contain  the
	       matrix  C,   except when beta is zero, in which case C need not
	       be set on entry. On exit, the array  C  is overwritten by the m
	       by n  matrix ( alpha*op( A )*op( B ) + beta*C ).

       LDC     (local input)	       const int
	       On  entry,  LDC	specifies the first dimension of C as declared
	       in  the	 calling  (sub)	 program.   LDC	 must  be   at	 least
	       max(1,m).

EXAMPLE
       #include "hpl.h"

       int main(int argc, char *argv[])
       {
	  double a[2*2], b[2*2], c[2*2];
	  a[0] = 1.0; a[1] = 2.0; a[2] = 3.0; a[3] = 3.0;
	  b[0] = 2.0; b[1] = 1.0; b[2] = 1.0; b[3] = 2.0;
	  c[0] = 4.0; c[1] = 3.0; c[2] = 2.0; c[3] = 1.0;
	  HPL_dgemm( HplColumnMajor, HplNoTrans, HplNoTrans,
		     2, 2, 2, 2.0, a, 2, b, 2, -1.0, c, 2 );
	  printf("  [%f,%f]\n", c[0], c[2]);
	  printf("c=[%f,%f]\n", c[1], c[3]);
	  exit(0); return(0);
       }

SEE ALSO
       HPL_dtrsm (3).

HPL 2.1			       October 26, 2012			  HPL_dgemm(3)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net