lib/integral.js
function IntegrationContext(variable, options) {
    this.variable = variable.clone();
    this.options = options;

    this._constantExpr = {};
    this.subIntegral = {};

    this.rules = options.rules;

    this.debugIndent = 0;
  }
function IntegrationContext(variable, options) {
    this.variable = variable.clone();
    this.options = options;

    this._constantExpr = {};
    this.subIntegral = {};

    this.rules = options.rules;

    this.debugIndent = 0;
  }
function IntegrationContext ( variable , options ) { this . variable = variable . clone ( ) ; this . options = options ; this . _constantExpr = { } ; this . subIntegral = { } ; this . rules = options . rules ; this . debugIndent = 0 ; }
@constructor IntegrationContext

Encapsulates an integration context, including the following: the variable
of integration; a memoizing isConstant function (to determine if a given
expression is constant relative to the variable of integration); and a lookup
table for already computed subintegrals.

@param {SymbolNode} variable The variable of integration.
@param {Object} options The integration options object.
@constructor IntegrationContext