Options
All
  • Public
  • Public/Protected
  • All
Menu

Integrates a vector or scalar function of vector domain.

A template recursion along dimensions avoids calling depth test or virtual functions.

todo

Add coherence test between the integrand function dimensions (the vector size) and the declared dimension in the constructor.

todo

Split into integrator classes for functions returning scalar and vector?

Hierarchy

  • GaussianQuadMultidimIntegrator

Index

Constructors

constructor

  • Parameters

    • dimension: Size

      The number of dimensions of the argument of the function we want to integrate.

    • quadOrder: Size

      Quadrature order.

    • Default value mu: Real = 0

      Parameter in the Gauss Hermite weight (i.e. points load).

    Returns GaussianQuadMultidimIntegrator

Properties

Private _dimension

_dimension: Size

Private _integral

Private _integralV

_integralV: VectorIntegrator

Private _integrationEntries

_integrationEntries: Array<BinaryFunction<UnaryFunction<Real[], Real>, Real, Real>>

Private _integrationEntriesVR

_integrationEntriesVR: Array<BinaryFunction<UnaryFunction<Real[], Real[]>, Real, Real[]>>

Private _varBuffer

_varBuffer: Real[]

Methods

f1

f2

  • Integrates function f over $ R^{dim} $

    This function is just syntax since the only thing it does is calling to integrate which has to exist for the type returned by the function. So theres one redundant call but there should not be any extra cost... up to the compiler. It can not be templated all the way since the integration entries functions can not be templates. Most times integrands will return a scalar or vector but could be a matrix too. Also vectors might be returned as vector or Disposable wrapped (which is preferred and I have removed the plain vector version).

    Parameters

    Returns Real[]

integrate1

integrate2

order

  • Returns Size

scalarIntegrator

spawnFcts

  • spawnFcts(levelSpawn: Size): void
  • Parameters

    Returns void

vectorIntegratorVR