separate( Test_Log_Family ) function Atanh_Taylor( R : Float_Type ) return Float_Type is Atanh_Taylor_Coeff : constant array ( Int_Type range 1..5 ) of Float_Type :=( 1.0/3.0, 1.0/5.0, 1.0/7.0, 1.0/9.0, 1.0/11.0 ); Taylor, Rsq : Float_Type; begin Taylor := Atanh_Taylor_Coeff( N_Taylor_Atanh ); Rsq := R * R; for I in reverse 1..N_Taylor_Atanh-1 loop Taylor := Taylor * Rsq + Atanh_Taylor_Coeff( I ); end loop; Taylor := R + R * Rsq * Taylor; return (Taylor); end Atanh_Taylor;