1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- *DECK INITS
- FUNCTION INITS (OS, NOS, ETA)
- C***BEGIN PROLOGUE INITS
- C***PURPOSE Determine the number of terms needed in an orthogonal
- C polynomial series so that it meets a specified accuracy.
- C***LIBRARY SLATEC (FNLIB)
- C***CATEGORY C3A2
- C***TYPE SINGLE PRECISION (INITS-S, INITDS-D)
- C***KEYWORDS CHEBYSHEV, FNLIB, INITIALIZE, ORTHOGONAL POLYNOMIAL,
- C ORTHOGONAL SERIES, SPECIAL FUNCTIONS
- C***AUTHOR Fullerton, W., (LANL)
- C***DESCRIPTION
- C
- C Initialize the orthogonal series, represented by the array OS, so
- C that INITS is the number of terms needed to insure the error is no
- C larger than ETA. Ordinarily, ETA will be chosen to be one-tenth
- C machine precision.
- C
- C Input Arguments --
- C OS single precision array of NOS coefficients in an orthogonal
- C series.
- C NOS number of coefficients in OS.
- C ETA single precision scalar containing requested accuracy of
- C series.
- C
- C***REFERENCES (NONE)
- C***ROUTINES CALLED XERMSG
- C***REVISION HISTORY (YYMMDD)
- C 770401 DATE WRITTEN
- C 890831 Modified array declarations. (WRB)
- C 891115 Modified error message. (WRB)
- C 891115 REVISION DATE from Version 3.2
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
- C***END PROLOGUE INITS
- REAL OS(*)
- C***FIRST EXECUTABLE STATEMENT INITS
- IF (NOS .LT. 1) CALL XERMSG ('SLATEC', 'INITS',
- + 'Number of coefficients is less than 1', 2, 1)
- C
- ERR = 0.
- DO 10 II = 1,NOS
- I = NOS + 1 - II
- ERR = ERR + ABS(OS(I))
- IF (ERR.GT.ETA) GO TO 20
- 10 CONTINUE
- C
- 20 IF (I .EQ. NOS) CALL XERMSG ('SLATEC', 'INITS',
- + 'Chebyshev series too short for specified accuracy', 1, 1)
- INITS = I
- C
- RETURN
- END
|