Purpose
  To convert the descriptor state-space system
  E*dx/dt = A*x + B*u
        y = C*x + D*u
  into regular state-space form
   dx/dt = Ad*x + Bd*u
       y = Cd*x + Dd*u .
Specification
      SUBROUTINE SB10JD( N, M, NP, A, LDA, B, LDB, C, LDC, D, LDD, E,
     $                   LDE, NSYS, DWORK, LDWORK, INFO )
C     .. Scalar Arguments ..
      INTEGER            INFO, LDA, LDB, LDC, LDD, LDE, LDWORK, M, N,
     $                   NP, NSYS
C     .. Array Arguments ..
      DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), C( LDC, * ),
     $                   D( LDD, * ), DWORK( * ),  E( LDE, * )
Arguments
Input/Output Parameters
  N       (input) INTEGER
          The order of the descriptor system.  N >= 0.
  M       (input) INTEGER
          The column size of the matrix B.  M >= 0.
  NP      (input) INTEGER
          The row size of the matrix C.  NP >= 0.
  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
          On entry, the leading N-by-N part of this array must
          contain the state matrix A of the descriptor system.
          On exit, the leading NSYS-by-NSYS part of this array
          contains the state matrix Ad of the converted system.
  LDA     INTEGER
          The leading dimension of the array A.  LDA >= max(1,N).
  B       (input/output) DOUBLE PRECISION array, dimension (LDB,M)
          On entry, the leading N-by-M part of this array must
          contain the input matrix B of the descriptor system.
          On exit, the leading NSYS-by-M part of this array
          contains the input matrix Bd of the converted system.
  LDB     INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).
  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
          On entry, the leading NP-by-N part of this array must
          contain the output matrix C of the descriptor system.
          On exit, the leading NP-by-NSYS part of this array
          contains the output matrix Cd of the converted system.
  LDC     INTEGER
          The leading dimension of the array C.  LDC >= max(1,NP).
  D       (input/output) DOUBLE PRECISION array, dimension (LDD,M)
          On entry, the leading NP-by-M part of this array must
          contain the matrix D of the descriptor system.
          On exit, the leading NP-by-M part of this array contains
          the matrix Dd of the converted system.
  LDD     INTEGER
          The leading dimension of the array D.  LDD >= max(1,NP).
  E       (input/output) DOUBLE PRECISION array, dimension (LDE,N)
          On entry, the leading N-by-N part of this array must
          contain the matrix E of the descriptor system.
          On exit, this array contains no useful information.
  LDE     INTEGER
          The leading dimension of the array E.  LDE >= max(1,N).
  NSYS    (output) INTEGER
          The order of the converted state-space system.
Workspace
  DWORK   DOUBLE PRECISION array, dimension (LDWORK)
          On exit, if INFO = 0, DWORK(1) contains the optimal value
          of LDWORK.
  LDWORK  INTEGER
          The dimension of the array DWORK.
          LDWORK >= max( 1, 2*N*N + 2*N + N*MAX( 5, N + M + NP ) ).
          For good performance, LDWORK must generally be larger.
Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          < 0:  if INFO = -i, the i-th argument had an illegal
                value;
          = 1:  the iteration for computing singular value
                decomposition did not converge.
Method
The routine performs the transformations described in [1].References
  [1] Chiang, R.Y. and Safonov, M.G.
      Robust Control Toolbox User's Guide.
      The MathWorks Inc., Natick, Mass., 1992.
Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None