### ML_DGEBAL – Balancing of a general real matrix

Block SymbolLicensing group: MATRIX

Function Description

The output references yA and ySCALE are always set to the corresponding input references uA
and uSCALE. If HLD = on then nothing is computed otherwise the LAPACK function DGEBAL is
called internally:

DGEBAL(sJOB, N, uA, LDA, ilo, ihi, uSCALE, info);

where parameters of DGEBAL are set in the following way:

- Integer input job is mapped to the string sJOB: $\left\{0,1\right\}\to \mathtt{\text{"N"}}$, $\left\{2\right\}\to \mathtt{\text{"P"}}$, $\left\{3\right\}\to \mathtt{\text{"S"}}$ and $\left\{4\right\}\to \mathtt{\text{"B"}}$.
- N is number of columns of the square matrix referenced by uA.
- LDA is the leading dimension of the matrix referenced by uA.
- ilo and ihi are returned low and high row and column indices of the balanced submatrix of the matrix referenced by uA.
- info is return code from the function DGEBAL.

The error flag E is set to on if:

- the reference uA or uSCALE is not defined (i.e. input uA or uSCALE is not connected),
- matrix referenced by uA is not square,
- number of elements of the vector referenced by uSCALE is less than N.
- the call of the function DGEBAL returns error using the function XERBLA, see the return code info and system log.

Emphasize that the indices ilo and ihi start from zero unlike FORTRAN version where they start from one. See LAPACK documentation [7] for more details.

Inputs

uA | Input reference to matrix A | Reference |

uSCALE | Input reference to vector SCALE | Reference |

job | Specifies the operations to be performed on matrix A $\downarrow $0 $\uparrow $4 $\odot $0.00E+00 | Long (I32) |

HLD | Hold | Bool |

Outputs

yA | Output reference to matrix A | Reference |

ySCALE | Output reference to vector SCALE | Reference |

ilo | Zero based low row and column index of working submatrix | Long (I32) |

ihi | Zero based high row and column index of working submatrix | Long (I32) |

E | Error indicator | Bool |

info | LAPACK function result info. If info = -i, the i=th argument had an illegal value | Long (I32) |

[Previous] [Back to top] [Up] [Next]

2020 © REX Controls s.r.o., www.rexygen.com