As indicated in your other Question, changing the default type can be done with
However, this is at odds with "minimizing cumulative error": you can reduce cumulative error by using higher precision variables.
Heavy use of exclusively single precision values is typically associated with deep learning and Recurrent networks. Those are, however, typically computed on GPU, in which case you would need a version of NVIDIA's deep learning GPU kernels written using algorithms to minimize cumulative errors; routines at the MATLAB level would not be useful in that situation.
When I look at your C++ code, it does not appear to me that you are using Donal Knuth's algorithm from The Art Of Computer Programming; you should consider using that. Unfortunately in the time I spent searching I do not happen to find a link to it.