Rotations and Couplings#104
Conversation
…e list of expression methods
…ants of Breit-Wigner amplitude and change normalization in numerator to unity BREAKING CHANGE: the normalization of standard relativistic Breit-Wigner amplitude is now unity.
…ting 3j symbols, Clebsch-Gordan coefficients, and Wigner d/D matrix elements
…ty objects with str/repr and make them use the current active mask when applicable
|
Looks like I have a few errors that are mostly due to not using the most recent Rust version in my local development setup... |
For some reason, on my local system, the value ended in 4 which was close enough to the checked value ending in 2. On GitHub, the evaluation ends in 6, so this test failed. I'm guessing this is just the slight parallel summation error that can't be avoided, and my system has a different number of cores. In the future, we might check with different parallelism settings to make these a bit more robust, as it is some tests might outright fail on some systems even though the results are compatible.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #104 +/- ##
==========================================
- Coverage 77.88% 77.56% -0.32%
==========================================
Files 54 67 +13
Lines 22291 26526 +4235
Branches 21659 25866 +4207
==========================================
+ Hits 17361 20576 +3215
- Misses 4545 5511 +966
- Partials 385 439 +54 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Merging this PR will degrade performance by 86.09%
|
|
I honestly think codspeed is overstating the regression because a bunch of microbenchmarks have been added up by percentage. I changed a few things to improve some of the other benchmarks, but this didn't actually effect the regressing ones. I expect a small hit on pre-evaluation just because we're doing more complex handling of angles, but I think I'm going to release this now and worry about the small performance differences in the next patch. |
Some pretty big changes here, a lot of QoL but also some new amplitudes (and some major changes to existing ones).
powi,powf,pow(for general complex powers),cis(complex phases from an angle),sqrt,exp,sin,cos, andlog(natural).VariableScalaramplitude that can turn anyVariableinto an amplitude that returns its cached value, plus a helper method on variables to turn them into one (currently added as an extension trait, I might change this later).Piecewiseamplitudes with more generic lookup table amplitudes (these can use parameters as bin values, replicating piecewise amplitudes, but they can also use constants to be a pure lookup table. Also supports linear interpolation!).BreitWigneramplitude to have a non-relativistic version as well as a version without Blatt-Weisskopf barrier factors. I also changed the convention to use a unit numerator.