code 35113; real procedure TANH(X); value X; real X; begin real AX; AX:= ABS(X); if AX < 0.005 then begin real Y; Y:= X*X; TANH:= X * ( 1 - Y * (.33333333333333 - Y * (.13333333333333 - Y * .05396825396825 ))) end else if AX < 0.3 then begin real SH; SH:= SINH(X); TANH:= SH/SQRT(1+SH*SH) end else if AX > 17.5 then TANH:= SIGN(X) else begin AX:= EXP(-2*AX); TANH:= SIGN(X)*(1-AX)/(1+AX) end end eop