Stop Assembly::realize from reacting to itself

Previously, `realize` both tracked and updated the element vectors, so
calling it in a reactive context could start a feedback loop.
This commit is contained in:
Aaron Fenyes 2024-11-01 20:49:00 -07:00
parent 327a1267d5
commit 6e42681b71

View File

@ -151,7 +151,7 @@ impl Assembly {
for (_, elt) in elts {
let index = elt.index;
gram_to_be.push_sym(index, index, 1.0);
guess_to_be.set_column(index, &elt.rep.get_clone());
guess_to_be.set_column(index, &elt.rep.get_clone_untracked());
}
(gram_to_be, guess_to_be)
@ -193,7 +193,7 @@ impl Assembly {
if success {
// read out the solution
for (_, elt) in self.elements.get_clone() {
for (_, elt) in self.elements.get_clone_untracked() {
elt.rep.update(
|rep| rep.set_column(0, &config.column(elt.index))
);