AngouriMath
LevelledCache
Description
Summary
The transformations that differ only by a level, each built at most once, so that
an ordinarySimplify() allocates nothing to reach its transformation.
an ordinary
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.
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.
Members
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online