separate( Test_Log_Family ) function AtanhMx_Taylor( R : Float_Type ) return Float_Type is AtanhMx_Taylor_Coeff : constant array ( Int_Type range 1..10 ) of Float_Type :=( 1.0/3.0, 1.0/5.0, 1.0/7.0, 1.0/9.0, 1.0/11.0, 1.0/13.0, 1.0/15.0, 1.0/17.0, 1.0/19.0, 1.0/21.0 ); Taylor, Rsq : Float_Type; begin Taylor := AtanhMx_Taylor_Coeff( N_Taylor_AtanhMx ); Rsq := R * R; for I in reverse 1..N_Taylor_AtanhMx-1 loop Taylor := Taylor * Rsq + AtanhMx_Taylor_Coeff( I ); end loop; Taylor := R * Rsq * Taylor; return (Taylor); end AtanhMX_Taylor;