/* Ċ Ġ* Ċ Ġ* ĠĠ ĠCopyright Ġ 2 0 2 1 ĠB ud ape st ĠUniversity Ġof ĠTechnology Ġand ĠEconom ics Ċ Ġ* Ċ Ġ* ĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġg spn . rate expressions Ċ Ċ import Ġg spn . Place Ċ import Ġhu . b me . mit . delta . m dd . M dd Variable Order Ċ import Ġsolver . TT Vector Ċ Ċ class Ċ Place Ref ( val Ġplace : ĠPlace , Ġval Ġfunction : Ġ( Int )-> Double Ġ= Ġ{ it . toDouble ()} ): ĠRate Expression () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto Canonical () Ġ= Ġthis ĊĠĠĠ Ġoverride Ġfun Ġdeep Copy () Ġ= ĠPlace Ref ( place , Ġfunction ) ĊĠĠĠ Ġoverride Ġfun Ġto TT ( var Order : ĠM dd Variable Order ): ĠTT Vector Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= ĠTT Vector . ones ( var Order . map Ġ{ Ġit . domain Size Ġ}. to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġval Ġidx Ġ= Ġvar Order . indexOf First Ġ{ Ġit . trace Info Ġ== Ġplace . name Ġ} ĊĠĠĠĠĠĠĠ Ġrepeat ( v . tt . cores [ idx ]. mode Length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . tt . cores [ idx ][ it ][ 0 , 0 ] Ġ= Ġfunction ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} Ċ }