Open sbondorf opened 5 years ago
Ok, the methods are actually there. @phschon already implemented them, I simply overlooked them.
This is great as it means I just have to change the return-curve constructions in MinPlus_MPARTC
.
Implemented in commit cd2109e5b2a4d72d43a302030773ca3778720aeb
In two unrepresentative runs of the functional tests, this change resulted in an overall speedup between 10% and 20%.
There is more to do here, I am re-opening the issue.
Current behavior:
MinPlus_MPARTC
class dispatches operations to their MPA RTC implementation inch.ethz.rtc.kernel.CurveMath
.ch.ethz.rtc.kernel.Curve
.Calculator.getInstance().getCurveFactory().create{Arrival,Service,MaxService}Curve(String str)
.In theory, this allows to create a DNC curve, yet, that is an option we never use. The calculator config does not change during runtime and therefore the DNC will always continue working with the MPA RTC backend. For that reason,
MinPlus_MPARTC
should directly create an instance of{Arrival,Service,MaxService}Curve_MPARTC_PwAffine
that wraps the MPA RTC curve.To achieve this, the classes
{Arrival,Service,MaxService}Curve_MPARTC_PwAffine
need to be extended by a{Arrival,Service,MaxService}Curve_MPARTC_PwAffine(ch.ethz.rtc.kernel.Curve curve)
method each. It may be possible to just dispatch to another method creating a wrapper forcurve
.