Trailing-Edge
-
PDP-10 Archives
-
decuslib10-02
-
43,50145/dprqd.doc
There are 2 other files named dprqd.doc in the archive. Click here to see a list.
SUBROUTINE DPRQD
PURPOSE
CALCULATE ALL REAL AND COMPLEX ROOTS OF A GIVEN POLYNOMIAL
WITH REAL COEFFICIENTS.
USAGE
CALL DPRQD(C,IC,Q,E,POL,IR,IER)
DESCRIPTION OF PARAMETERS
C - COEFFICIENT VECTOR OF GIVEN POLYNOMIAL
COEFFICIENTS ARE ORDERED FROM LOW TO HIGH
THE GIVEN COEFFICIENT VECTOR GETS DIVIDED BY THE
LAST NONZERO TERM
DOUBLE PRECISION ARRAY
IC - DIMENSION OF VECTOR C
Q - WORKING STORAGE OF DIMENSION IC
ON RETURN Q CONTAINS REAL PARTS OF ROOTS
DOUBLE PRECISION ARRAY
E - WORKING STORAGE OF DIMENSION IC
ON RETURN E CONTAINS COMPLEX PARTS OF ROOTS
DOUBLE PRECISION ARRAY
POL - WORKING STORAGE OF DIMENSION IC
ON RETURN POL CONTAINS THE COEFFICIENTS OF THE
POLYNOMIAL WITH CALCULATED ROOTS
THIS RESULTING COEFFICIENT VECTOR HAS DIMENSION IR+1
COEFFICIENTS ARE ORDERED FROM LOW TO HIGH
DOUBLE PRECISION ARRAY
IR - NUMBER OF CALCULATED ROOTS
NORMALLY IR IS EQUAL TO DIMENSION IC MINUS ONE
IER - RESULTING ERROR PARAMETER. SEE REMARKS
REMARKS
THE REAL PART OF THE ROOTS IS STORED IN Q(1) UP TO Q(IR)
CORRESPONDING COMPLEX PARTS ARE STORED IN E(1) UP TO E(IR).
IER = 0 MEANS NO ERRORS
IER = 1 MEANS NO CONVERGENCE WITH FEASIBLE TOLERANCE
IER = 2 MEANS POLYNOMIAL IS DEGENERATE (CONSTANT OR ZERO)
IER = 3 MEANS SUBROUTINE WAS ABANDONED DUE TO ZERO DIVISOR
IER = 4 MEANS THERE EXISTS NO S-FRACTION
IER =-1 MEANS CALCULATED COEFFICIENT VECTOR REVEALS POOR
ACCURACY OF THE CALCULATED ROOTS.
THE CALCULATED COEFFICIENT VECTOR HAS LESS THAN
6 CORRECT DIGITS.
THE FINAL COMPARISON BETWEEN GIVEN AND CALCULATED
COEFFICIENT VECTOR IS PERFORMED ONLY IF ALL ROOTS HAVE BEEN
CALCULATED.
THE MAXIMAL RELATIVE ERROR OF THE COEFFICIENT VECTOR IS
RECORDED IN Q(IR+1).
SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
NONE
METHOD
THE ROOTS OF THE POLYNOMIAL ARE CALCULATED BY MEANS OF
THE QUOTIENT-DIFFERENCE ALGORITHM WITH DISPLACEMENT.
REFERENCE
H.RUTISHAUSER, DER QUOTIENTEN-DIFFERENZEN-ALGORITHMUS,
BIRKHAEUSER, BASEL/STUTTGART, 1957.