**Purpose**

To apply from the left the inverse of a balancing transformation, computed by the SLICOT Library routine MB4DPZ, to the complex matrix [ V1 ] [ ], [ sgn*V2 ] where sgn is either +1 or -1.

SUBROUTINE MB4DBZ( JOB, SGN, N, ILO, LSCALE, RSCALE, M, V1, LDV1, $ V2, LDV2, INFO ) C .. Scalar Arguments .. CHARACTER JOB, SGN INTEGER ILO, INFO, LDV1, LDV2, M, N C .. Array Arguments .. DOUBLE PRECISION LSCALE(*), RSCALE(*) COMPLEX*16 V1(LDV1,*), V2(LDV2,*)

**Mode Parameters**

JOB CHARACTER*1 Specifies the type of inverse transformation required: = 'N': do nothing, return immediately; = 'P': do inverse transformation for permutation only; = 'S': do inverse transformation for scaling only; = 'B': do inverse transformations for both permutation and scaling. JOB must be the same as the argument JOB supplied to MB4DPZ. SGN CHARACTER*1 Specifies the sign to use for V2: = 'P': sgn = +1; = 'N': sgn = -1.

N (input) INTEGER The number of rows of the matrices V1 and V2. N >= 0. ILO (input) INTEGER The integer ILO determined by MB4DPZ. 1 <= ILO <= N+1. LSCALE (input) DOUBLE PRECISION array, dimension (N) Details of the permutation and scaling factors applied from the left, as returned by MB4DPZ. RSCALE (input) DOUBLE PRECISION array, dimension (N) Details of the permutation and scaling factors applied from the right, as returned by MB4DPZ. M (input) INTEGER The number of columns of the matrices V1 and V2. M >= 0. V1 (input/output) COMPLEX*16 array, dimension (LDV1,M) On entry, the leading N-by-M part of this array must contain the matrix V1. On exit, the leading N-by-M part of this array is overwritten by the updated matrix V1 of the transformed matrix. LDV1 INTEGER The leading dimension of the array V1. LDV1 >= max(1,N). V2 (input/output) COMPLEX*16 array, dimension (LDV2,M) On entry, the leading N-by-M part of this array must contain the matrix V2. On exit, the leading N-by-M part of this array is overwritten by the updated matrix V2 of the transformed matrix. LDV2 INTEGER The leading dimension of the array V2. LDV2 >= max(1,N).

INFO INTEGER = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.

[1] Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D. LAPACK Users' Guide: Second Edition. SIAM, Philadelphia, 1995. [2] Benner, P. Symplectic balancing of Hamiltonian matrices. SIAM J. Sci. Comput., 22 (5), pp. 1885-1904, 2001.

None

**Program Text**

None

None

None