Something worth documenting is the potential risk of floating-point error accumulation for some values.
Given the flexibility of user input types, it is possible to make use of types that don't have enough built-in precision for the range of values a variable needs. For instance, using a Float32 when accumulating biomass in grams over several trees would likely lead to severe precision issues, given enough time steps.
Perhaps some checks to avoid silently returning incorrect data could be added, or perhaps careful model implementation and multi scale considerations can mitigate some of these risks. Or perhaps this is an issue that should be documented thoroughly and left to the user.
Something worth documenting is the potential risk of floating-point error accumulation for some values.
Given the flexibility of user input types, it is possible to make use of types that don't have enough built-in precision for the range of values a variable needs. For instance, using a Float32 when accumulating biomass in grams over several trees would likely lead to severe precision issues, given enough time steps.
Perhaps some checks to avoid silently returning incorrect data could be added, or perhaps careful model implementation and multi scale considerations can mitigate some of these risks. Or perhaps this is an issue that should be documented thoroughly and left to the user.