Skip to content

Releases: CosmologicalEmulators/AbstractCosmologicalEmulators.jl

v0.9.5

24 Apr 19:12
83fdac2

Choose a tag to compare

AbstractCosmologicalEmulators v0.9.5

Diff since v0.9.4

Merged pull requests:

v0.9.4

16 Mar 22:23
7396423

Choose a tag to compare

What's Changed

Full Changelog: v0.9.3...v0.9.4

v0.9.3

10 Mar 20:15
6583408

Choose a tag to compare

AbstractCosmologicalEmulators v0.9.3

Diff since v0.9.2

Merged pull requests:

v0.9.2

03 Mar 22:09
d6bb89f

Choose a tag to compare

AbstractCosmologicalEmulators v0.9.2

Diff since v0.9.1

Merged pull requests:

v0.9.1

22 Feb 19:50
19c149f

Choose a tag to compare

AbstractCosmologicalEmulators v0.9.1

Diff since v0.9.0

Merged pull requests:

Closed issues:

  • Chebyshev (#70)

v0.9.0

22 Feb 04:37
3c793ea

Choose a tag to compare

AbstractCosmologicalEmulators v0.9.0

Diff since v0.8.3

Breaking changes

  • Chebyshev API Refactor
  • Removal of FastChebInterp: The package no longer depends on FastChebInterp. If your workflow relies on FastChebInterp functions directly, you must now add it as a direct dependency to your project.
  • ChebyshevPlan Structure: The ChebyshevPlan struct has been updated to support N-dimensional grids. The internal fields (K, nodes, dim) are now NTuples. Direct access to these fields in user code may require updates.
  • Strict Normalization Validation: New safety checks in validate_nn_dict_structure will now throw an ArgumentError if degenerate normalization ranges (where min == max) are detected in trained model metadata.

This release introduces significant performance optimizations and new interpolation features, focusing on multidimensional Chebyshev decomposition and improved Automatic Differentiation (AD) support.

🚀 New Features & Optimizations
📐 Multidimensional Chebyshev Decomposition
Native Implementation: Added a high-performance, native Chebyshev decomposition implementation, removing the dependency on FastChebInterp.
N-Dimensional Support: Robust support for multidimensional arrays, allowing transformations along specific dimensions while handling outer/batch dimensions efficiently.
Fast AD Integration:
Implemented a mathematically optimized
O
(
N
log

N
)
self-adjoint pullback for ChainRulesCore.
Native support for ForwardDiff.Dual numbers.
Verified compatibility with Zygote and Mooncake.
📈 Interpolation Enhancements
AkimaSpline Refactoring: Refactored Akima interpolation into a struct-based functor.
Performance: Pre-computes and caches slopes and coefficients (b, c, d), significantly reducing overhead when evaluating the same spline at multiple new points.
Improved Numerical Stability: Enhanced validation for normalization ranges and architectural numerical stability in emulator initialization.
🛠 Internal Improvements
Dependency Cleanup: Removed FastChebInterp dependency to reduce package footprint.
Project Structure: Centralized Chebyshev logic in

src/chebyshev.jl
and updated

Project.toml
for v0.9.0.
🧪 Testing & Verification
Comprehensive new test suite in

test/test_chebyshev.jl
covering accuracy, multidimensional support, and AD gradients across multiple backends.
All existing unit tests verified for compatibility with the new version.

Merged pull requests:

v0.8.3

14 Feb 03:32
f4859ef

Choose a tag to compare

AbstractCosmologicalEmulators v0.8.3

Diff since v0.8.2

Merged pull requests:

Closed issues:

  • Cubic spline (#66)

v0.8.2

10 Dec 07:10
523d4e3

Choose a tag to compare

AbstractCosmologicalEmulators v0.8.2

Diff since v0.8.1

Merged pull requests:

v0.8.1

25 Nov 05:09
d7f70aa

Choose a tag to compare

AbstractCosmologicalEmulators v0.8.1

Diff since v0.8.0

Merged pull requests:

Closed issues:

  • Akima spline (#55)
  • Mooncake support (#57)

v0.8.0

24 Nov 02:56
b481f3a

Choose a tag to compare

AbstractCosmologicalEmulators v0.8.0

Diff since v0.7.3

Breaking changes

There are no breaking changes in this release. All existing functionality remains fully compatible with v0.6.2.

What's New

🎉 Major Feature: Akima spline

We stripped off the code within Effort and put it here, to perform Akima interpolation. This means also including all of the rrules we have defined for it (which is of fundamental importance when differentiating it with Zygote).

🔧 Improvements

  • AD compatibility tests, with DifferentiationInterface and Mooncake: Refactored the unit tests to be based on DifferentiationInterface, which let us test that everything is working when using ForwardDiff, Mooncake, and Zygote.

Merged pull requests: