*
* $Id: hstelf.F,v 1.1.1.1 1996/01/16 17:07:48 mclareni Exp $
*
* $Log: hstelf.F,v $
* Revision 1.1.1.1  1996/01/16 17:07:48  mclareni
* First import
*
*
#include "hbook/pilot.h"
*CMZ :  4.10/05 21/02/89  16.14.54  by  Rene Brun
*-- Author :
#if !defined(CERNLIB_DOUBLE)
      FUNCTION HSTELF (ITYP,IDEG,X)
#endif
#if defined(CERNLIB_DOUBLE)
      DOUBLE PRECISION FUNCTION HSTELF (ITYP,IDEG,X)
#endif
*.==========>
*.      GIVES THE VALUE COMPUTED AT X OF A STANDARD
*.      ELEMENTARY FUNCTION (POLYNOMIAL) OF TYPE ITYP
*.      AND DEGREE IDEG
*.      ITYP = 0   MONOMIAL
*.             1   TCHEBYSHEV POLYNOMIAL
*.             2   LEGENDRE POLYNOMIAL
*.             3   SHIFTED TCHEBYSHEV POLYNOMIAL
*.             4   LAGUERRE POLYNOMIAL
*.             5   HERMITE POLYNOMIAL
*..=========> ( D.Lienart )
#if defined(CERNLIB_DOUBLE)
      DOUBLE PRECISION P0,P1,P2
#endif
*.___________________________________________
      P0=1
      I1=ITYP+1
      GOTO (10,20,30,40,50,60),I1
*
   10 P1=X
      DO 15 I=2,IDEG
         P2=P1*X
         P1=P2
   15 CONTINUE
      GOTO 70
*
   20 P1=X
      DO 25 I=2,IDEG
         P2=2.*X*P1-P0
         P0=P1
         P1=P2
   25 CONTINUE
      GOTO 70
*
   30 P1=X
      DO 35 I=2,IDEG
         P2=(2.*I-1.)/I*X*P1-(I-1.)/I*P0
         P0=P1
         P1=P2
   35 CONTINUE
      GOTO 70
*
   40 P1=2.*X-1.
      DO 45 I=2,IDEG
         P2=2.*(2.*X-1.)*P1-P0
         P0=P1
         P1=P2
   45 CONTINUE
      GOTO 70
*
   50 P1=1.-X
      DO 55 I=2,IDEG
         P2=(2.*I-1.-X)*P1-(I-1.)**2*P0
         P0=P1
         P1=P2
   55 CONTINUE
      GOTO 70
*
   60 P1=2.*X
      DO 65 I=2,IDEG
         P2=2.*X*P1-2.*(I-1.)*P0
         P0=P1
         P1=P2
   65 CONTINUE
*
   70 HSTELF=P1
      END