Bugfixes
- fixed bug in
calc_H_arraypython binding (discovered by @yr-chen2000)
Features
- Added common subexpression elimination (cse) option for compiler
- Equations of motion are now computed and compiled in addition to the consistency condition
- Reworked symbolic simplification system
- Added automatic numerical verification of basis orthonormality
Breaking Changes
- Renamed
SymbolicCalculationtoInflationModelBuilder - Renamed
SymbolicOutputtoInflationModel
Non-breaking behaviour changes
InflationModelBuilder's constructor now hasassertions=Trueby defaultInflationCondition's constructor now hasverify_basis=Trueby default
Bugfixes
- fixed bug in documentation (thanks to TJMarchand)
- fixed CRITICAL bug in definition of gradient (discovered by TJMarchand)
- fixed bug in shortcut definition of second basis vector in 2-field inflation models (discovered by TJMarchand)
General
- Added unit tests
- Added integration tests for models from arXiv:2405:11628
- Added automated tests to CI
Bugfixes
- fixed bug in documentation example
- fixed incomprehensible error message when passing integers as start or stop value
API changes
- Replaced
newmethod onSymbolicCalculationwithnew_from_list.new_from_liststill exists, but has been deprecated. - Removed all support for Einsteinpy-related API's
- Added support for passing custom compiler/linker flags directly to zigcc using the
compiler_flagsoption on theCompilerclass. - Added experimental support for compiling inflatox binaries with special functions by linking the GNU Scientific Library (GSL).
- Added support for transpiling Bessel functions using the GSL
- Added support for transpiling Hypergeometric functions (small subset) using the GSL
General
- Removed dependency on Einsteinpy (huge dependency reduction)
- Started migration to new PyO3
boundAPI (slight performance improvement) - Improved (zig) compiler output
Bugfixes
- fixed assertions
General
- added assertion error messages
Bugfixes
- fixed bug with printing sympy expressions outside IPython environments
Version 0.8.1 is identical to version 0.8.0. It has come to our attention that a duplicate 0.8.0 published in March 2024 (rather than the May 2024 real 0.8.0) was unintentionally published to PyPi. Version 0.8.1 should remedy this issue.
General
- Bumped the minimum required python version from 3.7 to 3.8. This was already the case (due to the
usage of
std'stypinglib), but not reflected in the package manifest. - Improved and updated documentation where necessary
- Added
docs.mddocumentation file - Added
builds.mdwiht build instructions
Mathematical changes
- Moved away from the
$\kappa=3$ paradigm to a more sensible calculation for$\varepsilon_H$ : $$ \varepsilon_H=3 \times \frac{\varepsilon_V - 1/2 (V_t/V)^2} {\varepsilon_V+V_{tt}/V - 1/2 (V_t/V)^2} $$ Where$V_{tt}$ is calculated using the assumption$\tan\delta=V_{vw}/V_{vv}$ and$1/2(V_t/V)^2= \varepsilon_V\sin^2\delta$ . Note that this new equation gives different results: it is less restrictive than the previous$\kappa=3$ paradigm, although it is better motivated from a theoretical standpoint. - Replaced
$\varepsilon_H$ calculation with$\eta_{\parallel}$ calculation, where$\eta_{\parallel}$ is calculated as: $$ \eta_{\parallel}=\omega\tan\delta -3 $$
API changes
- Renamed
AnguelovaLazaroiuConditiontoGeneralisedAL -
SymbolicCalculationno longer requires the vector$w \perp \nabla V$ to be speficied by default (it is still possible to do so as an option)
Upgrades
- Updated Rayon 1.8 -> 1.10
- Upgraded PyO3 0.20 -> 0.21
- Upgraded numpy 0.20 -> 0.21
API changes
- Added functionality to calculate the potential slow-roll parameter
$\varepsilon_V$ - Added functionality to calculate
$\varepsilon_H$ assuming the AL condition holds. - Added functionality to calculate
$\eta_{\parallel}$ and$\eta_H$ assuming the AL condition holds. - Added new
complete_analysis()method that is able to calculate six dynamical quantities at once. This cuts computation time by about a factor six. - Added
consistency_only()method for situations whenfull_analysis()is overkill (no real speed-up). - Added
consistency_only_old()method for computing the original AL condition only (not included incomplete_analysis) - Added
epsilon_v_only()method for computing the first potential slow-roll parameter. - Removed
evaluate()method ofAnguelovaLazaroiuCondition. Functionality replaced byconsistency_only(). - Removed
calc_delta()method ofAnguelovaLazaroiuCondition. Functionality replaced bycomplete_analysis(). - Removed
calc_epsilon()method ofAnguelovaLazaroiuCondition. Functionality replaced bycomplete_analysis()andepsilon_v_only(). - Removed
calc_omega()method ofAnguelovaLazaroiuCondition. Functionality replaced bycomplete_analysis().
Mathematical changes
- All consistency conditions are now returned in the following format:
$$
\rm{out}=\left|\frac{|\rm{rhs}|-|\rm{lhs}|}{|\rm{rhs}|+|\rm{lhs}|}\right|
$$
where
$\rm{lhs}$ is the left-hand side of the consistency condition and$\rm{rhs}$ the right-hand side. - The characteristic angle
$\delta$ is now returned in the range$[0,\pi/2]$ since the sign of the angle between$w^a$ and$t^a$ is arbitrary since the given that the choice of$w^a$ is arbitrary.
General
- Reworked console output
Upgrades
- Upgraded rayon 1.7.0 -> 1.8.0
- Specified that package is only compatible with python 3.7 - 3.11, because
no version of
Numbadependency (which is a dependency of EinsteinPy) that is compatible with python 3.12 has been released yet. Package still interfaces with rust using the stable python 3.7 ABI. This will not be changed until the 3.7 ABI is deprecated. - Added
hesse_arraymethod that allows calculating the hesse matrix (for an arbitrary number of field-space dimensions) at all points in a given field- space array. - added functionality to calculate the turn rate
$\omega$ under the assumption that the slow-roll parameters are small. - added functionality to calculate the hesse matrix for a whole range of field space values at once.
- Upgraded numpy 0.19 -> 0.20
- Upgraded PyO3 0.19 -> 0.20
- breaking ABI change (new symbols)
- added functionality to calculate if gradient of potential flips sign (goes to zero). This is relevant for those looking for areas where quantum diffusion dominates over the background
- improved error messages
- moved examples to different repository
- simplified build system
- inflatox now uses pythons ABI3, specifically version 3.7
- added (optional) progress bars
- added functionality to calculate the
$\delta$ slow-roll, rapid-turn parameter (see future publication) - yanked the inflatox crate from
crates.io. All rust code is now considered internal
- added higher-order consistency conditions
- Bugfixes
- replaced platform native C compiler with pip-bundled
zig-cccompiler