anchor.diff:  
   
   
  -#if defined(PCREO_USE_MKL) .and. defined(PCREO_QUAD_PREC)
  +#if defined(PCREO_USE_MKL) && defined(PCREO_QUAD_PREC)
   #error "Intel MKL does not support quad-precision arithmetic."
   #endif
   
  
positive.code:     real(rk) function dot_product_2(v, w) result (dot)
          real(rk), intent(in), dimension(d + 1, num_points) :: v, w
  
  #if defined(PCREO_USE_MKL) .and. defined(PCREO_SINGLE_PREC)
          dot = sdot(num_vars, v, 1, w, 1)
  #elif defined(PCREO_USE_MKL) .and. defined(PCREO_DOUBLE_PREC)
          dot = ddot(num_vars, v, 1, w, 1)
  #else
          integer :: i, j
  
negative.code:         real(rk), intent(inout) :: A(d + 1, num_points, d + 1, num_points)
          real(rk), intent(in) :: c, x(d + 1, num_points), y(d + 1, num_points)
  
  #if defined(PCREO_USE_MKL) && defined(PCREO_SINGLE_PREC)
          call ssyr2('U', num_vars, c, x, 1, y, 1, A, num_vars)
  #elif defined(PCREO_USE_MKL) && defined(PCREO_DOUBLE_PREC)
          call dsyr2('U', num_vars, c, x, 1, y, 1, A, num_vars)
  #else
          integer :: i, j, k, l
  