Releases: CosmologicalEmulators/AbstractCosmologicalEmulators.jl
v0.9.5
AbstractCosmologicalEmulators v0.9.5
Merged pull requests:
- Update ci.yml (#80) (@marcobonici)
- Develop (#82) (@marcobonici)
v0.9.4
What's Changed
- Mooncake ad by @marcobonici in #81
- Update ci.yml by @marcobonici in #80
Full Changelog: v0.9.3...v0.9.4
v0.9.3
v0.9.2
v0.9.1
AbstractCosmologicalEmulators v0.9.1
Merged pull requests:
- Develop (#75) (@marcobonici)
Closed issues:
- Chebyshev (#70)
v0.9.0
AbstractCosmologicalEmulators v0.9.0
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:
- Chebyshev (#71) (@marcobonici)
- Develop (#74) (@marcobonici)
v0.8.3
AbstractCosmologicalEmulators v0.8.3
Merged pull requests:
- Develop (#67) (@marcobonici)
Closed issues:
- Cubic spline (#66)
v0.8.2
AbstractCosmologicalEmulators v0.8.2
Merged pull requests:
- Improved postprocessing loading; removed useless field in emu (#62) (@marcobonici)
- Update Project.toml (#65) (@marcobonici)
v0.8.1
AbstractCosmologicalEmulators v0.8.1
Merged pull requests:
- Updating the code, adding Mooncake rrules for akima (#59) (@marcobonici)
Closed issues:
v0.8.0
AbstractCosmologicalEmulators v0.8.0
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
DifferentiationInterfaceandMooncake: Refactored the unit tests to be based onDifferentiationInterface, which let us test that everything is working when usingForwardDiff,Mooncake, andZygote.
Merged pull requests:
- Develop (#54) (@marcobonici)
- Adding akima spline (#56) (@marcobonici)
- Develop (#58) (@marcobonici)