% Input parameters \label{s:params} \sectiondept{it} An implementation \shall support each parameter defined in this section for the purpose of accepting input data. An implementation \shallnot ^fail in ^[fail!error] if a parameter is provided that is not listed within this section.\footnote{For example, this allows data to be used for multiple suppliers.} \p{param-fail} An implementation \must ^fail in ^[fail!error] if one or more of the parameters defined in this section are not provided, unless the parameter is unused in every calculation that applies to the input data. The exact failure point is unspecified, but the implementation must not return the value of any calculation. \begin{ex} \index{fail!error|(} The implementation may check all required parameters before performing any calculations, or may decide to defer parameter checking until the parameter is actually used for the first time; the latter would be expected to be more performant in the case that the input data is expected to be well-formed most of the time, but will have wasted many cycles in computing calculations that will be thrown away in event of a failure. In the former case, the upfront validation cost is more steep, but no cycles are wasted on calculations in the event of an immediate failure. \index{fail!error|)} \end{ex} An implementation \must ^fail in ^[fail!error] if an ^argument associated with its parameter does not fall within the ^domain of the parameter, unless the parameter is unused in every calculation that applies to the input data. The exact failure point is subject to the same requirements as \pref{param-fail}. An implementation \mustnot ^fail in ^[fail!error] if an argument associated with its parameter \emph{does} fall within its ^[domain], but \may fail for other reasons defined within this specification unrelated to the domain. %% content set with \inputparams will be outptu at this point