Make sure all timeseries values are floats
Depending on the user's input values, we can end up with all nicely rounded values in timeseries. This means numpy will make an array with a data type "integer". In some places, however, we use float placeholder values (e.g. sys.float_info.max). Assigning these to an array that has an integer data type will fail, because the float value is too big to be cast to an integer. Because all processing/optimization is in floats anyway, we can just make sure to store all data as floats as well.