quadrature_option_type(2) send options to the integrate function

SYNOPSYS

The quadrature_option_type class is used to send options to the integrate function see integrate(4). This class allows to set the family (Gauss, Gauss-Lobatto, etc) and the polynomial degree that is exactly integrated.

A special family name, call equispaced, refers to an equispaced set of point, suitable for some irregular functions, e.g. the Heaviside function. In that case, the order parameter refers to the number of nodes used. For instance, order=1 refers to the trapezoidal formulae and for the general case, there are order+1 nodes per edges. See also the see quadrature(2) for more on quadrature formulae.

IMPLEMENTATION

class quadrature_option_type {
public:
// typedefs:
  typedef size_t size_type;
  typedef enum {
        gauss           = 0,
        gauss_lobatto   = 1,
        gauss_radau     = 2,
        middle_edge     = 3,
        superconvergent = 4,
        equispaced      = 5,
        max_family      = 6
  } family_type; // update also family_name[] in quatrature.cc
// allocators:
  quadrature_option_type(
        family_type ft = quadrature_option_type::gauss,
        size_type k = std::numeric_limits<size_type>::max());
  quadrature_option_type (const quadrature_option_type& qopt);
  quadrature_option_type& operator= (const quadrature_option_type& qopt);
// accessors & modifiers:
  size_t         get_order() const;
  family_type    get_family() const;
  std::string    get_family_name() const;
  void set_order (size_t r);
  void set_family (family_type type);
  void set_family (std::string name);
// data:
protected:
  family_type   _family;
  size_t        _order;
};