Class Curve_Disco_PwAffine
- java.lang.Object
-
- org.networkcalculus.dnc.curves.disco.pw_affine.Curve_Disco_PwAffine
-
- All Implemented Interfaces:
Curve
,Curve_Affine
,Curve_PwAffine
- Direct Known Subclasses:
ArrivalCurve_Disco_PwAffine
,MaxServiceCurve_Disco_PwAffine
,ServiceCurve_Disco_PwAffine
public class Curve_Disco_PwAffine extends java.lang.Object implements Curve_PwAffine
Class representing a piecewise linear curve, defined on [0,inf).
The curve is stored as an array ofLinearSegment
objects. Each of these objects defines a linear piece of the curve from one inflection point up to, but not including, the next. It is possible to define discontinuities by defining two subsequentLinearSegment
instances which start at the same inflection point. In this case, the second segment needs to haveleftopen
set totrue
to indicate that the inflection point is excluded from the second segment.
All arithmetic operations on a curve return a new instance of classCurve
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.networkcalculus.dnc.curves.Curve
Curve.CurveOperation
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
has_rate_latency_meta_info
protected boolean
has_token_bucket_meta_info
private static Curve_Disco_PwAffine
instance
protected boolean
is_delayed_infinite_burst
protected boolean
is_rate_latency
protected boolean
is_token_bucket
protected java.util.List<Curve_Disco_PwAffine>
rate_latencies
protected LinearSegment_Disco[]
segments
protected java.util.List<Curve_Disco_PwAffine>
token_buckets
-
Constructor Summary
Constructors Modifier Constructor Description protected
Curve_Disco_PwAffine()
Creates aCurveDNC
instance with a single segment on the x-axis.protected
Curve_Disco_PwAffine(int segment_count)
Creates aCurve
instance withsegment_count
emptyLinearSegment
instances.protected
Curve_Disco_PwAffine(Curve curve)
-
Method Summary
Modifier and Type Method Description void
addSegment(int pos, LinearSegment s)
Adds aLinearSegment
at the locationpos
of the curve.
Note1; Segments after pos will be pushed back by one position.
Note2: It is the user's responsibility to add segments in the order of increasing x-coordinates.void
addSegment(LinearSegment s)
Adds aLinearSegment
to the end of the curve.
Note: It is the user's responsibility to add segments in the order of increasing x-coordinates.private void
clearMetaInfo()
Curve_Disco_PwAffine
copy()
Returns a copy of this instance.void
copy(Curve curve)
ArrivalCurve_Disco_PwAffine
createArrivalCurve()
ArrivalCurve_Disco_PwAffine
createArrivalCurve(int segment_count)
ArrivalCurve_Disco_PwAffine
createArrivalCurve(java.lang.String arrival_curve_str)
ArrivalCurve_Disco_PwAffine
createArrivalCurve(Curve curve)
ArrivalCurve_Disco_PwAffine
createArrivalCurve(Curve curve, boolean remove_latency)
Curve_Disco_PwAffine
createCurve(java.util.List<LinearSegment> segments)
ServiceCurve_Disco_PwAffine
createDelayedInfiniteBurst(double delay)
ServiceCurve_Disco_PwAffine
createDelayedInfiniteBurst(Num delay)
MaxServiceCurve_Disco_PwAffine
createDelayedInfiniteBurstMSC(double delay)
MaxServiceCurve_Disco_PwAffine
createDelayedInfiniteBurstMSC(Num delay)
Curve_Disco_PwAffine
createHorizontal(Num y)
Creates a horizontal curve.ArrivalCurve_Disco_PwAffine
createInfiniteArrivals()
MaxServiceCurve_Disco_PwAffine
createMaxServiceCurve()
MaxServiceCurve_Disco_PwAffine
createMaxServiceCurve(int segment_count)
MaxServiceCurve_Disco_PwAffine
createMaxServiceCurve(java.lang.String max_service_curve_str)
MaxServiceCurve_Disco_PwAffine
createMaxServiceCurve(Curve curve)
private void
createNewCurve(int segment_count, boolean empty)
ArrivalCurve_Disco_PwAffine
createPeakArrivalRate(double rate)
ArrivalCurve_Disco_PwAffine
createPeakArrivalRate(Num rate)
ServiceCurve_Disco_PwAffine
createRateLatency(double rate, double latency)
ServiceCurve_Disco_PwAffine
createRateLatency(Num rate, Num latency)
MaxServiceCurve_Disco_PwAffine
createRateLatencyMSC(double rate, double latency)
MaxServiceCurve_Disco_PwAffine
createRateLatencyMSC(Num rate, Num latency)
ServiceCurve_Disco_PwAffine
createServiceCurve()
ServiceCurve_Disco_PwAffine
createServiceCurve(int segment_count)
ServiceCurve_Disco_PwAffine
createServiceCurve(java.lang.String service_curve_str)
ServiceCurve_Disco_PwAffine
createServiceCurve(Curve curve)
ArrivalCurve_Disco_PwAffine
createTokenBucket(double rate, double burst)
ArrivalCurve_Disco_PwAffine
createTokenBucket(Num rate, Num burst)
ArrivalCurve_Disco_PwAffine
createZeroArrivals()
Curve_Disco_PwAffine
createZeroCurve()
ServiceCurve_Disco_PwAffine
createZeroDelayInfiniteBurst()
Creates an infinite burst curve with zero delay.MaxServiceCurve_Disco_PwAffine
createZeroDelayInfiniteBurstMSC()
private void
createZeroSegmentsCurve(int segment_count)
ServiceCurve_Disco_PwAffine
createZeroService()
private void
decomposeIntoRateLatencies()
Decomposes this curve into a list of rate latency curves and stores this list in the curve'srate_latencies
field.
Note: Curve must be convex.private void
decomposeIntoTokenBuckets()
Decomposes this curve into a list of token bucket curves and stores this list in the curve'stoken_buckets
field.
Note: Curve must be concave.boolean
equals(java.lang.Object obj)
Num
f(Num x)
Returns the function value at x-coordinatex
, ifx>=0
, andNaN
if not.Num
f_inv(Num y)
Returns the smallest x value at which the function value is equal toy
.Num
f_inv(Num y, boolean rightmost)
Returns the x value at which the function value is equal toy
.Num
fLimitRight(Num x)
Returns the limit to the right of the function value at x-coordinatex
, ifx>=0
, andNaN
if not.protected void
forceThroughOrigin()
Num
getBurst()
static Curve_Disco_PwAffine
getFactory()
Num
getGradientLimitRight(Num x)
Returns the gradient to the right of the function value at x-coordinatex
, ifx>=0
, andNaN
if not.Num
getLatency()
Returns the x-coordinate of the inflection point after which the function values are greater than zero.Curve_Disco_PwAffine
getRL_Component(int i)
Returns thei
the rate latency curve that this curve can be decomposed into.int
getRL_ComponentCount()
Returns the number of rate latency curves the curve can be decomposed into.java.util.List<Curve_Affine>
getRL_Components()
boolean
getRL_Property()
LinearSegment_Disco
getSegment(int pos)
Starting at 0.int
getSegmentCount()
Returns the number of segments in this curve.int
getSegmentDefining(Num x)
Returns the number of the segment that defines the function value at x-coordinatex
.private int
getSegmentFirstAtValue(Num y)
Returns the first segment at which the function reaches the valuey
.int
getSegmentLimitRight(Num x)
Returns the number of the segment that defines the value of the function when computing the limit to the right of the function at x-coordinatex
.Curve_Disco_PwAffine
getTB_Component(int i)
Returns thei
the token bucket curve that this curve can be decomposed into.int
getTB_ComponentCount()
Returns the number of token buckets the curve can be decomposed into.java.util.List<Curve_Affine>
getTB_Components()
Num
getUltAffineRate()
Returns the gradient of the last segment.int
hashCode()
boolean
hasRateLatencyMetaInfo()
boolean
hasTokenBucketMetaInfo()
protected void
initializeCurve(java.lang.String curve_str)
boolean
isAlmostConcave()
Tests whether the curve is almost concave, i.e.boolean
isConcave()
Tests whether the curve is concave.boolean
isConcaveIn(Num a, Num b)
Tests whether the curve is concave in [a,b].boolean
isConvex()
Tests whether the curve is convex.boolean
isConvexIn(Num a, Num b)
Tests whether the curve is convex in [a,b].boolean
isDelayedInfiniteBurst()
boolean
isDiscontinuity(int pos)
Returns whether the inflection point is a (real or unreal) discontinuity.boolean
isRateLatency()
boolean
isRealDiscontinuity(int pos)
Returns whether the inflection point is a real discontinuity, i.e.boolean
isTokenBucket()
boolean
isUnrealDiscontinuity(int pos)
Returns whether the inflection point is an unreal discontinuity, i.e.boolean
isWideSenseIncreasing()
Tests whether the curve is wide-sense increasing.private void
makeDelayedInfiniteBurst(Curve_Disco_PwAffine c_dnc, Num delay)
private void
makeHorizontal(Curve_Disco_PwAffine c_dnc, Num y)
private void
makePeakRate(Curve_Disco_PwAffine c_dnc, Num rate)
private void
makeRateLatency(Curve_Disco_PwAffine c_dnc, Num rate, Num latency)
private void
makeTokenBucket(Curve_Disco_PwAffine c_dnc, Num rate, Num burst)
void
removeSegment(int pos)
Removes the segment at positionpos
.void
setRateLateny(boolean is_rate_latency)
void
setRL_Components(java.util.List<Curve> rate_latencies)
void
setRL_MetaInfo(boolean has_rate_latency_meta_info)
void
setSegment(int pos, LinearSegment s)
protected void
setSegments(LinearSegment[] segments)
void
setTB_Components(java.util.List<Curve> token_buckets)
void
setTB_MetaInfo(boolean has_token_bucket_meta_info)
void
setTokenBucket(boolean is_token_bucket)
java.lang.String
toString()
Returns a string representation of this curve.
-
-
-
Field Detail
-
instance
private static Curve_Disco_PwAffine instance
-
segments
protected LinearSegment_Disco[] segments
-
is_delayed_infinite_burst
protected boolean is_delayed_infinite_burst
-
is_rate_latency
protected boolean is_rate_latency
-
has_rate_latency_meta_info
protected boolean has_rate_latency_meta_info
-
rate_latencies
protected java.util.List<Curve_Disco_PwAffine> rate_latencies
-
is_token_bucket
protected boolean is_token_bucket
-
has_token_bucket_meta_info
protected boolean has_token_bucket_meta_info
-
token_buckets
protected java.util.List<Curve_Disco_PwAffine> token_buckets
-
-
Constructor Detail
-
Curve_Disco_PwAffine
protected Curve_Disco_PwAffine()
Creates aCurveDNC
instance with a single segment on the x-axis.
-
Curve_Disco_PwAffine
protected Curve_Disco_PwAffine(Curve curve)
-
Curve_Disco_PwAffine
protected Curve_Disco_PwAffine(int segment_count)
Creates aCurve
instance withsegment_count
emptyLinearSegment
instances.- Parameters:
segment_count
- the number of segments
-
-
Method Detail
-
getFactory
public static Curve_Disco_PwAffine getFactory()
-
isRateLatency
public boolean isRateLatency()
- Specified by:
isRateLatency
in interfaceCurve_Affine
-
isTokenBucket
public boolean isTokenBucket()
- Specified by:
isTokenBucket
in interfaceCurve_Affine
-
hasRateLatencyMetaInfo
public boolean hasRateLatencyMetaInfo()
-
setRL_MetaInfo
public void setRL_MetaInfo(boolean has_rate_latency_meta_info)
- Specified by:
setRL_MetaInfo
in interfaceCurve
-
getRL_Components
public java.util.List<Curve_Affine> getRL_Components()
- Specified by:
getRL_Components
in interfaceCurve_PwAffine
-
setRL_Components
public void setRL_Components(java.util.List<Curve> rate_latencies)
- Specified by:
setRL_Components
in interfaceCurve
-
hasTokenBucketMetaInfo
public boolean hasTokenBucketMetaInfo()
-
setTB_MetaInfo
public void setTB_MetaInfo(boolean has_token_bucket_meta_info)
- Specified by:
setTB_MetaInfo
in interfaceCurve
-
getTB_Components
public java.util.List<Curve_Affine> getTB_Components()
- Specified by:
getTB_Components
in interfaceCurve_PwAffine
-
setTB_Components
public void setTB_Components(java.util.List<Curve> token_buckets)
- Specified by:
setTB_Components
in interfaceCurve
-
createNewCurve
private void createNewCurve(int segment_count, boolean empty)
-
createZeroSegmentsCurve
private void createZeroSegmentsCurve(int segment_count)
-
initializeCurve
protected void initializeCurve(java.lang.String curve_str) throws java.lang.Exception
- Throws:
java.lang.Exception
-
forceThroughOrigin
protected void forceThroughOrigin()
-
clearMetaInfo
private void clearMetaInfo()
-
copy
public Curve_Disco_PwAffine copy()
Returns a copy of this instance.- Specified by:
copy
in interfaceCurve
- Specified by:
copy
in interfaceCurve_Affine
- Specified by:
copy
in interfaceCurve_PwAffine
- Returns:
- a copy of this instance.
-
copy
public void copy(Curve curve)
- Specified by:
copy
in interfaceCurve
- Specified by:
copy
in interfaceCurve_Affine
- Specified by:
copy
in interfaceCurve_PwAffine
-
getSegment
public LinearSegment_Disco getSegment(int pos)
Starting at 0.- Specified by:
getSegment
in interfaceCurve
- Parameters:
pos
- Position of the segment to return.- Returns:
- The linear segment at position pos.
-
getSegmentCount
public int getSegmentCount()
Returns the number of segments in this curve.- Specified by:
getSegmentCount
in interfaceCurve
- Returns:
- the number of segments
-
getSegmentDefining
public int getSegmentDefining(Num x)
Returns the number of the segment that defines the function value at x-coordinatex
. The number of the segment is usually the same as the one returned bygetSegmentLimitRight(x)
, except for if a segment starts atx
and is left-open. In this case the function returns the previous segment, rather than the current segment, as the previous segment definesx
.- Specified by:
getSegmentDefining
in interfaceCurve
- Parameters:
x
- the x-coordinate- Returns:
- the index of the segment into the array.
-
getSegmentLimitRight
public int getSegmentLimitRight(Num x)
Returns the number of the segment that defines the value of the function when computing the limit to the right of the function at x-coordinatex
. The number of the segment is usually the same as the one returned bygetSegmentDefining(x)
, except for if a segment starts atx
and is left-open. In this case the function returns the current segment, rather than the previous segment.- Parameters:
x
- the x-coordinate- Returns:
- the index of the segment into the array.
-
setSegment
public void setSegment(int pos, LinearSegment s)
-
setSegments
protected void setSegments(LinearSegment[] segments)
-
addSegment
public void addSegment(LinearSegment s)
Adds aLinearSegment
to the end of the curve.
Note: It is the user's responsibility to add segments in the order of increasing x-coordinates.- Specified by:
addSegment
in interfaceCurve
- Parameters:
s
- the segment to be added.
-
addSegment
public void addSegment(int pos, LinearSegment s)
Adds aLinearSegment
at the locationpos
of the curve.
Note1; Segments after pos will be pushed back by one position.
Note2: It is the user's responsibility to add segments in the order of increasing x-coordinates.- Specified by:
addSegment
in interfaceCurve
- Parameters:
pos
- the index into the segment array to add the new segment.s
- the segment to be added.
-
removeSegment
public void removeSegment(int pos)
Removes the segment at positionpos
.- Specified by:
removeSegment
in interfaceCurve
- Parameters:
pos
- the index of the segment to be removed.
-
isDiscontinuity
public boolean isDiscontinuity(int pos)
Returns whether the inflection point is a (real or unreal) discontinuity.- Specified by:
isDiscontinuity
in interfaceCurve
- Parameters:
pos
- the index of the IP- Returns:
true
if the IP is a discontinuity,false
if not.
-
isRealDiscontinuity
public boolean isRealDiscontinuity(int pos)
Returns whether the inflection point is a real discontinuity, i.e. the y0 of the leftopen segment differs from the previous one.- Specified by:
isRealDiscontinuity
in interfaceCurve
- Parameters:
pos
- the index of the IP- Returns:
true
if the IP is a real discontinuity,false
if not.
-
isUnrealDiscontinuity
public boolean isUnrealDiscontinuity(int pos)
Returns whether the inflection point is an unreal discontinuity, i.e. the y0 of the leftopen segment is coincident with the y0 of the previous segment and therefore the unreal discontinuity may safely be removed.- Specified by:
isUnrealDiscontinuity
in interfaceCurve
- Parameters:
pos
- the index of the IP- Returns:
true
if the IP is an unreal discontinuity,false
if not.
-
isWideSenseIncreasing
public boolean isWideSenseIncreasing()
Tests whether the curve is wide-sense increasing.- Specified by:
isWideSenseIncreasing
in interfaceCurve
- Returns:
- whether the curve is wide-sense increasing.
-
isConvex
public boolean isConvex()
Tests whether the curve is convex.
-
isConvexIn
public boolean isConvexIn(Num a, Num b)
Tests whether the curve is convex in [a,b].- Specified by:
isConvexIn
in interfaceCurve
- Parameters:
a
- the lower bound of the test interval.b
- the upper bound of the test interval.- Returns:
- whether the curve is convex
-
isConcave
public boolean isConcave()
Tests whether the curve is concave.
-
isConcaveIn
public boolean isConcaveIn(Num a, Num b)
Tests whether the curve is concave in [a,b].- Specified by:
isConcaveIn
in interfaceCurve
- Parameters:
a
- the lower bound of the test interval.b
- the upper bound of the test interval.- Returns:
- whether the curve is concave.
-
isAlmostConcave
public boolean isAlmostConcave()
Tests whether the curve is almost concave, i.e. it is concave once its function value is larger than 0.- Specified by:
isAlmostConcave
in interfaceCurve
- Returns:
- whether the curve is almost concave.
-
equals
public boolean equals(java.lang.Object obj)
-
hashCode
public int hashCode()
-
toString
public java.lang.String toString()
Returns a string representation of this curve.
-
fLimitRight
public Num fLimitRight(Num x)
Returns the limit to the right of the function value at x-coordinatex
, ifx>=0
, andNaN
if not.- Specified by:
fLimitRight
in interfaceCurve
- Parameters:
x
- the x-coordinate- Returns:
- the function value
-
f_inv
public Num f_inv(Num y)
Returns the smallest x value at which the function value is equal toy
.
-
f_inv
public Num f_inv(Num y, boolean rightmost)
Returns the x value at which the function value is equal toy
. Ifrightmost
istrue
, returns the rightmost x-coordinate, otherwise the leftmost coordinate.
-
getSegmentFirstAtValue
private int getSegmentFirstAtValue(Num y)
Returns the first segment at which the function reaches the valuey
. It returns -1 if the curve never reaches this value.- Parameters:
y
- the y-coordinate- Returns:
- the segment number
-
getLatency
public Num getLatency()
Returns the x-coordinate of the inflection point after which the function values are greater than zero.- Specified by:
getLatency
in interfaceCurve
- Returns:
- the latency of this curve.
-
getGradientLimitRight
public Num getGradientLimitRight(Num x)
Returns the gradient to the right of the function value at x-coordinatex
, ifx>=0
, andNaN
if not.- Specified by:
getGradientLimitRight
in interfaceCurve
- Parameters:
x
- the x-coordinate- Returns:
- the function value
-
getUltAffineRate
public Num getUltAffineRate()
Returns the gradient of the last segment.- Specified by:
getUltAffineRate
in interfaceCurve
- Returns:
- the rate of the ultimately affine part.
-
isDelayedInfiniteBurst
public boolean isDelayedInfiniteBurst()
- Specified by:
isDelayedInfiniteBurst
in interfaceCurve
-
getRL_Property
public boolean getRL_Property()
-
setRateLateny
public void setRateLateny(boolean is_rate_latency)
- Specified by:
setRateLateny
in interfaceCurve
-
getRL_ComponentCount
public int getRL_ComponentCount()
Returns the number of rate latency curves the curve can be decomposed into.- Specified by:
getRL_ComponentCount
in interfaceCurve
- Returns:
- the number of rate latency curves
-
getRL_Component
public Curve_Disco_PwAffine getRL_Component(int i)
Returns thei
the rate latency curve that this curve can be decomposed into.- Specified by:
getRL_Component
in interfaceCurve
- Parameters:
i
- the number of the rate latency curve- Returns:
- the rate latency curve
-
decomposeIntoRateLatencies
private void decomposeIntoRateLatencies()
Decomposes this curve into a list of rate latency curves and stores this list in the curve'srate_latencies
field.
Note: Curve must be convex.
-
setTokenBucket
public void setTokenBucket(boolean is_token_bucket)
- Specified by:
setTokenBucket
in interfaceCurve
-
getTB_ComponentCount
public int getTB_ComponentCount()
Returns the number of token buckets the curve can be decomposed into.- Specified by:
getTB_ComponentCount
in interfaceCurve
- Returns:
- the number of token buckets
-
getTB_Component
public Curve_Disco_PwAffine getTB_Component(int i)
Returns thei
the token bucket curve that this curve can be decomposed into.- Specified by:
getTB_Component
in interfaceCurve
- Parameters:
i
- the number of the token bucket- Returns:
- the token bucket
-
decomposeIntoTokenBuckets
private void decomposeIntoTokenBuckets()
Decomposes this curve into a list of token bucket curves and stores this list in the curve'stoken_buckets
field.
Note: Curve must be concave.
-
createCurve
public Curve_Disco_PwAffine createCurve(java.util.List<LinearSegment> segments)
- Specified by:
createCurve
in interfaceCurve
-
createZeroCurve
public Curve_Disco_PwAffine createZeroCurve()
- Specified by:
createZeroCurve
in interfaceCurve
-
createHorizontal
public Curve_Disco_PwAffine createHorizontal(Num y)
Creates a horizontal curve.- Specified by:
createHorizontal
in interfaceCurve
- Parameters:
y
- the y-intercept of the curve- Returns:
- a
Curve
instance
-
createServiceCurve
public ServiceCurve_Disco_PwAffine createServiceCurve()
- Specified by:
createServiceCurve
in interfaceCurve
-
createServiceCurve
public ServiceCurve_Disco_PwAffine createServiceCurve(int segment_count)
- Specified by:
createServiceCurve
in interfaceCurve
-
createServiceCurve
public ServiceCurve_Disco_PwAffine createServiceCurve(java.lang.String service_curve_str) throws java.lang.Exception
- Specified by:
createServiceCurve
in interfaceCurve
- Throws:
java.lang.Exception
-
createServiceCurve
public ServiceCurve_Disco_PwAffine createServiceCurve(Curve curve)
- Specified by:
createServiceCurve
in interfaceCurve
-
createZeroService
public ServiceCurve_Disco_PwAffine createZeroService()
- Specified by:
createZeroService
in interfaceCurve
-
createZeroDelayInfiniteBurst
public ServiceCurve_Disco_PwAffine createZeroDelayInfiniteBurst()
Creates an infinite burst curve with zero delay.- Specified by:
createZeroDelayInfiniteBurst
in interfaceCurve
- Returns:
- a
ServiceCurve
instance
-
createDelayedInfiniteBurst
public ServiceCurve_Disco_PwAffine createDelayedInfiniteBurst(double delay)
- Specified by:
createDelayedInfiniteBurst
in interfaceCurve
-
createDelayedInfiniteBurst
public ServiceCurve_Disco_PwAffine createDelayedInfiniteBurst(Num delay)
- Specified by:
createDelayedInfiniteBurst
in interfaceCurve
-
createRateLatency
public ServiceCurve_Disco_PwAffine createRateLatency(double rate, double latency)
- Specified by:
createRateLatency
in interfaceCurve
-
createRateLatency
public ServiceCurve_Disco_PwAffine createRateLatency(Num rate, Num latency)
- Specified by:
createRateLatency
in interfaceCurve
-
createArrivalCurve
public ArrivalCurve_Disco_PwAffine createArrivalCurve()
- Specified by:
createArrivalCurve
in interfaceCurve
-
createArrivalCurve
public ArrivalCurve_Disco_PwAffine createArrivalCurve(int segment_count)
- Specified by:
createArrivalCurve
in interfaceCurve
-
createArrivalCurve
public ArrivalCurve_Disco_PwAffine createArrivalCurve(java.lang.String arrival_curve_str) throws java.lang.Exception
- Specified by:
createArrivalCurve
in interfaceCurve
- Throws:
java.lang.Exception
-
createArrivalCurve
public ArrivalCurve_Disco_PwAffine createArrivalCurve(Curve curve)
- Specified by:
createArrivalCurve
in interfaceCurve
-
createArrivalCurve
public ArrivalCurve_Disco_PwAffine createArrivalCurve(Curve curve, boolean remove_latency)
- Specified by:
createArrivalCurve
in interfaceCurve
-
createZeroArrivals
public ArrivalCurve_Disco_PwAffine createZeroArrivals()
- Specified by:
createZeroArrivals
in interfaceCurve
-
createInfiniteArrivals
public ArrivalCurve_Disco_PwAffine createInfiniteArrivals()
- Specified by:
createInfiniteArrivals
in interfaceCurve
-
createPeakArrivalRate
public ArrivalCurve_Disco_PwAffine createPeakArrivalRate(double rate)
- Specified by:
createPeakArrivalRate
in interfaceCurve
-
createPeakArrivalRate
public ArrivalCurve_Disco_PwAffine createPeakArrivalRate(Num rate)
- Specified by:
createPeakArrivalRate
in interfaceCurve
-
createTokenBucket
public ArrivalCurve_Disco_PwAffine createTokenBucket(double rate, double burst)
- Specified by:
createTokenBucket
in interfaceCurve
-
createTokenBucket
public ArrivalCurve_Disco_PwAffine createTokenBucket(Num rate, Num burst)
- Specified by:
createTokenBucket
in interfaceCurve
-
createMaxServiceCurve
public MaxServiceCurve_Disco_PwAffine createMaxServiceCurve()
- Specified by:
createMaxServiceCurve
in interfaceCurve
-
createMaxServiceCurve
public MaxServiceCurve_Disco_PwAffine createMaxServiceCurve(int segment_count)
- Specified by:
createMaxServiceCurve
in interfaceCurve
-
createMaxServiceCurve
public MaxServiceCurve_Disco_PwAffine createMaxServiceCurve(java.lang.String max_service_curve_str) throws java.lang.Exception
- Specified by:
createMaxServiceCurve
in interfaceCurve
- Throws:
java.lang.Exception
-
createMaxServiceCurve
public MaxServiceCurve_Disco_PwAffine createMaxServiceCurve(Curve curve)
- Specified by:
createMaxServiceCurve
in interfaceCurve
-
createZeroDelayInfiniteBurstMSC
public MaxServiceCurve_Disco_PwAffine createZeroDelayInfiniteBurstMSC()
- Specified by:
createZeroDelayInfiniteBurstMSC
in interfaceCurve
-
createDelayedInfiniteBurstMSC
public MaxServiceCurve_Disco_PwAffine createDelayedInfiniteBurstMSC(double delay)
- Specified by:
createDelayedInfiniteBurstMSC
in interfaceCurve
-
createDelayedInfiniteBurstMSC
public MaxServiceCurve_Disco_PwAffine createDelayedInfiniteBurstMSC(Num delay)
- Specified by:
createDelayedInfiniteBurstMSC
in interfaceCurve
-
createRateLatencyMSC
public MaxServiceCurve_Disco_PwAffine createRateLatencyMSC(double rate, double latency)
- Specified by:
createRateLatencyMSC
in interfaceCurve
-
createRateLatencyMSC
public MaxServiceCurve_Disco_PwAffine createRateLatencyMSC(Num rate, Num latency)
- Specified by:
createRateLatencyMSC
in interfaceCurve
-
makeHorizontal
private void makeHorizontal(Curve_Disco_PwAffine c_dnc, Num y)
-
makeDelayedInfiniteBurst
private void makeDelayedInfiniteBurst(Curve_Disco_PwAffine c_dnc, Num delay)
-
makePeakRate
private void makePeakRate(Curve_Disco_PwAffine c_dnc, Num rate)
-
makeRateLatency
private void makeRateLatency(Curve_Disco_PwAffine c_dnc, Num rate, Num latency)
-
makeTokenBucket
private void makeTokenBucket(Curve_Disco_PwAffine c_dnc, Num rate, Num burst)
-
-