---
name: "quadrature_option"
section: "2rheolef"
platform: "linux"
package: "librheolef-dev"
version: "7.0-2+b1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/quadrature_option"
---

# quadrature\_option(2rheolef)

send options to the integrate function

## NAME

**quadrature\_option** - send options to the integrate function

## SYNOPSIS

The **quadrature\_option** class is used to send options to the **integrate** function see integrate(4). This class allows one 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 {
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(
        family_type ft = quadrature_option::gauss,
        size_type k = std::numeric_limits<size_type>::max());
  quadrature_option (const quadrature_option& qopt);
  quadrature_option& operator= (const quadrature_option& 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;
};

```

## SEE ALSO

integrate(4), quadrature(2)

## COPYRIGHT

Copyright (C) 2000-2018 Pierre Saramito \<Pierre.Saramito@imag.fr\> GPLv3+: GNU GPL version 3 or later \<http://gnu.org/licenses/gpl.html\>. This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.
