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.