Skip to content

Releases: SciCompKL/CoDiPack

Version 3.1.1

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 02 Jul 10:15

v3.1.1 - 2026-07-01

  • Features:

    • Specialization for Eigen math traits.
    • New generalized error handler for tag tapes.
  • Bugfix:

    • Tag property 'DoNotUse' is now properly reset on overwrite.

Version 3.1.0

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 09 Feb 12:55

v3.1.0 - 2026-02-02

  • Features:
    • It is now possible to define custom tape evaluators for all CoDiPack tapes. The evaluators have access to the full statement data and functionality for low level functions.
    • Low level function and external functions can now iterate over their input and output identifiers.
    • New tool for optimizing the cache access of reuse index tapes. See Example 29 - Tape cache optimization.
  • Internal:
    • Restructure of per value tape data handling. Each tape and each index manager in CoDiPack can now define data that is stored in each value. This is a breaking interface change but it will not affect the default CoDiPack tapes. This change is mostly used for debugging.
  • Bugfix:
    • Explicitly set the language of CoDiPack to C++ for CMake.
    • Add missing setter functions to complex numbers.

Version 3.0.0

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 09 Jul 06:53

v3.0.0 - 2025-07-08

  • General:

    • Raised default cpp version of CoDiPack to 17. If you require a lower cpp version please use CoDiPack 2.*.
  • Features:

    • Added support for the spaceship operator (<=>).
    • Preaccumulation with vector-based local adjoints.
    • Support for complex types.
  • Bugfix:

    • Allow a tape change in the custom adjoint vector helper.

Version 2.3.2

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 08 Apr 07:50

v 2.3.2 - 2025-04-08

  • Bugfix: Correct dyadic update for adjoint matrix in linear system solvers.

Version 2.3.1

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 20 Feb 00:12

v 2.3.1 - 2025-02-19

  • Bugfix: Only include cxxabi.h for gnu compiler.

Version 2.3.0

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 27 Dec 11:34

v 2.3.0 - 2024-12-27

  • Features:
    • Tape evaluations with generalized custom adjoints.
    • Preaccumulation with local mapped adjoints.
    • Edit identifiers in recorded tapes.
    • Preaccumulation with a local adjoint vector after tape editing.
    • Added tape writers to store a tape to the disk, in a binary or text file. See example 25.
    • Added tape readers to restore a tape from the disk, in a binary or text file. See example 26 and 27.
    • Generate a computational graph of a tape in a .dot file format.
    • Record the mathematical statements from the tape to a .txt file or add these statements to the computational graph for primal value tapes.
  • Bugfix:
    • Improved performance for tape reset of small tapes.
    • Added missing unused declarations.
    • Fixes for tagging tape.
    • Fixes for reference active type.

Version 2.2.0

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 30 Jan 08:55

v 2.2.0 - 2024-01-30

  • Features:

    • New helper for adding Enzyme-generated derivative functions to the tape. See \ref Example_24_Enzyme_external_function_helper.
    • Recover primal values from primal values tapes in ExternalFunctionHelper.
    • Forward AD type for CUDA kernels.
    • Matrix matrix multiplications can now be handled in an optimal way with CoDiPack.
    • Tagging tape for detecting errors in the AD workflow.
  • Bugfix:

    • Uninitialized values in external function helper.
    • External function outputs in Jacobian tapes no longer use unused indices.
  • Other:

    • Added low level function support to the tapes.
      Low level functions are between external functions and statements. As they can occur quite often, they reduce
      the overhead for storing data as mutch as possible.
    • Added helper structures for creating low level functions.
    • External functions are now handled via the low level function interface.

Version 2.1.0

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 10 May 12:37

v 2.1.0 - 2023-05-10

  • Features:

    • Helpers for linear system solvers. See Example 21 for details.
    • Event system. See Example 22 for details.
    • Support for shared-memory parallel settings, specifically OpenMP.
    • OpDiLib bindings.
    • CMake support.
  • Bugfix:

    • Initialization fixes.
    • Initialization of passive values.
    • Preaccumulation disables the tape during the algorithm.
    • Proper assigning of 1st order derivatives to 2nd order derivatives.
    • Proper reset of reuse index mangers.
    • Swap of primal value tapes resizes primal value vectors.
    • Tapes handle small chunk sizes correctly.
  • Other:

    • Expression trait for the number of operations.
    • Forward tape evaluation tests for primal value tapes.
    • Gcc warning of no return statement is now an error.
    • Make std::fmin and std::fmax available in namespace.
    • clangd compatibility with CODI_IDE.

v2.0.2

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 14 Jun 06:30

v 2.0.2 - 2022-06-14

  • Bugfix:
    • Prevent copy constrution of tapes.
    • Proper activity tracking for linear index tapes in MeDiPack.

v2.0.1

Choose a tag to compare

@MaxSagebaum MaxSagebaum released this 14 Jun 06:30

v 2.0.1 - 2021-11-15

  • Bugfix:
    • Fixed a stack corruption in the reverse interpretation of tapes with a linear index manager.
    • Renamed folders aux -> misc for windows compatibility.