Skip to main content

Value at origin

For many models and properties, it is common in DNC to assume f(0)=0f(0) = 0. However, this assumption does not hold in general, and the result of many operations must be adjusted to enforce this.

In Nancy, these operations are implemented to follow their algebraic definition. Enforcing properties like this is instead left to the user, with dedicated operators.

The method WithZeroOrigin implements the f∘f^{\circ} operator, which is defined as f∧δ0f \wedge \delta_{0}. This ensures that f∘(0)=0f^{\circ}(0) = 0 if f(0)≥0f(0) \ge 0, but it will do nothing if f(0)<0f(0) \lt 0.

The methods WithOriginAt and WithOriginRightContinuous will instead enforce the given value regardless of the current f(0)f(0).

Deconvolution​

We often have (f⊘g)(0)>0(f \oslash g)(0) > 0, which is also suggested by the property vDev(f,g)=(f⊘g)(0)vDev(f, g) = (f \oslash g)(0).

On the other hand, the deconvolution is also used to compute an output arrival curve, in which case the f(0)=0f(0) = 0 is highly desirable. It is important, then, to write it as αout=(αin⊘β)∘\alpha_{out} = (\alpha_{in} \oslash \beta)^{\circ}.

warning

Using arrival curves with f(0)>0f(0) \gt 0 can result in surprising changes in the following computations.

Negative residual service curves​

Work [HCS24] introduced the use of negative (min,+) service curves, in particular for residual service curves where service is not guaranteed unless minimal arrival curves are available.

The negative service curves usually come out of subtraction between the (min,+) service curve β\beta provided by a server to the aggregate flow and the arrival curve αcf\alpha_{cf} of a cross flow β−αcf\beta - \alpha_{cf}. Since both are 0 in 0, the result will also be 0 in 0, even though the following is not.

TODO: add a figure as example