Skip to main content

Point

A point of a function. Defined only in Time.

note

From unit structure defined in [BT08] Section 4.1

public sealed class Point : Element, IToCodeString, Unipi.Nancy.Utility.IStableHashCode, System.IEquatable<Point>

Inheritance ObjectElementPoint
Implements IToCodeString, IStableHashCode, IEquatable<Point>

Properties

Type

Type identification property for JSON (de)serialization.

public string Type { get; }

Property Value

String

Time

Time for which the point is defined.

public Rational Time { get; }

Property Value

Rational

Value

Value of the point.

public Rational Value { get; }

Property Value

Rational

StartTime

public Rational StartTime { get; }

Property Value

Rational

EndTime

public Rational EndTime { get; }

Property Value

Rational

PointSlope

Slope, w.r.t. origin, of the point.

public Rational PointSlope { get; }

Property Value

Rational

IsInfinite

True if the value of the point is ±\pm\infty.

public bool IsInfinite { get; }

Property Value

Boolean

IsPlusInfinite

True if the value of the point is ++\infty.

public bool IsPlusInfinite { get; }

Property Value

Boolean

IsMinusInfinite

True if the value of the point is -\infty.

public bool IsMinusInfinite { get; }

Property Value

Boolean

IsZero

True if the value of the point is 0.

public bool IsZero { get; }

Property Value

Boolean

IsOrigin

True if the point is (0,0)(0, 0)

public bool IsOrigin { get; }

Property Value

Boolean

Length

Length in time of the element. If the element is a Segment, it is strictly greater than 0. If the element is a Point, it is equal to 0.

public Rational Length { get; }

Property Value

Rational

IsFinite

True if the element has finite value.

public bool IsFinite { get; }

Property Value

Boolean

Constructors

Point(Rational, Rational)

Constructor.

public Point(Rational time, Rational value)

Parameters

time Rational
Time of the point.

value Rational
Value of the point.

Methods

Zero(Rational)

Constructs a point with 0 as value.

public static Point Zero(Rational time)

Parameters

time Rational
Time of the point.

Returns

Point

Origin()

Constructs a point in (0, 0).

public static Point Origin()

Returns

Point

PlusInfinite(Rational)

Constructs a point with ++\infty as value.

public static Point PlusInfinite(Rational time)

Parameters

time Rational
Time of the point.

Returns

Point

MinusInfinite(Rational)

Constructs a point with -\infty as value.

public static Point MinusInfinite(Rational time)

Parameters

time Rational
Time of the point.

Returns

Point

ValueAt(Rational)

public Rational ValueAt(Rational time)

Parameters

time Rational

Returns

Rational

IsDefinedFor(Rational)

public bool IsDefinedFor(Rational time)

Parameters

time Rational

Returns

Boolean

FromJson(String)

Deserializes a Point.

public static Point FromJson(string json)

Parameters

json String

Returns

Point

ToCodeString(Boolean, Int32)

Returns a string containing C# code to create this Point. Useful to copy and paste from a debugger into another test or notebook for further investigation.

public string ToCodeString(bool formatted, int indentation)

Parameters

formatted Boolean

indentation Int32

Returns

String

GetStableHashCode()

public int GetStableHashCode()

Returns

Int32

Scale(Rational)

Scales the point by a multiplicative factor.

public Element Scale(Rational scaling)

Parameters

scaling Rational

Returns

Element

Delay(Rational)

public Element Delay(Rational delay)

Parameters

delay Rational

Returns

Element

Anticipate(Rational)

public Element Anticipate(Rational time)

Parameters

time Rational

Returns

Element

VerticalShift(Rational)

Shifts the point vertically by an additive factor.

public Element VerticalShift(Rational shift)

Parameters

shift Rational

Returns

Element

Negate()

public Element Negate()

Returns

Element

Inverse()

public Element Inverse()

Returns

Element

Equals(Object)

public bool Equals(object obj)

Parameters

obj Object

Returns

Boolean

GetHashCode()

public int GetHashCode()

Returns

Int32

Equals(Point)

public bool Equals(Point other)

Parameters

other Point

Returns

Boolean

IsCertainlyAbove(Point, Point)

Returns true if the first point has always value higher than the second one. Does not consider time overlapping.

public static bool IsCertainlyAbove(Point a, Point b)

Parameters

a Point

b Point

Returns

Boolean

IsCertainlyAbove(Point)

Returns true if the first point has always value higher than the second one. Does not consider time overlapping.

public bool IsCertainlyAbove(Point point)

Parameters

point Point

Returns

Boolean

IsCertainlyBelow(Point, Point)

Returns true if the first point has always value lower than the second one. Does not consider time overlapping.

public static bool IsCertainlyBelow(Point a, Point b)

Parameters

a Point

b Point

Returns

Boolean

IsCertainlyBelow(Point)

Returns true if the first point has always value lower than the second one. Does not consider time overlapping.

public bool IsCertainlyBelow(Point point)

Parameters

point Point

Returns

Boolean

