NAME

clarzb - applie a complex block reflector H or its transpose H**H to a complex distributed M-by-N C from the left or the right


SYNOPSIS

  SUBROUTINE CLARZB( SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, 
 *      T, LDT, C, LDC, WORK, LDWORK)
  CHARACTER * 1 SIDE, TRANS, DIRECT, STOREV
  COMPLEX V(LDV,*), T(LDT,*), C(LDC,*), WORK(LDWORK,*)
  INTEGER M, N, K, L, LDV, LDT, LDC, LDWORK
  SUBROUTINE CLARZB_64( SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, 
 *      LDV, T, LDT, C, LDC, WORK, LDWORK)
  CHARACTER * 1 SIDE, TRANS, DIRECT, STOREV
  COMPLEX V(LDV,*), T(LDT,*), C(LDC,*), WORK(LDWORK,*)
  INTEGER*8 M, N, K, L, LDV, LDT, LDC, 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
  COMPLEX, DIMENSION(:,:) :: V, T, C, WORK
  INTEGER :: M, N, K, L, LDV, LDT, LDC, LDWORK
  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
  COMPLEX, DIMENSION(:,:) :: V, T, C, WORK
  INTEGER(8) :: M, N, K, L, LDV, LDT, LDC, LDWORK

C INTERFACE

#include <sunperf.h>

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

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


PURPOSE

clarzb applies a complex block reflector H or its transpose H**H to a complex 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