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;
  }
@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.