anchor.diff:  #include "mkl_blas.fi"
   #endif
   
  -#if defined(PCREO_QUAD_PREC)
  +#if defined(PCREO_SINGLE_PREC)
  +    integer, parameter :: rk = real32
  +    character(len=8), parameter :: rf = 'ES15.8E2'
  +#elif defined(PCREO_DOUBLE_PREC)
  +    integer, parameter :: rk = real64
  +    character(len=9), parameter :: rf = 'ES24.16E3'
  +#elif defined(PCREO_QUAD_PREC)
       integer, parameter :: rk = real128
       character(len=9), parameter :: rf = 'ES44.35E4'
  -#elif defined(PCREO_SINGLE_PREC)
  -    integer, parameter :: rk = real32
  -    character(len=8), parameter :: rf = 'ES15.8E2'
  -#else
  -    integer, parameter :: rk = real64
  -    character(len=9), parameter :: rf = 'ES24.16E3'
   #endif
   
       real(rk), parameter :: s = 2.0_rk
  
positive.code:     real(rk) function dot_product_2(v, w) result (dot)
          real(rk), intent(in), dimension(d + 1, num_points) :: v, w
  
  #ifdef PCREO_USE_MKL
  #ifdef PCREO_SINGLE_PREC
          dot = sdot(num_vars, v, 1, w, 1)
  #else
          dot = ddot(num_vars, v, 1, w, 1)
  #endif
  #else
          integer :: i, j
  
  
negative.code:         real(rk), intent(in) :: A(d + 1, num_points, d + 1, num_points)
          real(rk), intent(in) :: b(d + 1, num_points)
  
  #if defined(PCREO_USE_MKL) .and. defined(PCREO_SINGLE_PREC)
          call ssymv('U', num_vars, -1.0_rk, A, num_vars, b, 1, 0.0_rk, c, 1)
  #elif defined(PCREO_USE_MKL) .and. defined(PCREO_DOUBLE_PREC)
          call dsymv('U', num_vars, -1.0_rk, A, num_vars, b, 1, 0.0_rk, c, 1)
  #else
          integer :: i, j, k, l
  
  