ZEROIN
SUBROUTINE ZEROIN(F,B,C,RE,AE,IFLAG)
C
C SANDIA MATHEMATICAL PROGRAM LIBRARY
C MATHEMATICAL COMPUTING SERVICES DIVISION 5422
C SANDIA LABORATORIES
C P. O. BOX 5800
C ALBUQUERQUE, NEW MEXICO 87115
C CONTROL DATA 6600 VERSION 4.5, 1 NOVEMBER 1971
C
C MODIFIED TO RUN AT NBS BY D. KAHANER DIV 713
C
C ABSTRACT
C ZEROIN SEARCHES FOR A ZERO OF A FUNCTION F(X) BETWEEN
C THE GIVEN VALUES B AND C UNTIL THE WIDTH OF THE INTERVAL
C (B,C) HAS COLLAPSED TO WITHIN A TOLERANCE SPECIFIED BY
C THE STOPPING CRITERION, ABS(B-C) .LE. 2.*(RW*ABS(B)+AE).
C
C DESCRIPTION OF ARGUMENTS
C F - NAME OF THE REAL VALUED EXTERNAL FUNCTION. THIS NAME
C MUST BE IN AN EXTERNAL STATEMENT IN THE CALLING
C PROGRAM. F MUST BE A FUNCTION OF ONE REAL ARGUMENT.
C B - ONE END OF THE INTERVAL (B,C). THE VALUE RETURNED FOR
C B USUALLY IS THE BETTER APPROXIMATION TO A ZERO OF F.
C C - THE OTHER END OF THE INTERVAL (B,C)
C RE - RELATIVE ERROR USED FOR RW IN THE STOPPING CRITERION.
C IF THE REQUESTED RE IS LESS THAN MACHINE PRECISION,
C THEN RW IS SET TO APPROXIMATELY MACHINE PRECISION.
C AE - ABSOLUTE ERROR USED IN THE STOPPING CRITERION. IF THE
C GIVEN INTERVAL (B,C) CONTAINS THE ORIGIN, THEN A
C NONZERO VALUE SHOULD BE CHOSEN FOR AE.
C IFLAG - RETURNS A STATUS OF THE RESULTS INDICATING WHICH
C OF THE FOLLOWING CONDITIONS HOLD.
C A - ABS(B-C) .LE. 2.*(RW*ABS(B)+AE)
C B - F(B) * F(C) .LT. 0.
C C - ABS(F(B)) .LE. ABS(F(C))
C D - ABS(F(B )) .LE. MAX(ABS(F(B )),ABS(F(C )))
C OUT IN IN
C E - NUMBER OF EVALUATIONS OF F(X) .LE. 500
C =1 INDICATES NORMAL CASE. ALL CONDITIONS ABOVE HOLD.
C =2 INDICATES F(B) = 0. CONDITION A MAY NOT HOLD.
C =3 INDICATES CONDITIONS A, B, C, AND E HOLD BUT D DOES
C NOT. (B,C) PROBABLY CONTAINS A SINGULAR POINT OF F.
C =4 INDICATES CONDITIONS A AND E HOLD BUT B DOES NOT.
C A LOCAL MINIMUM OF F(X) IN (B,C) MAY HAVE BEEN FOUND.
C =5 INDICATES SEARCH WAS ABORTED WHEN CONDITION E FAILED.
C
C REFERENCES
C 1. L F SHAMPINE AND H A WATTS, ZEROIN, A ROOT-SOLVING CODE,
C SC-TM-70-631, SEPT 1970.
C 2. T J DEKKER, FINDING A ZERO BY MEANS OF SUCCESSIVE LINEAR
C INTERPOLATION, *CONSTRUCTIVE ASPECTS OF THE FUNDAMENTAL
C THEOREM OF ALGEBRA*, EDITED BY B DEJON AND P HENRICI, 1969.
C