anchor.diff:          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) .and. defined(PCREO_SINGLE_PREC)
  +#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) .and. defined(PCREO_DOUBLE_PREC)
  +#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
  
positive.code: 
  
  
  #if defined(PCREO_USE_MKL) .and. defined(PCREO_QUAD_PREC)
  #error "Intel MKL does not support quad-precision arithmetic."
  #endif
  
  
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) && 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) && 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
  