22 ReadOnlySpan<double> demands,
23 ReadOnlySpan<double> setupCosts,
24 ReadOnlySpan<double> unitProductionCosts,
25 ReadOnlySpan<double> holdingCosts)
27 var horizon = demands.Length;
31 throw new ArgumentException(
32 "A ULS problem must contain at least one period.",
36 ValidateLength(setupCosts, horizon, nameof(setupCosts));
37 ValidateLength(unitProductionCosts, horizon, nameof(unitProductionCosts));
38 ValidateLength(holdingCosts, horizon, nameof(holdingCosts));
40 ValidateNonNegativeFiniteVector(demands, nameof(demands));
41 ValidateNonNegativeFiniteVector(setupCosts, nameof(setupCosts));
42 ValidateNonNegativeFiniteVector(unitProductionCosts, nameof(unitProductionCosts));
43 ValidateNonNegativeFiniteVector(holdingCosts, nameof(holdingCosts));