Of course I know this is not possible in rust .... but what are my other choices?
I have a struct MND that evaluates a MultiNormal Distribution:
MND::evaluate(&self, x: &Vec<f64>)
This requires a few algebraic operations (matrix multiplication etc.) so I need some scratch memory to keep intermediate values. Since both a function argument
x and a
self reference are
const, I'm allocating a temporary matrix inside the
MND::evaluate(). This however turned out to be a serious efficiency issue and I have to refactor the code. The easiest solution would be to store scratch matrix as a private field in an object and change the signature to
MND::evaluate(&mut self, x: &Vec<f64>).
This however causes problems somewhere else; it would be much better to keep
&self immutable during this call. So what are my other options?
In C++, I'd try a global variable inside the very
.cc file or