package Ġde . ba uer apps . res im ulate . helper Ċ Ċ import Ġde . ba uer apps . res im ulate . views . ES ViewType Ċ import Ġkotlin . math . exp Ċ Ċ class ĠBase line D rift ( val Ġtype : ĠES ViewType ) Ġ{ ĊĊĠ Ġprivate Ġvar Ġbaseline D rift Period Ġ= Ġ 3 . 0 ĊĠ Ġprivate Ġvar Ġbaseline D rift Sim Time Ġ= Ġ 0 . 0 ĊĠ Ġprivate Ġvar Ġbaseline D rift Target Ġ= Ġ 0 . 0 ĊĠ Ġprivate Ġvar Ġbaseline D rift Last Reached Ġ= Ġ 0 . 0 ĊĊĠ Ġprivate Ġval Ġtarget Factor : ĠDouble Ġ= ĊĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠ ĠES ViewType . EC G Ġ-> Ġ 0 . 5 ĊĠĠĠĠĠ ĠES ViewType . PLE TH Ġ-> Ġ 1 0 . 0 ĊĠĠĠĠĠ ĠES ViewType . CAP Ġ-> Ġ 3 . 0 ĊĠĠĠ Ġ} ĊĊĊĠ Ġfun Ġcalc ( time step : ĠDouble ): ĠDouble Ġ{ ĊĊĠĠĠ Ġif Ġ( baseline D rift Sim Time Ġ>= Ġbaseline D rift Period ) Ġ{ ĊĠĠĠĠĠ Ġbaseline D rift Sim Time Ġ= Ġ 0 . 0 ĊĠĠĠĠĠ Ġ// ĠPro duces Ġvalues Ġbetween Ġ 3 Ġand Ġ 7 ĊĠĠĠĠĠ Ġbaseline D rift Period Ġ= Ġ( 3 . 0 Ġ+ Ġ 2 . 0 Ġ* Ġ( Math . random () Ġ- Ġ 0 . 5 )) ĊĠĠĠĠĠ Ġbaseline D rift Last Reached Ġ= Ġbaseline D rift Target ĊĠĠĠĠĠ Ġbaseline D rift Target Ġ= Ġ( Math . random () Ġ- Ġ 0 . 5 ) Ġ* Ġtarget Factor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġx 0 Ġ= Ġbaseline D rift Period Ġ/ Ġ 2 . 0 ĊĠĠĠ Ġ/* Ġk Ġis Ġthe Ġst eep ness Ġof Ġthe Ġcurve . ĠThe Ġadapt ibility Ġthrough Ġthe ĊĠĠĠĠĠĠĠ Ġdependency Ġon Ġx 0 Ġis Ġchosen Ġto Ġmake Ġk Ġmore Ġad ap table Ġto Ġdifferent ĊĠĠĠĠĠĠĠ Ġspeed s Ġand Ġheight s Ġof Ġchanges .*/ ĊĠĠĠ Ġval Ġk Ġ= Ġ 3 . 0 Ġ/ Ġx 0 ĊĠĠĠ Ġval Ġx Ġ= Ġbaseline D rift Sim Time ĊĊĠĠĠ Ġval ĠL Ġ= Ġbaseline D rift Target Ġ- Ġbaseline D rift Last Reached ĊĠĠĠ Ġval Ġbaseline Ġ= Ġbaseline D rift Last Reached Ġ+ ĠL Ġ/ Ġ( 1 Ġ+ Ġ( exp (- k Ġ* Ġ( x Ġ- Ġx 0 )))) ĊĊĠĠĠ Ġbaseline D rift Sim Time Ġ+= Ġtimestep ĊĠĠĠ Ġreturn Ġbaseline ĊĠ Ġ} Ċ Ċ }