## TB04BW

### Sum of a rational matrix and a real matrix

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

      To compute the sum of an P-by-M rational matrix G and a real
      P-by-M matrix D.

Specification

          SUBROUTINE TB04BW( ORDER, P, M, MD, IGN, LDIGN, IGD, LDIGD, GN,
         $                   GD, D, LDD, INFO )
    C     .. Scalar Arguments ..
          CHARACTER          ORDER
          INTEGER            INFO, LDD, LDIGD, LDIGN, M, MD, P
    C     .. Array Arguments ..
          DOUBLE PRECISION   D(LDD,*), GD(*), GN(*)
          INTEGER            IGD(LDIGD,*), IGN(LDIGN,*)

Arguments

Mode Parameters

      ORDER   CHARACTER*1
              Specifies the order in which the polynomial coefficients
              of the rational matrix are stored, as follows:
              = 'I':  Increasing order of powers of the indeterminate;
              = 'D':  Decreasing order of powers of the indeterminate.

Input/Output Parameters

      P       (input) INTEGER
              The number of the system outputs.  P >= 0.

      M       (input) INTEGER
              The number of the system inputs.  M >= 0.

      MD      (input) INTEGER
              The maximum degree of the polynomials in G, plus 1, i.e.,
              MD = MAX(IGN(I,J),IGD(I,J)) + 1.
                   I,J

      IGN     (input/output) INTEGER array, dimension (LDIGN,M)
              On entry, the leading P-by-M part of this array must
              contain the degrees of the numerator polynomials in G:
              the (i,j) element of IGN must contain the degree of the
              numerator polynomial of the polynomial ratio G(i,j).
              On exit, the leading P-by-M part of this array contains
              the degrees of the numerator polynomials in G + D.

      LDIGN   INTEGER
              The leading dimension of array IGN.  LDIGN >= max(1,P).

      IGD     (input) INTEGER array, dimension (LDIGD,M)
              The leading P-by-M part of this array must contain the
              degrees of the denominator polynomials in G (and G + D):
              the (i,j) element of IGD contains the degree of the
              denominator polynomial of the polynomial ratio G(i,j).

      LDIGD   INTEGER
              The leading dimension of array IGD.  LDIGD >= max(1,P).

      GN      (input/output) DOUBLE PRECISION array, dimension (P*M*MD)
              On entry, this array must contain the coefficients of the
              numerator polynomials, Num(i,j), of the rational matrix G.
              The polynomials are stored in a column-wise order, i.e.,
              Num(1,1), Num(2,1), ..., Num(P,1), Num(1,2), Num(2,2),
              ..., Num(P,2), ..., Num(1,M), Num(2,M), ..., Num(P,M);
              MD memory locations are reserved for each polynomial,
              hence, the (i,j) polynomial is stored starting from the
              location ((j-1)*P+i-1)*MD+1. The coefficients appear in
              increasing or decreasing order of the powers of the
              indeterminate, according to ORDER.
              On exit, this array contains the coefficients of the
              numerator polynomials of the rational matrix G + D,
              stored similarly.

      GD      (input) DOUBLE PRECISION array, dimension (P*M*MD)
              This array must contain the coefficients of the
              denominator polynomials, Den(i,j), of the rational
              matrix G. The polynomials are stored as for the
              numerator polynomials.

      D       (input) DOUBLE PRECISION array, dimension (LDD,M)
              The leading P-by-M part of this array must contain the
              matrix D.

      LDD     INTEGER
              The leading dimension of array D.  LDD >= max(1,P).

Error Indicator

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

Method

      The (i,j) entry of the real matrix D is added to the (i,j) entry
      of the matrix G, g(i,j), which is a ratio of two polynomials,
      for i = 1 : P, and for j = 1 : M. If g(i,j) = 0, it is assumed
      that its denominator is 1.

Numerical Aspects

      The algorithm is numerically stable.

Further Comments

      Often, the rational matrix G is found from a state-space
      representation (A,B,C), and D corresponds to the direct
      feedthrough matrix of the system. The sum G + D gives the
      transfer function matrix of the system (A,B,C,D).
      For maximum efficiency of index calculations, GN and GD are
      implemented as one-dimensional arrays.

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index