anchor.diff:  #ifdef ROUND_ZERO
     real(kind=real64) pure function acos_rz(x)
       use, intrinsic :: iso_fortran_env, only : real64
  +    use numerical_constants, only : pi, pi2
       real(kind=real64), intent(in) :: x
       if(x /= x) then ! Check if NaN
         acos_rz=x
       elseif(abs(x) == 0.0d0) then
  -      acos_rz=mb_pi2
  +      acos_rz=pi2
       else
         acos_rz=atan_rz(sqrt((1.0d0-x)*(1.0d0+x))/x)
         if(x < 0d0) then
  -        acos_rz=mb_pi+acos_rz
  +        acos_rz=pi+acos_rz
         end if
       end if
     end function acos_rz
   
     real(kind=real64) pure function asin_rz(x)
       use, intrinsic :: iso_fortran_env, only : real64
  +    use numerical_constants, only : pi, pi2
       real(kind=real64), intent(in) :: x
       if(x /= x) then ! Check if NaN
         asin_rz=x
         return
       end if
       if(abs(x) == 1.0d0) then
  -      asin_rz=sign(mb_pi2,x)
  +      asin_rz=sign(pi2,x)
       else
         asin_rz=atan_rz(x/sqrt((1.0d0-x)*(1.0d0+x)))
       end if
  
positive.code:   public :: sin_mb, asin_mb, sinh_mb, cos_mb, acos_mb, cosh_mb
    public :: tan_mb, atan_mb, atan2_mb, exp_mb, log_mb, log10_mb, isnan_mb
  
    real(kind=fPrec), parameter :: mb_pi   = 3.141592653589793238462643383279502884197169399375105820974_fPrec
    real(kind=fPrec), parameter :: mb_pi2  = 1.570796326794896619231321691639751442098584699687552910487_fPrec
  
    ! For linking with CRLIBM
  #ifdef CRLIBM
  #ifdef ROUND_NEAR
  
negative.code:           ! Let the internal atan2 handle this case according to ieee
            atan2_ru=atan2(y,x)
          else
            atan2_ru=pi
          end if
        else
          atan2_ru=atan_ru(y/x)
          if(x < 0d0) then
            atan2_ru=sign(pi,y)+atan2_ru
          end if
        end if
      end if
  