Perhaps this is a dumb question, but I've never thought about it until I was just recently forced to.
Assume a program is initialized with the exact same state and no undefined behavior in the way of uninitialized variables. Register states on the CPU can be different prior to code execution. Assume no outside phenomena is causing freak bit flipping.
Will the same sequence of numerical calculations always produce the same result (as in, the entire bit-representation of doubles and floats)? In other words, is numerical error deterministic?
EDIT: I know that pointer addresses can be different each time, but let's abstract pointer addresses away from being used in any calculations.