AngouriMath
Equals(AngouriMath.Entity)
Method (no overloads)
Summary
Two entities are equal when they are the same kind of node with equal parts, which
each node's own record comparison decides; what this level of the record holds
is caches -- the children, the variables, the evaluated value, a dozen
LazyPropertyA`1 fields and the sort keys -- and every one of them
is equal to every other by construction, so comparing them is a dozen calls into
EqualityComparer`1 that can only answer yes, and the hash a dozen
that can only add zero. The record's synthesized members made them; the solver,
which keeps its candidates in sets keyed by the tree, took 112 ms on the hardest
benchmark with them and 64 without
(https://github.com/asc-community/AngouriMath/issues/1338).
each node's own record comparison decides; what this level of the record holds
is caches -- the children, the variables, the evaluated value, a dozen
LazyPropertyA`1 fields and the sort keys -- and every one of them
is equal to every other by construction, so comparing them is a dozen calls into
EqualityComparer`1 that can only answer yes, and the hash a dozen
that can only add zero. The record's synthesized members made them; the solver,
which keeps its candidates in sets keyed by the tree, took 112 ms on the hardest
benchmark with them and 64 without
(https://github.com/asc-community/AngouriMath/issues/1338).
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online