AngouriMath
AngouriMath.Core.Transformations.Transformation
Classes within the AngouriMath.Core.Transformations.Transformation namespace
LevelledCache
Summary
The transformations that differ only by a level, each built at most once, so that
an ordinarySimplify() allocates nothing to reach its transformation.
Remarks
Filled on demand rather than in the static initialiser, and it has to be. Building
the factorisation entry reads RewriteRules, whose sets in turn build
transformations of their own; doing that while this type is still initialising
makes the two types depend on each other's initialisation, and one of them then
reads the other's fields before they are set. Two threads arriving together may
each build the same entry; the entries are equivalent and immutable, so whichever
reference lands is the one everyone then uses.
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 1953 pages online