Curve
, CurvePwAffine
ArrivalCurve_MPARTC_PwAffine
, MaxServiceCurve_MPARTC_PwAffine
, ServiceCurve_MPARTC_PwAffine
public class Curve_MPARTC_PwAffine extends java.lang.Object implements CurvePwAffine
CurvePwAffine.CurveOperation
Modifier and Type | Field | Description |
---|---|---|
protected boolean |
has_rate_latency_meta_info |
|
protected boolean |
has_token_bucket_meta_info |
|
private static Curve_MPARTC_PwAffine |
instance |
|
protected boolean |
is_delayed_infinite_burst |
|
protected boolean |
is_rate_latency |
|
protected boolean |
is_token_bucket |
|
protected java.util.List<Curve_MPARTC_PwAffine> |
rate_latencies |
|
protected ch.ethz.rtc.kernel.Curve |
rtc_curve |
|
protected java.util.List<Curve_MPARTC_PwAffine> |
token_buckets |
Modifier | Constructor | Description |
---|---|---|
protected |
Curve_MPARTC_PwAffine() |
Creates a
Curve instance with a single segment on the x-axis. |
protected |
Curve_MPARTC_PwAffine(int segment_count) |
Creates a
Curve instance with segment_count empty
LinearSegment instances. |
protected |
Curve_MPARTC_PwAffine(CurvePwAffine curve) |
add, add, add, add, add, add, add, beautify, boundAtXAxis, computeInflectionPointsX, computeInflectionPointsY, computeResultingCurve, getMaxHorizontalDeviation, getMaxVerticalDeviation, getXIntersection, max, max, max, min, min, min, min, removeLatency, shiftLeftClipping, shiftRight, sub, sub
private static Curve_MPARTC_PwAffine instance
protected ch.ethz.rtc.kernel.Curve rtc_curve
protected boolean is_delayed_infinite_burst
protected boolean is_rate_latency
protected boolean is_token_bucket
protected boolean has_rate_latency_meta_info
protected java.util.List<Curve_MPARTC_PwAffine> rate_latencies
protected boolean has_token_bucket_meta_info
protected java.util.List<Curve_MPARTC_PwAffine> token_buckets
protected Curve_MPARTC_PwAffine()
Curve
instance with a single segment on the x-axis.protected Curve_MPARTC_PwAffine(CurvePwAffine curve)
protected Curve_MPARTC_PwAffine(int segment_count)
Curve
instance with segment_count
empty
LinearSegment
instances.segment_count
- the number of segmentspublic static Curve_MPARTC_PwAffine getFactory()
private void createZeroSegmentsCurve(int segment_count)
public ch.ethz.rtc.kernel.Curve getRtc_curve()
protected void initializeCurve(java.lang.String curve_str) throws java.lang.Exception
java.lang.Exception
private void clearMetaInfo()
public Curve_MPARTC_PwAffine copy()
copy
in interface Curve
copy
in interface CurvePwAffine
public void copy(Curve curve)
copy
in interface Curve
copy
in interface CurvePwAffine
public LinearSegment_MPARTC_PwAffine getSegment(int pos)
getSegment
in interface Curve
private ch.ethz.rtc.kernel.Segment getSegmentRTC(int pos)
public int getSegmentCount()
getSegmentCount
in interface Curve
public int getSegmentDefining(Num x)
getSegmentDefining
in interface Curve
public int getSegmentLimitRight(Num x)
protected void initializeWithSegment(ch.ethz.rtc.kernel.Segment rtc_segment)
protected void initializeWithSegments(ch.ethz.rtc.kernel.SegmentList rtc_segmentList)
public void addSegment(LinearSegment s)
addSegment
in interface Curve
public void addSegment(int pos, LinearSegment s)
addSegment
in interface Curve
public void removeSegment(int pos)
removeSegment
in interface Curve
public boolean isDiscontinuity(int pos)
isDiscontinuity
in interface Curve
public boolean isRealDiscontinuity(int pos)
isRealDiscontinuity
in interface Curve
public boolean isUnrealDiscontinuity(int pos)
isUnrealDiscontinuity
in interface Curve
public boolean isWideSenseIncreasing()
isWideSenseIncreasing
in interface Curve
public boolean isConvex()
isConvex
in interface CurvePwAffine
public boolean isConvexIn(Num a, Num b)
isConvexIn
in interface Curve
public boolean isConcave()
isConcave
in interface CurvePwAffine
public boolean isConcaveIn(Num a, Num b)
isConcaveIn
in interface Curve
a
- the lower bound of the test interval.b
- the upper bound of the test interval.public boolean isAlmostConcave()
isAlmostConcave
in interface CurvePwAffine
public boolean equals(java.lang.Object obj)
public int hashCode()
public java.lang.String toString()
public Num fLimitRight(Num x)
fLimitRight
in interface Curve
public Num getLatency()
getLatency
in interface Curve
public Num getGradientLimitRight(Num x)
getGradientLimitRight
in interface Curve
public Num getTB_Burst()
public void setTB_MetaInfo(boolean has_token_bucket_meta_info)
setTB_MetaInfo
in interface CurvePwAffine
public java.util.List<CurvePwAffine> getRL_Components()
getRL_Components
in interface CurvePwAffine
public void setRL_Components(java.util.List<CurvePwAffine> rate_latencies)
setRL_Components
in interface CurvePwAffine
public java.util.List<CurvePwAffine> getTB_Components()
getTB_Components
in interface CurvePwAffine
public void setTB_Components(java.util.List<CurvePwAffine> token_buckets)
setTB_Components
in interface CurvePwAffine
public void setRL_MetaInfo(boolean has_rate_latency_meta_info)
setRL_MetaInfo
in interface CurvePwAffine
public Num getUltAffineRate()
getUltAffineRate
in interface CurvePwAffine
public void beautify()
public boolean isDelayedInfiniteBurst()
isDelayedInfiniteBurst
in interface Curve
public boolean isRateLatency()
isRateLatency
in interface CurvePwAffine
public void setRateLateny(boolean is_rate_latency)
setRateLateny
in interface CurvePwAffine
public int getRL_ComponentCount()
getRL_ComponentCount
in interface CurvePwAffine
public Curve_MPARTC_PwAffine getRL_Component(int i)
getRL_Component
in interface CurvePwAffine
private void decomposeIntoRateLatencies()
public boolean isTokenBucket()
isTokenBucket
in interface CurvePwAffine
public void setTokenBucket(boolean is_token_bucket)
setTokenBucket
in interface CurvePwAffine
public int getTB_ComponentCount()
getTB_ComponentCount
in interface CurvePwAffine
public Curve_MPARTC_PwAffine getTB_Component(int i)
getTB_Component
in interface CurvePwAffine
private void decomposeIntoTokenBuckets()
public Curve_MPARTC_PwAffine createCurve(java.util.List<LinearSegment> segments)
createCurve
in interface CurvePwAffine
public Curve_MPARTC_PwAffine createZeroCurve()
createZeroCurve
in interface CurvePwAffine
public Curve_MPARTC_PwAffine createHorizontal(double y)
createHorizontal
in interface CurvePwAffine
public Curve_MPARTC_PwAffine createHorizontal(Num y)
createHorizontal
in interface CurvePwAffine
y
- the y-intercept of the curveCurve
instancepublic ServiceCurve_MPARTC_PwAffine createServiceCurve()
createServiceCurve
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createServiceCurve(int segment_count)
createServiceCurve
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createServiceCurve(java.lang.String service_curve_str) throws java.lang.Exception
createServiceCurve
in interface CurvePwAffine
java.lang.Exception
public ServiceCurve_MPARTC_PwAffine createServiceCurve(CurvePwAffine curve)
createServiceCurve
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createZeroService()
createZeroService
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createZeroDelayInfiniteBurst()
createZeroDelayInfiniteBurst
in interface CurvePwAffine
ServiceCurve
instancepublic ServiceCurve_MPARTC_PwAffine createDelayedInfiniteBurst(double delay)
createDelayedInfiniteBurst
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createDelayedInfiniteBurst(Num delay)
createDelayedInfiniteBurst
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createRateLatency(double rate, double latency)
createRateLatency
in interface CurvePwAffine
public ServiceCurve_MPARTC_PwAffine createRateLatency(Num rate, Num latency)
createRateLatency
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createArrivalCurve()
createArrivalCurve
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createArrivalCurve(int segment_count)
createArrivalCurve
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createArrivalCurve(java.lang.String arrival_curve_str) throws java.lang.Exception
createArrivalCurve
in interface CurvePwAffine
java.lang.Exception
public ArrivalCurve_MPARTC_PwAffine createArrivalCurve(CurvePwAffine curve)
createArrivalCurve
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createArrivalCurve(CurvePwAffine curve, boolean remove_latency)
createArrivalCurve
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createZeroArrivals()
createZeroArrivals
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createPeakArrivalRate(double rate)
createPeakArrivalRate
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createPeakArrivalRate(Num rate)
createPeakArrivalRate
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createTokenBucket(double rate, double burst)
createTokenBucket
in interface CurvePwAffine
public ArrivalCurve_MPARTC_PwAffine createTokenBucket(Num rate, Num burst)
createTokenBucket
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createMaxServiceCurve()
createMaxServiceCurve
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createMaxServiceCurve(int segment_count)
createMaxServiceCurve
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createMaxServiceCurve(java.lang.String max_service_curve_str) throws java.lang.Exception
createMaxServiceCurve
in interface CurvePwAffine
java.lang.Exception
public MaxServiceCurve_MPARTC_PwAffine createMaxServiceCurve(CurvePwAffine curve)
createMaxServiceCurve
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createInfiniteMaxService()
createInfiniteMaxService
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createZeroDelayInfiniteBurstMSC()
createZeroDelayInfiniteBurstMSC
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createDelayedInfiniteBurstMSC(double delay)
createDelayedInfiniteBurstMSC
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createDelayedInfiniteBurstMSC(Num delay)
createDelayedInfiniteBurstMSC
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createRateLatencyMSC(double rate, double latency)
createRateLatencyMSC
in interface CurvePwAffine
public MaxServiceCurve_MPARTC_PwAffine createRateLatencyMSC(Num rate, Num latency)
createRateLatencyMSC
in interface CurvePwAffine
private void makeHorizontal(Curve_MPARTC_PwAffine c_rtc, double y)
private void makeDelayedInfiniteBurst(Curve_MPARTC_PwAffine c_rtc, double delay)
private void makePeakRate(Curve_MPARTC_PwAffine c_rtc, double rate)
private void makeRateLatency(Curve_MPARTC_PwAffine c_rtc, double rate, double latency)
private void makeTokenBucket(Curve_MPARTC_PwAffine c_rtc, double rate, double burst)