Problem: Shared mutable state in the Predict() method of the Bayes Filter class.
Description: Within the Predict() method of Bayes Filter class the probabilities of the samples have been updated in place (shared between the actual and updated/time propagated samples). The implementation could lead to numerically wrong results as the already updated probabilities are recursively used within the same time update cycle of the Bayes filter.
Steps to reproduce: Compare the results of the prediction step of the Bayes filter with the hand calculated results as explained, e.g. in Thrun et al. Probabilistic Robotics (MIT Press, 2005), Chapter 2, Exercise 2/3 or use the provided example 2.4.2 with non-identical initial probabilities.
Fixed: A local copy of the probabilities' array is used to keep the intermediate values of the probabilities before all the samples are updated. The newly calculated probabilities are only copied back when the iteration over all the samples is over.