GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
HPL_dtrsm(3) HPL Library Functions HPL_dtrsm(3)

HPL_dtrsm - B := A^{-1} * B or B := B * A^{-1}.

#include "hpl.h"

void HPL_dtrsm( const enum HPL_ORDER ORDER, const enum HPL_SIDE SIDE, const enum HPL_UPLO UPLO, const enum HPL_TRANS TRANS, const enum HPL_DIAG DIAG, const int M, const int N, const double ALPHA, const double * A, const int LDA, double * B, const int LDB );

HPL_dtrsm solves one of the matrix equations


op( A ) * X = alpha * B, or X * op( A ) = alpha * B,

where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op(A) is one of


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

The matrix X is overwritten on B.

No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.

On entry, ORDER specifies the storage format of the operands as follows:
ORDER = HplRowMajor,
ORDER = HplColumnMajor.
On entry, SIDE specifies whether op(A) appears on the left or right of X as follows:
SIDE==HplLeft op( A ) * X = alpha * B,
SIDE==HplRight X * op( A ) = alpha * B.
On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced. When UPLO==HplUpper, only the upper triangular part of A is to be referenced, otherwise only the lower triangular part of A is to be referenced.
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.
On entry, DIAG specifies whether A is unit triangular or not. When DIAG==HplUnit, A is assumed to be unit triangular, and otherwise, A is not assumed to be unit triangular.
On entry, M specifies the number of rows of the matrix B. M must be at least zero.
On entry, N specifies the number of columns of the matrix B. N must be at least zero.
On entry, ALPHA specifies the scalar alpha. When ALPHA is supplied as zero then the elements of the matrix B need not be set on input.
On entry, A points to an array of size equal to or greater than LDA * k, where k is m when SIDE==HplLeft and is n otherwise. Before entry with UPLO==HplUpper, the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. When UPLO==HplLower on entry, the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when DIAG==HplUnit, the diagonal elements of A not referenced either, but are assumed to be unity.

On entry, LDA specifies the leading dimension of A as declared in the calling (sub) program. LDA must be at least MAX(1,m) when SIDE==HplLeft, and MAX(1,n) otherwise.
On entry, B points to an array of size equal to or greater than LDB * n. Before entry, the leading m by n part of the array B must contain the matrix B, except when beta is zero, in which case B need not be set on entry. On exit, the array B is overwritten by the m by n solution matrix.
On entry, LDB specifies the leading dimension of B as declared in the calling (sub) program. LDB must be at least MAX(1,m).

#include "hpl.h"

int main(int argc, char *argv[])
{
double a[2*2], b[2*2];
a[0] = 4.0; a[1] = 1.0; a[2] = 2.0; a[3] = 5.0;
b[0] = 2.0; b[1] = 1.0; b[2] = 1.0; b[3] = 2.0;
HPL_dtrsm( HplColumnMajor, HplLeft, HplUpper,
HplNoTrans, HplNonUnit, 2, 2, 2.0,
a, 2, b, 2 );
printf(" [%f,%f]\n", b[0], b[2]);
printf("b=[%f,%f]\n", b[1], b[3]);
exit(0); return(0);
}

HPL_dgemm (3).

December 2, 2018 HPL 2.3

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.