NAME

dlarzb - applies a real block reflector H or its transpose H**T to a real distributed M-by-N C from the left or the right


SYNOPSIS

  SUBROUTINE DLARZB( SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, 
 *      T, LDT, C, LDC, WORK, LDWORK)
  CHARACTER * 1 SIDE, TRANS, DIRECT, STOREV
  INTEGER M, N, K, L, LDV, LDT, LDC, LDWORK
  DOUBLE PRECISION V(LDV,*), T(LDT,*), C(LDC,*), WORK(LDWORK,*)
  SUBROUTINE DLARZB_64( SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, 
 *      LDV, T, LDT, C, LDC, WORK, LDWORK)
  CHARACTER * 1 SIDE, TRANS, DIRECT, STOREV
  INTEGER*8 M, N, K, L, LDV, LDT, LDC, LDWORK
  DOUBLE PRECISION V(LDV,*), T(LDT,*), C(LDC,*), WORK(LDWORK,*)

F95 INTERFACE

  SUBROUTINE LARZB( SIDE, TRANS, DIRECT, STOREV, [M], [N], K, L, V, 
 *       [LDV], T, [LDT], C, [LDC], [WORK], [LDWORK])
  CHARACTER(LEN=1) :: SIDE, TRANS, DIRECT, STOREV
  INTEGER :: M, N, K, L, LDV, LDT, LDC, LDWORK
  REAL(8), DIMENSION(:,:) :: V, T, C, WORK
  SUBROUTINE LARZB_64( SIDE, TRANS, DIRECT, STOREV, [M], [N], K, L, V, 
 *       [LDV], T, [LDT], C, [LDC], [WORK], [LDWORK])
  CHARACTER(LEN=1) :: SIDE, TRANS, DIRECT, STOREV
  INTEGER(8) :: M, N, K, L, LDV, LDT, LDC, LDWORK
  REAL(8), DIMENSION(:,:) :: V, T, C, WORK

C INTERFACE

#include <sunperf.h>

void dlarzb(char side, char trans, char direct, char storev, int m, int n, int k, int l, double *v, int ldv, double *t, int ldt, double *c, int ldc, int ldwork);

void dlarzb_64(char side, char trans, char direct, char storev, long m, long n, long k, long l, double *v, long ldv, double *t, long ldt, double *c, long ldc, long ldwork);


PURPOSE

dlarzb applies a real block reflector H or its transpose H**T to a real distributed M-by-N C from the left or the right.

Currently, only STOREV = 'R' and DIRECT = 'B' are supported.


ARGUMENTS


FURTHER DETAILS

Based on contributions by

  A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA