carl  24.04
Computer ARithmetic Library
CArL module structure

CArL is separated into several libraries implementing functionality on different abstraction levels.

General utilities

  • carl-common: Basic data structures, helper methods, etc.
  • carl-logging: Logging funtionality. Depends on carl-common.
  • carl-statistics: Collect statistics about a run of a program. Depends on carl-common.
  • carl-checkpoints: Collect the trace of the run of a programm and compare it with certain checkpoints. Depends on carl-common and carl-logging.
  • carl-settings: Runtime settings infrastructure.

Core libraries

  • carl-arithmetic: Arithmetic package. Does not do sophisticated memory management. Depends on carl-common and carl-logging.
  • carl-formula: Logical formulas with support for arithmetic, bitvector and uninterpreted function constraints. Does pooling of some types for memory efficiency. Depends on carl-arithmetic.
  • carl-vs: Implements virtual substitution. For legecy reasons, this depends on carl-formula.
  • carl-extpolys: Extended polynomial types: factorized polynomials, rational functions. Depends on carl-arithmetic.

Higher level

  • carl-io: Input/output functionality for CArL types from/to different file formats. Depends on carl-formula.
  • carl-covering: Data structures and heuristics for computing coverings. Depends on carl-common and carl-logging.