Addition(Element)

Sums the Point with an overlapping Element.

public Element Addition(Element element)

Parameters

element Element

Returns

Element
The element resulting from the sum.

Exceptions

ArgumentException
Thrown if the point and the element do not overlap.

Addition(Point, Point)

Sums two Points that are defined for the same time.

public static Point Addition(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The point resulting from the sum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Addition(Point)

Sums two Points that are defined for the same time.

public Point Addition(Point point)

Parameters

point Point

Returns

Point
The point resulting from the sum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Addition(Point, Segment)

Sums a Point to an overlapping Segment

public static Point Addition(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Point
The point resulting from the sum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Addition(Segment)

Sums a Point to an overlapping Segment

public Point Addition(Segment segment)

Parameters

segment Segment

Returns

Point
The point resulting from the sum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Subtraction(Element)

Subtracts the Point with an overlapping Element.

note

The operation does not enforce non-negative values.

public Element Subtraction(Element element)

Parameters

element Element

Returns

Element
The element resulting from the subtraction.

Exceptions

ArgumentException
Thrown if the point and the element do not overlap.

Subtraction(Point, Point)

Subtracts two Points that are defined for the same time.

note

The operation does not enforce non-negative values.

public static Point Subtraction(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The point resulting from the subtraction.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Subtraction(Point)

Subtracts two Points that are defined for the same time.

note

The operation does not enforce non-negative values.

public Point Subtraction(Point point)

Parameters

point Point

Returns

Point
The point resulting from the subtraction.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Subtraction(Point, Segment)

Subtracts a Point to an overlapping Segment

note

The operation does not enforce non-negative values.

public static Point Subtraction(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Point
The point resulting from the subtraction.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Subtraction(Segment)

Subtracts a Point to an overlapping Segment

note

The operation does not enforce non-negative values.

public Point Subtraction(Segment segment)

Parameters

segment Segment

Returns

Point
The point resulting from the subtraction.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Minimum(Element)

Computes the minimum of the Point and the given Element over their overlapping part.

public List<Element> Minimum(Element element)

Parameters

element Element

Returns

List<Element>
The s resulting from the minimum, wrapped in a list due to inheritance.

Minimum(Point, Point)

Computes the minimum of two Points that are defined at the same time.

public static Point Minimum(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The point resulting from the minimum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Minimum(Point)

Computes the minimum of two Points that are defined at the same time.

public Point Minimum(Point b)

Parameters

b Point

Returns

Point
The point resulting from the minimum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Minimum(Point, Segment)

Computes the minimum of a Point to an overlapping Segment.

public static Point Minimum(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Point
The point resulting from the minimum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Minimum(Segment)

Computes the minimum of a Point to an overlapping Segment.

public Point Minimum(Segment segment)

Parameters

segment Segment
Second operand

Returns

Point
The point resulting from the minimum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Minimum(IReadOnlyList<Point>)

Computes the minimum of a set of points.

public static Point Minimum(IReadOnlyList<Point> points)

Parameters

points IReadOnlyList<Point>
Points of which the minimum has to be computed.

Returns

Point
The point resulting from the overall minimum.

Exceptions

ArgumentException
Thrown if the points do not overlap.

InvalidOperationException
Thrown if the set of points is empty.

Maximum(Element)

Computes the maximum of the Point and the given Element over their overlapping part.

public List<Element> Maximum(Element element)

Parameters

element Element

Returns

List<Element>
The s resulting from the maximum, wrapped in a list due to inheritance.

Maximum(Point, Point)

Computes the maximum of two Points that are defined at the same time.

public static Point Maximum(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The point resulting from the maximum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Maximum(Point)

Computes the maximum of two Points that are defined at the same time.

public Point Maximum(Point b)

Parameters

b Point

Returns

Point
The point resulting from the maximum.

Exceptions

ArgumentException
Thrown if the two points do not overlap.

Maximum(Point, Segment)

Computes the maximum of a Point to an overlapping Segment.

public static Point Maximum(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Point
The point resulting from the maximum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Maximum(Segment)

Computes the maximum of a Point to an overlapping Segment.

public Point Maximum(Segment segment)

Parameters

segment Segment

Returns

Point
The point resulting from the maximum.

Exceptions

ArgumentException
Thrown if point and segment do not overlap.

Maximum(IReadOnlyList<Point>)

Computes the maximum of a set of points.

public static Point Maximum(IReadOnlyList<Point> points)

Parameters

points IReadOnlyList<Point>
Points of which the maximum has to be computed.

Returns

Point
The point resulting from the overall maximum.

Exceptions

ArgumentException
Thrown if the points do not overlap.

InvalidOperationException
Thrown if the set of points is empty.

Convolution(Element, Nullable<Rational>, Nullable<Rational>)

Computes the convolution between the Point and the given Element.

public IEnumerable<Element> Convolution(Element element, Nullable<Rational> cutEnd, Nullable<Rational> cutCeiling)

Parameters

element Element

cutEnd Nullable<Rational>

cutCeiling Nullable<Rational>

Returns

IEnumerable<Element>
The s resulting from the convolution, wrapped in a list due to inheritance.

Convolution(Point, Point)

Computes the convolution between two Points.

note

Defined in [BT08] Section 3.2.1, Lemma 2

public static Point Convolution(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The resulting from the convolution.

Convolution(Point)

Computes the convolution between two Points.

note

Defined in [BT08] Section 3.2.1, Lemma 2

public Point Convolution(Point point)

Parameters

point Point

Returns

Point
The resulting from the convolution.

Convolution(Point, Segment)

Computes the convolution between a Point and a Segment.

note

Defined in [BT08] Section 3.2.1, Lemma 3

public static Segment Convolution(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Segment
The resulting from the convolution.

Convolution(Segment)

Computes the convolution between the Point and a Segment.

note

Defined in [BT08] Section 3.2.1, Lemma 3

public Segment Convolution(Segment segment)

Parameters

segment Segment

Returns

Segment
The resulting from the convolution.

Deconvolution(Element)

Computes the deconvolution between the Point and the given Element.

public IEnumerable<Element> Deconvolution(Element element)

Parameters

element Element

Returns

IEnumerable<Element>
The s resulting from the deconvolution, wrapped in a list due to inheritance.

Deconvolution(Point, Point)

Computes the deconvolution between two Points.

note

Defined in [BT08] Section 3.2.2, Lemma 5

public static Point Deconvolution(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The resulting from the deconvolution.

Deconvolution(Point)

Computes the deconvolution between two Points.

note

Defined in [BT08] Section 3.2.2, Lemma 5

public Point Deconvolution(Point point)

Parameters

point Point

Returns

Point
The resulting from the deconvolution.

Deconvolution(Point, Segment)

Computes the deconvolution between a Point and a Segment.

note

Defined in [BT08] Section 3.2.2, Lemma 7

public static Segment Deconvolution(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Segment
The resulting from the deconvolution.

Deconvolution(Segment)

Computes the deconvolution between the Point and a Segment.

note

Defined in [BT08] Section 3.2.2, Lemma 7

public Segment Deconvolution(Segment segment)

Parameters

segment Segment

Returns

Segment
The resulting from the deconvolution.

MaxPlusConvolution(Element, Nullable<Rational>)

Computes the max-plus convolution between the Point and the given Element.

public IEnumerable<Element> MaxPlusConvolution(Element element, Nullable<Rational> cutEnd)

Parameters

element Element

cutEnd Nullable<Rational>

Returns

IEnumerable<Element>
The s resulting from the max-plus convolution, wrapped in a list due to inheritance.

MaxPlusConvolution(Point, Point)

Computes the max-plus convolution between two Points.

note

Adapted from the min-plus convolution algorithm described in [BT08] Section 3.2.1, Lemma 2

public static Point MaxPlusConvolution(Point a, Point b)

Parameters

a Point

b Point

Returns

Point
The resulting from the max-plus convolution.

MaxPlusConvolution(Point)

Computes the max-plus convolution between two Points.

note

Adapted from the min-plus convolution algorithm described in [BT08] Section 3.2.1, Lemma 2

public Point MaxPlusConvolution(Point point)

Parameters

point Point

Returns

Point
The resulting from the max-plus convolution.

MaxPlusConvolution(Point, Segment)

Computes the max-plus convolution between a Point and a Segment.

note

Adapted from the min-plus convolution algorithm described in [BT08] Section 3.2.1, Lemma 3

public static Segment MaxPlusConvolution(Point point, Segment segment)

Parameters

point Point

segment Segment

Returns

Segment
The resulting from the max-plus convolution.

MaxPlusConvolution(Segment)

Computes the max-plus convolution between the Point and a Segment.

note

Adapted from the min-plus convolution algorithm described in [BT08] Section 3.2.1, Lemma 3

public Segment MaxPlusConvolution(Segment segment)

Parameters

segment Segment

Returns

Segment
The resulting from the max-plus convolution.

SubAdditiveClosure(ComputationSettings)

Computes the sub-additive closure of the point.

note

Described in [BT07] Section 4.6 as algorithm 8.

public SubAdditiveCurve SubAdditiveClosure(ComputationSettings settings)

Parameters

settings ComputationSettings

Returns

SubAdditiveCurve
The result of the sub-additive closure.

SubAdditiveClosure(Rational, Rational, ComputationSettings)

Computes the sub-additive closure of the pseudo-periodic point.

note

Described in [BT07] Section 4.6 as algorithm 9

public SubAdditiveCurve SubAdditiveClosure(Rational pseudoPeriodLength, Rational pseudoPeriodHeight, ComputationSettings settings)

Parameters

pseudoPeriodLength Rational
Lenght of the pseudo-period

pseudoPeriodHeight Rational
Step gained after each pseudo-period

settings ComputationSettings

Returns

SubAdditiveCurve
The result of the sub-additive closure

Exceptions

ArgumentException
Thrown if the period is not greater than 0