anchor.diff:  #error "Intel MKL does not support quad-precision arithmetic."
   #endif
   
  -#ifdef PCREO_GRAD_DESC
  +#if defined(PCREO_GRAD_DESC)
   #undef PCREO_BFGS
   #else
   #define PCREO_BFGS
  +#endif
  +
  +#if defined(PCREO_SINGLE_PREC) .or. defined(PCREO_QUAD_PREC)
  +#undef PCREO_DOUBLE_PREC
  +#else
  +#define PCREO_DOUBLE_PREC
   #endif
   
   
  
positive.code:     call print_table_header
      call print_optimization_status
  
      do
  #if defined(PCREO_GRAD_DESC)
  
          step_size = quadratic_line_search(points, energy, force, step_size)
          call check_step_size
          points = points + step_size * force
  
negative.code:         points = new_points
          energy = new_energy
          force = new_force
  #ifdef PCREO_TRACK_ANGLE
          call matrix_multiply_42(new_step_direction, inv_hess, force)
          if (iteration_count > 0) then
              step_angle = sum(step_direction * new_step_direction) / &
                      & (norm2(step_direction) * norm2(new_step_direction))
          end if
          step_direction = new_step_direction
  #else
          call matrix_multiply_42(step_direction, inv_hess, force)
  #endif
          call finish_iteration
      end do
  
  #endif
  
  
  contains
  
  