Skip to content

Overview

Symbolica documentation for getting started, symbolic expressions, numerical evaluation, pattern matching, and APIs in Python and Rust.

Exact integration

Exact definite integration using hyperlogarithms.

integrate uses hyperlogarithms over [0, +infinity), in variable order; integrate_over accepts explicit directed intervals. Symbolica's Expression.integrate(x) continues to compute an antiderivative.

Browser execution is serial, including when parallel=True. HEPkit's existing native IBP tools are available separately through hepkit.ibp.

Classes

AlgebraError Failure of an exact algebra operation.
AlgebraicLetter Immutable metadata for one formal quadratic-root pair allocated by an integration.
ContextError
DivergentIntegralError
DuplicateVariableError
InputError Invalid expression, integration-variable schedule, or options.
IntegrationError Base class for errors raised by Hyperbolica.
IntegrationOptions Options controlling exact hyperlogarithm integration
IntegrationResult An inspectable exact integration result
PreparedIntegral A lowered Atom input that can be integrated repeatedly without repeating Symbolica-to-ring and Hlog conversion
UnsupportedFeatureError The requested integration feature is unavailable for this input.

Functions

integrate Integrate a Symbolica expression over [0, infinity) in variable order.
integrate_detailed Integrate and return an inspectable exact result.
integrate_detailed_over Integrate over arbitrary directed intervals and retain exact metadata
integrate_over Integrate over arbitrary directed intervals in variable order.
mzv_symbol Return the registered multiple-zeta-value function symbol
prepare Lower a Symbolica expression once for repeated integrations or option sweeps

integrate

integrate(
    expression: Expression,
    variables: typing.Sequence[Expression],
    options: typing.Optional[IntegrationOptions] = None,
) -> Expression

Integrate a Symbolica expression over [0, infinity) in variable order.

Parameters

  • expression A native symbolica.Expression from the shipped Symbolica kernel. It is never converted to text.
  • variables Plain Symbolica symbols in integration order.
  • options Optional IntegrationOptions.

Returns

  • symbolica.Expression The normalized exact result.

integrate_detailed

integrate_detailed(
    expression: Expression,
    variables: typing.Sequence[Expression],
    options: typing.Optional[IntegrationOptions] = None,
) -> IntegrationResult

Integrate and return an inspectable exact result.

Parameters

  • expression A native symbolica.Expression from the shipped Symbolica kernel.
  • variables Plain shipped Symbolica symbols in integration order.
  • options Optional IntegrationOptions.

Returns

  • IntegrationResult The returned IntegrationResult retains variables, indeterminates, algebraic-letter metadata, and the collected term count in addition to its expression.

integrate_detailed_over

integrate_detailed_over(
    expression: Expression,
    variables: typing.Sequence[Expression],
    intervals: typing.Sequence[tuple[Expression, Expression]],
    options: typing.Optional[IntegrationOptions] = None,
) -> IntegrationResult

Integrate over arbitrary directed intervals and retain exact metadata.

intervals contains one (from, to) pair per integration variable and accepts native real directed infinities through Symbol.INFINITY.

integrate_over

integrate_over(
    expression: Expression,
    variables: typing.Sequence[Expression],
    intervals: typing.Sequence[tuple[Expression, Expression]],
    options: typing.Optional[IntegrationOptions] = None,
) -> Expression

Integrate over arbitrary directed intervals in variable order.

Parameters

  • expression A native symbolica.Expression from the shipped Symbolica kernel.
  • variables Plain Symbolica symbols in integration order.
  • intervals One (from, to) pair of native expressions per variable. Use symbolica.Symbol.INFINITY (or its negation) for directed infinity.
  • options Optional IntegrationOptions.

Returns

  • symbolica.Expression The normalized exact result.

mzv_symbol

mzv_symbol() -> Expression

Return the registered multiple-zeta-value function symbol.

Call the returned Symbolica expression with indices, e.g. mzv_symbol()(3). This is the same head used in exact integration results. It is a formal symbol; for a depth-one numerical reference use Symbolica's built-in E("3").zeta().evaluate({}, decimal_digit_precision=40).

prepare

prepare(
    expression: Expression,
    variables: typing.Sequence[Expression],
    options: typing.Optional[IntegrationOptions] = None,
) -> PreparedIntegral

Lower a Symbolica expression once for repeated integrations or option sweeps.

The returned immutable PreparedIntegral owns the lowered input and an independent copy of options. Mathematical input remains a native Symbolica expression throughout preparation.

Parameters

  • expression A native symbolica.Expression from the shipped Symbolica kernel.
  • variables Plain shipped Symbolica symbols in integration order.
  • options Options captured as the prepared object's default integration options.

Returns

  • PreparedIntegral Reusable immutable lowered input.