Running: ./testmodel.py --libraries=/home/hudson/saved_omc/libraries/.openmodelica/libraries/ --ompython_omhome=/usr PNlib_PNlib.Examples.HybTest.TCwithPD.conf.json loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 2.2.0-master/package.mo", uses=false) Using package PNlib with version 2.2 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 2.2.0-master/package.mo) Using package ModelicaServices with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo) Using package Modelica with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo) Using package Complex with version 3.2.3 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo) Running command: translateModel(PNlib.Examples.HybTest.TCwithPD,tolerance=1e-06,outputFormat="mat",numberOfIntervals=5000,variableFilter="P1.t|P2.t|P3.t|T1.fire|T1.instantaneousSpeed|T1.maximumSpeed|time",fileNamePrefix="PNlib_PNlib.Examples.HybTest.TCwithPD") translateModel(PNlib.Examples.HybTest.TCwithPD,tolerance=1e-06,outputFormat="mat",numberOfIntervals=5000,variableFilter="P1.t|P2.t|P3.t|T1.fire|T1.instantaneousSpeed|T1.maximumSpeed|time",fileNamePrefix="PNlib_PNlib.Examples.HybTest.TCwithPD") Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 3.2.3+maint.om/package.mo): time 0.001752/0.001752, allocations: 172.1 kB / 16.12 MB, free: 5.672 MB / 13.93 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 3.2.3+maint.om/package.mo): time 1.701/1.701, allocations: 205.4 MB / 222.3 MB, free: 9.031 MB / 186.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 3.2.3+maint.om/package.mo): time 0.0007822/0.0007821, allocations: 92.81 kB / 270.6 MB, free: 8.258 MB / 218.7 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 2.2.0-master/package.mo): time 0.07318/0.07318, allocations: 16.89 MB / 335.8 MB, free: 6.945 MB / 282.7 MB Notification: Performance of FrontEnd - loaded program: time 0.0004363/0.0004365, allocations: 16 kB / 398.2 MB, free: 61.54 MB / 298.7 MB Notification: Performance of FrontEnd - Absyn->SCode: time 0.0838/0.08425, allocations: 51.69 MB / 449.8 MB, free: 9.809 MB / 298.7 MB Notification: Performance of FrontEnd - scodeFlatten: time 0.281/0.3653, allocations: 82.84 MB / 0.5202 GB, free: 6.309 MB / 346.7 MB Notification: Performance of FrontEnd - mkProgramGraph: time 0.0002021/0.3655, allocations: 73.72 kB / 0.5203 GB, free: 6.27 MB / 346.7 MB Notification: Performance of FrontEnd - DAE generated: time 0.08563/0.4512, allocations: 32.97 MB / 0.5525 GB, free: 10.08 MB / 378.7 MB Notification: Performance of FrontEnd: time 1.453e-06/0.4512, allocations: 11.94 kB / 0.5525 GB, free: 10.07 MB / 378.7 MB Notification: Performance of Transformations before backend: time 9.54e-05/0.4513, allocations: 31.75 kB / 0.5525 GB, free: 10.04 MB / 378.7 MB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 556 * Number of variables: 556 Notification: Performance of Generate backend data structure: time 0.006058/0.4574, allocations: 2.843 MB / 0.5553 GB, free: 7.242 MB / 378.7 MB Notification: Performance of prepare preOptimizeDAE: time 4.025e-05/0.4575, allocations: 11.97 kB / 0.5553 GB, free: 7.23 MB / 378.7 MB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.002916/0.4604, allocations: 470.2 kB / 0.5557 GB, free: 6.773 MB / 378.7 MB Notification: Performance of preOpt evaluateParameters (simulation): time 0.002781/0.4632, allocations: 1.057 MB / 0.5568 GB, free: 5.941 MB / 378.7 MB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.0004997/0.4637, allocations: 405.7 kB / 0.5572 GB, free: 5.547 MB / 378.7 MB Notification: Performance of preOpt expandDerOperator (simulation): time 0.0009792/0.4647, allocations: 245.1 kB / 0.5574 GB, free: 5.352 MB / 378.7 MB Notification: Performance of preOpt clockPartitioning (simulation): time 0.008476/0.4732, allocations: 4.114 MB / 0.5614 GB, free: 2.277 MB / 378.7 MB Notification: Performance of preOpt findStateOrder (simulation): time 5.443e-05/0.4733, allocations: 4 kB / 0.5614 GB, free: 2.273 MB / 378.7 MB Notification: Performance of preOpt replaceEdgeChange (simulation): time 0.0005454/0.4738, allocations: 125.1 kB / 0.5615 GB, free: 2.199 MB / 378.7 MB Notification: Performance of preOpt inlineArrayEqn (simulation): time 0.0002337/0.4741, allocations: 152.9 kB / 0.5617 GB, free: 2.066 MB / 378.7 MB Notification: Performance of preOpt removeEqualRHS (simulation): time 0.005489/0.4796, allocations: 2.976 MB / 0.5646 GB, free: 15.12 MB / 394.7 MB Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.01261/0.4922, allocations: 7.511 MB / 0.5719 GB, free: 7.43 MB / 394.7 MB Notification: Performance of preOpt comSubExp (simulation): time 0.005157/0.4974, allocations: 4.468 MB / 0.5763 GB, free: 2.938 MB / 394.7 MB Notification: Performance of preOpt resolveLoops (simulation): time 0.004797/0.5022, allocations: 4.255 MB / 0.5804 GB, free: 14.66 MB / 410.7 MB Notification: Performance of preOpt evalFunc (simulation): time 0.0001237/0.5024, allocations: 32.59 kB / 0.5805 GB, free: 14.63 MB / 410.7 MB Notification: Performance of preOpt encapsulateWhenConditions (simulation): time 0.004278/0.5067, allocations: 2.477 MB / 0.5829 GB, free: 12.09 MB / 410.7 MB Notification: Performance of pre-optimization done (n=207): time 4.248e-06/0.5067, allocations: 0 / 0.5829 GB, free: 12.09 MB / 410.7 MB Notification: Performance of matching and sorting (n=207): time 0.01249/0.5192, allocations: 7.424 MB / 0.5901 GB, free: 4.492 MB / 410.7 MB Notification: Performance of inlineWhenForInitialization (initialization): time 0.001017/0.5202, allocations: 1.459 MB / 0.5916 GB, free: 2.77 MB / 410.7 MB Notification: Performance of selectInitializationVariablesDAE (initialization): time 0.001568/0.5218, allocations: 0.9521 MB / 0.5925 GB, free: 1.805 MB / 410.7 MB Notification: Performance of collectPreVariables (initialization): time 0.0003575/0.5222, allocations: 133.7 kB / 0.5926 GB, free: 1.668 MB / 410.7 MB Notification: Performance of collectInitialEqns (initialization): time 0.0007904/0.523, allocations: 0.679 MB / 0.5933 GB, free: 0.9766 MB / 410.7 MB Notification: Performance of collectInitialBindings (initialization): time 0.0007355/0.5237, allocations: 0.5174 MB / 0.5938 GB, free: 464 kB / 410.7 MB Notification: Performance of simplifyInitialFunctions (initialization): time 0.0002187/0.524, allocations: 64 kB / 0.5939 GB, free: 400 kB / 410.7 MB Notification: Performance of setup shared object (initialization): time 0.0003485/0.5243, allocations: 481.8 kB / 0.5943 GB, free: 15.91 MB / 426.7 MB Notification: Performance of preBalanceInitialSystem (initialization): time 0.002196/0.5265, allocations: 1.267 MB / 0.5955 GB, free: 14.64 MB / 426.7 MB Notification: Performance of partitionIndependentBlocks (initialization): time 0.002872/0.5294, allocations: 2.317 MB / 0.5978 GB, free: 11.86 MB / 426.7 MB Notification: Performance of analyzeInitialSystem (initialization): time 0.005714/0.5352, allocations: 5.097 MB / 0.6028 GB, free: 5.988 MB / 426.7 MB Notification: Performance of solveInitialSystemEqSystem (initialization): time 5.073e-05/0.5352, allocations: 12 kB / 0.6028 GB, free: 5.977 MB / 426.7 MB Notification: Performance of matching and sorting (n=420) (initialization): time 0.008001/0.5432, allocations: 4.965 MB / 0.6076 GB, free: 0.8086 MB / 426.7 MB Notification: Performance of prepare postOptimizeDAE: time 0.0007857/0.5441, allocations: 0.9755 MB / 0.6086 GB, free: 15.65 MB / 442.7 MB Notification: Performance of postOpt simplifyComplexFunction (initialization): time 0.0001082/0.5442, allocations: 35.98 kB / 0.6086 GB, free: 15.61 MB / 442.7 MB Notification: Performance of postOpt tearingSystem (initialization): time 0.0007928/0.545, allocations: 192.9 kB / 0.6088 GB, free: 15.42 MB / 442.7 MB Notification: Performance of postOpt solveSimpleEquations (initialization): time 0.001059/0.5461, allocations: 359.1 kB / 0.6092 GB, free: 15.07 MB / 442.7 MB Notification: Performance of postOpt calculateStrongComponentJacobians (initialization): time 0.000727/0.5468, allocations: 1.089 MB / 0.6102 GB, free: 13.92 MB / 442.7 MB Notification: Performance of postOpt simplifyAllExpressions (initialization): time 0.001539/0.5483, allocations: 301.8 kB / 0.6105 GB, free: 13.62 MB / 442.7 MB Notification: Performance of postOpt collapseArrayExpressions (initialization): time 0.0003854/0.5487, allocations: 176.4 kB / 0.6107 GB, free: 13.45 MB / 442.7 MB Warning: Assuming fixed start value for the following 58 variables: P3.enableIn.valid:DISCRETE(fixed = true protected = true ) "valid solution" type: Boolean P3.enableIn.benefitLimit:DISCRETE(fixed = true protected = true ) "best valid benefit" type: Real P3.enableIn.benefitMax:DISCRETE(fixed = true protected = true ) "theoretical benefit" type: Real P3.enableIn.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P3.enableIn.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P3.enableIn.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P3.enableIn.sumEnablingProbTAin:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active input transitions" type: Real P3.enableIn.nTAin:DISCRETE(fixed = true protected = true ) "number ofactive input transitions" type: Integer P3.enableIn.nremTAin:DISCRETE(fixed = true protected = true ) "number of remaining active input transitions" type: Integer P3.enableIn.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer P3.enableOut.valid:DISCRETE(fixed = true protected = true ) "valid solution" type: Boolean P3.enableOut.benefitLimit:DISCRETE(fixed = true protected = true ) "best valid benefit" type: Real P3.enableOut.benefitMax:DISCRETE(fixed = true protected = true ) "theoretical benefit" type: Real P3.enableOut.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P3.enableOut.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P3.enableOut.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P3.enableOut.sumEnablingProbTAout:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active output transitions" type: Real P3.enableOut.nTAout:DISCRETE(fixed = true protected = true ) "number of active output transitions" type: Integer P3.enableOut.nremTAout:DISCRETE(fixed = true protected = true ) "number of remaining active output transitions" type: Integer P3.enableOut.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer P2.enableIn.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P2.enableIn.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P2.enableIn.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P2.enableIn.sumEnablingProbTAin:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active input transitions" type: Real P2.enableIn.nTAin:DISCRETE(fixed = true protected = true ) "number ofactive input transitions" type: Integer P2.enableIn.nremTAin:DISCRETE(fixed = true protected = true ) "number of remaining active input transitions" type: Integer P2.enableIn.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer P2.enableIn.arcWeightSum:DISCRETE(fixed = true protected = true ) "arc weight sum" type: Real P1.enableOut.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P1.enableOut.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P1.enableOut.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P1.enableOut.sumEnablingProbTAout:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active output transitions" type: Real P1.enableOut.nTAout:DISCRETE(fixed = true protected = true ) "number of active output transitions" type: Integer P1.enableOut.nremTAout:DISCRETE(fixed = true protected = true ) "number of remaining active output transitions" type: Integer P1.enableOut.Index:DISCRETE(fixed = true protected = true ) type: Integer P1.enableOut.arcWeightSum:DISCRETE(fixed = true protected = true ) "arc weight sum" type: Real P3.firingSumIn.firingSum:DISCRETE(fixed = true protected = true ) "firing sum" type: Integer P3.firingSumOut.firingSum:DISCRETE(fixed = true protected = true ) "firing sum" type: Integer P2.disMarksOut.anytrue:DISCRETE(fixed = true protected = true ) type: Boolean P2.disMarksIn.anytrue:DISCRETE(fixed = true protected = true ) type: Boolean P1.disMarksOut.anytrue:DISCRETE(fixed = true protected = true ) type: Boolean P1.disMarksIn.anytrue:DISCRETE(fixed = true protected = true ) type: Boolean P2.enableOut.arcWeightSum:DISCRETE(fixed = true protected = true ) "arc weight sum" type: Real P2.enableOut.nremTAout:DISCRETE(fixed = true protected = true ) "number of remaining active output transitions" type: Integer P2.enableOut.nTAout:DISCRETE(fixed = true protected = true ) "number of active output transitions" type: Integer P2.enableOut.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P2.enableOut.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P2.enableOut.sumEnablingProbTAout:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active output transitions" type: Real P2.enableOut.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P2.enableOut.Index:DISCRETE(fixed = true protected = true ) type: Integer P1.enableIn.arcWeightSum:DISCRETE(fixed = true protected = true ) "arc weight sum" type: Real P1.enableIn.nremTAin:DISCRETE(fixed = true protected = true ) "number of remaining active input transitions" type: Integer P1.enableIn.nTAin:DISCRETE(fixed = true protected = true ) "number ofactive input transitions" type: Integer P1.enableIn.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P1.enableIn.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P1.enableIn.sumEnablingProbTAin:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active input transitions" type: Real P1.enableIn.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P1.enableIn.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer Notification: Model statistics after passing the back-end for initialization: * Number of independent subsystems: 144 * Number of states: 0 () * Number of discrete variables: 349 ($PRE.P3.enableIn.valid,P3.enableIn.valid,$PRE.P3.enableIn.benefitLimit,P3.enableIn.benefitLimit,$PRE.P3.enableIn.benefitMax,P3.enableIn.benefitMax,$PRE.P3.enableIn.posTE,P3.enableIn.posTE,$PRE.P3.enableIn.k,P3.enableIn.k,$PRE.P3.enableIn.endWhile,P3.enableIn.endWhile,$PRE.P3.enableIn.state128[1],P3.enableIn.state128[1],$PRE.P3.enableIn.state128[2],P3.enableIn.state128[2],$PRE.P3.enableIn.state128[3],P3.enableIn.state128[3],$PRE.P3.enableIn.state128[4],P3.enableIn.state128[4],$PRE.P3.enableIn.randNum,P3.enableIn.randNum,$PRE.P3.enableIn.cumEnablingProb[1],P3.enableIn.cumEnablingProb[1],$PRE.P3.enableIn.sumEnablingProbTAin,P3.enableIn.sumEnablingProbTAin,$PRE.P3.enableIn.nTAin,P3.enableIn.nTAin,$PRE.P3.enableIn.nremTAin,P3.enableIn.nremTAin,$PRE.P3.enableIn.remTAin[1],P3.enableIn.remTAin[1],$PRE.P3.enableIn.Index,P3.enableIn.Index,$PRE.P3.enableOut.valid,P3.enableOut.valid,$PRE.P3.enableOut.benefitLimit,P3.enableOut.benefitLimit,$PRE.P3.enableOut.benefitMax,P3.enableOut.benefitMax,$PRE.P3.enableOut.posTE,P3.enableOut.posTE,$PRE.P3.enableOut.k,P3.enableOut.k,$PRE.P3.enableOut.endWhile,P3.enableOut.endWhile,$PRE.P3.enableOut.state128[1],P3.enableOut.state128[1],$PRE.P3.enableOut.state128[2],P3.enableOut.state128[2],$PRE.P3.enableOut.state128[3],P3.enableOut.state128[3],$PRE.P3.enableOut.state128[4],P3.enableOut.state128[4],$PRE.P3.enableOut.randNum,P3.enableOut.randNum,$PRE.P3.enableOut.cumEnablingProb[1],P3.enableOut.cumEnablingProb[1],$PRE.P3.enableOut.sumEnablingProbTAout,P3.enableOut.sumEnablingProbTAout,$PRE.P3.enableOut.nTAout,P3.enableOut.nTAout,$PRE.P3.enableOut.nremTAout,P3.enableOut.nremTAout,$PRE.P3.enableOut.remTAout[1],P3.enableOut.remTAout[1],$PRE.P3.enableOut.Index,P3.enableOut.Index,$PRE.P2.enableIn.disTAin[1],P2.enableIn.disTAin[1],$PRE.P2.enableIn.posTE,P2.enableIn.posTE,$PRE.P2.enableIn.k,P2.enableIn.k,$PRE.P2.enableIn.endWhile,P2.enableIn.endWhile,$PRE.P2.enableIn.state128[1],P2.enableIn.state128[1],$PRE.P2.enableIn.state128[2],P2.enableIn.state128[2],$PRE.P2.enableIn.state128[3],P2.enableIn.state128[3],$PRE.P2.enableIn.state128[4],P2.enableIn.state128[4],$PRE.P2.enableIn.randNum,P2.enableIn.randNum,$PRE.P2.enableIn.cumEnablingProb[1],P2.enableIn.cumEnablingProb[1],$PRE.P2.enableIn.sumEnablingProbTAin,P2.enableIn.sumEnablingProbTAin,$PRE.P2.enableIn.nTAin,P2.enableIn.nTAin,$PRE.P2.enableIn.nremTAin,P2.enableIn.nremTAin,$PRE.P2.enableIn.remTAin[1],P2.enableIn.remTAin[1],$PRE.P2.enableIn.Index,P2.enableIn.Index,$PRE.P2.enableIn.arcWeightSum,P2.enableIn.arcWeightSum,$PRE.P1.enableOut.disTAout[1],P1.enableOut.disTAout[1],$PRE.P1.enableOut.posTE,P1.enableOut.posTE,$PRE.P1.enableOut.k,P1.enableOut.k,$PRE.P1.enableOut.endWhile,P1.enableOut.endWhile,$PRE.P1.enableOut.state128[1],P1.enableOut.state128[1],$PRE.P1.enableOut.state128[2],P1.enableOut.state128[2],$PRE.P1.enableOut.state128[3],P1.enableOut.state128[3],$PRE.P1.enableOut.state128[4],P1.enableOut.state128[4],$PRE.P1.enableOut.randNum,P1.enableOut.randNum,$PRE.P1.enableOut.cumEnablingProb[1],P1.enableOut.cumEnablingProb[1],$PRE.P1.enableOut.sumEnablingProbTAout,P1.enableOut.sumEnablingProbTAout,$PRE.P1.enableOut.nTAout,P1.enableOut.nTAout,$PRE.P1.enableOut.nremTAout,P1.enableOut.nremTAout,$PRE.P1.enableOut.remTAout[1],P1.enableOut.remTAout[1],$PRE.P1.enableOut.Index,P1.enableOut.Index,$PRE.P1.enableOut.arcWeightSum,P1.enableOut.arcWeightSum,$whenCondition9,$PRE.P3.reStart,$PRE.P3.firingSumIn.firingSum,$PRE.P3.firingSumOut.firingSum,$whenCondition8,$whenCondition7,P3.tokeninout,$PRE.P3.tokeninout,P3.outTransition[1].tokenInOut,$PRE.P2.disMarksOut.anytrue,$PRE.P2.disMarksIn.anytrue,$whenCondition11,P2.disMarksInOut,P2.disMarksOut.anytrue,P2.disMarksOut.numtrue,$PRE.P1.disMarksOut.anytrue,$PRE.P1.disMarksIn.anytrue,$whenCondition10,P1.disMarksInOut,$PRE.P1.disMarksInOut,P1.outTransition[1].tokenInOut,P1.disMarksIn.anytrue,P1.disMarksIn.numtrue,$PRE.P2.enableOut.arcWeightSum,P2.enableOut.arcWeightSum,$PRE.P2.enableOut.nremTAout,P2.enableOut.nremTAout,$PRE.P2.enableOut.nTAout,P2.enableOut.nTAout,$PRE.P2.enableOut.k,P2.enableOut.k,$PRE.P2.enableOut.posTE,P2.enableOut.posTE,$PRE.P2.enableOut.state128[1],P2.enableOut.state128[1],$PRE.P2.enableOut.state128[2],P2.enableOut.state128[2],$PRE.P2.enableOut.state128[3],P2.enableOut.state128[3],$PRE.P2.enableOut.state128[4],P2.enableOut.state128[4],$PRE.P2.enableOut.randNum,P2.enableOut.randNum,$PRE.P2.enableOut.sumEnablingProbTAout,P2.enableOut.sumEnablingProbTAout,$PRE.P2.enableOut.endWhile,P2.enableOut.endWhile,$PRE.P2.enableOut.Index,P2.enableOut.Index,$whenCondition2,P2.delayPassedOut.anytrue,P2.delayPassedOut.numtrue,$PRE.P1.enableIn.arcWeightSum,P1.enableIn.arcWeightSum,$PRE.P1.enableIn.nremTAin,P1.enableIn.nremTAin,$PRE.P1.enableIn.nTAin,P1.enableIn.nTAin,$PRE.P1.enableIn.k,P1.enableIn.k,$PRE.P1.enableIn.posTE,P1.enableIn.posTE,$PRE.P1.enableIn.state128[1],P1.enableIn.state128[1],$PRE.P1.enableIn.state128[2],P1.enableIn.state128[2],$PRE.P1.enableIn.state128[3],P1.enableIn.state128[3],$PRE.P1.enableIn.state128[4],P1.enableIn.state128[4],$PRE.P1.enableIn.randNum,P1.enableIn.randNum,$PRE.P1.enableIn.sumEnablingProbTAin,P1.enableIn.sumEnablingProbTAin,$PRE.P1.enableIn.endWhile,P1.enableIn.endWhile,$PRE.P1.enableIn.Index,P1.enableIn.Index,$whenCondition1,P1.delayPassedIn.anytrue,P1.delayPassedIn.numtrue,T1.outPlaces[2].enabledByInPlaces,P3.inTransition[1].emptied,T1.outPlaces[2].disTransition,P3.inTransition[1].disPlace,P3.outTransition[1].testValueint,P3.outTransition[1].normalArc,P3.outTransition[1].fed,T1.inPlaces[2].disTransition,P3.outTransition[1].disPlace,P3.outTransition[1].arcType,P2.inTransition[1].tint,P2.inTransition[1].maxTokensint,T1.outPlaces[1].enabledByInPlaces,T1.outPlaces[1].disTransition,P2.inTransition[1].disPlace,P1.outTransition[1].tint,P1.outTransition[1].testValueint,P1.outTransition[1].normalArc,P1.outTransition[1].minTokensint,T1.inPlaces[1].disTransition,P1.outTransition[1].disPlace,P1.outTransition[1].arcType,P3.enableIn.enablingPrio[1],P3.enableOut.enablingPrio[1],P3.reStart,T1.firingCon,P2.enableIn.enablingPrio[1],P2.reStart,P1.enableOut.enablingPrio[1],P1.reStart,P1.disMarksOut.anytrue,P1.disMarksOut.numtrue,P1.disMarksOut.vec[1],P2.disMarksIn.anytrue,P2.disMarksIn.numtrue,P2.disMarksIn.vec[1],P3.enableIn.disTransition[1],$whenCondition3,$whenCondition4,$whenCondition5,$whenCondition6,$PRE.P1.fireOut[1],P1.fireOut[1],P1.enableOut.TAout[1],P1.enableOut.TEout_[1],$PRE.P1.enableOut.TEout[1],P1.enableOut.TEout[1],P1.delayPassedOut.anytrue,P1.delayPassedOut.numtrue,P1.feeding.anytrue,P1.feeding.numtrue,P1.emptying.vec[1],P1.emptying.anytrue,P1.emptying.numtrue,$PRE.P2.fireIn[1],P2.fireIn[1],P2.enableIn.active[1],P2.enableIn.TEin_[1],$PRE.P2.enableIn.TEin[1],P2.enableIn.TEin[1],P2.delayPassedIn.anytrue,P2.delayPassedIn.numtrue,P2.feeding.vec[1],P2.feeding.anytrue,P2.feeding.numtrue,P2.emptying.anytrue,P2.emptying.numtrue,T1.activation.tIntIn[2],T1.activation.tIntOut[2],T1.activation.arcWeightIntIn[2],T1.activation.arcWeightIntOut[2],T1.activation.minTokensInt[2],T1.activation.maxTokensInt[2],T1.activation.fed[1],T1.activation.emptied[1],T1.activation.active,T1.activation.weaklyInputActiveVec[1],T1.activation.weaklyInputActiveVec[2],T1.activation.weaklyOutputActiveVec[1],T1.activation.weaklyOutputActiveVec[2],T1.activation.NoTokens,T1.fire_,$PRE.P3.t,P3.t,$PRE.P3.activeOut[1],P3.activeOut[1],P3.activeConOut.vec[1],P3.activeConOut.anychange,P3.delayPassedOut.anytrue,P3.delayPassedOut.numtrue,P3.delayPassedIn.anytrue,P3.delayPassedIn.numtrue,P3.firingSumIn.arcWeight[1],P3.firingSumIn.firingSum,P3.firingSumOut.arcWeight[1],P3.firingSumOut.firingSum,P3.enableOut.TAout[1],P3.enableOut.TEout_[1],$PRE.P3.enableOut.TEout[1],P3.enableOut.TEout[1],$PRE.P3.enableOut.arcWeightSum,P3.enableOut.arcWeightSum,P3.enableIn.TAein[1],P3.enableIn.active[1],P3.enableIn.TEin_[1],$PRE.P3.enableIn.TEin[1],P3.enableIn.TEin[1],$PRE.P3.enableIn.arcWeightSum,P3.enableIn.arcWeightSum,T1.activation.arcType[1],T1.activation.disPlaceIn[1],T1.activation.minTokensInt[1],T1.activation.normalArc[1],T1.activation.testValueInt[1],T1.activation.tIntIn[1],T1.activation.disPlaceOut[1],T1.activation.maxTokensInt[1],T1.activation.tIntOut[1],T1.activation.arcType[2],T1.activation.disPlaceIn[2],P3.enableOut.disTransition[1],T1.activation.fed[2],T1.activation.normalArc[2],T1.activation.testValueInt[2],T1.activation.disPlaceOut[2],T1.activation.emptied[2],P3.firingSumOut.fire[1],P3.firingSumIn.fire[1],P3.delayPassedIn.vec[1],P3.delayPassedOut.vec[1],P3.enableIn.arcWeight[1],T1.activation.arcWeightIntOut[1],P3.enableOut.arcWeight[1],T1.activation.arcWeightIntIn[1],P2.delayPassedIn.vec[1],P1.delayPassedOut.vec[1]) * Number of discrete states: 0 () * Number of clocked states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for initialization (363): * Single equations (assignments): 332 * Array equations: 0 * Algorithm blocks: 30 * Record equations: 0 * When equations: 0 * If-equations: 0 * Equation systems (linear and non-linear blocks): 0 * Torn equation systems: 1 * Mixed (continuous/discrete) equation systems: 0 Notification: Torn system details for strict tearing set: * Linear torn systems: 0 * Non-linear torn systems: 1 {2 3} Notification: Performance of prepare postOptimizeDAE: time 0.003216/0.552, allocations: 2.048 MB / 0.6127 GB, free: 11.23 MB / 442.7 MB Notification: Performance of postOpt lateInlineFunction (simulation): time 0.0008841/0.5529, allocations: 210.4 kB / 0.6129 GB, free: 11.03 MB / 442.7 MB Notification: Performance of postOpt wrapFunctionCalls (simulation): time 0.01005/0.5629, allocations: 6.048 MB / 0.6188 GB, free: 4.84 MB / 442.7 MB Notification: Performance of postOpt inlineArrayEqn (simulation): time 2.358e-05/0.563, allocations: 15.94 kB / 0.6188 GB, free: 4.824 MB / 442.7 MB Notification: Performance of postOpt constantLinearSystem (simulation): time 7.855e-06/0.563, allocations: 0 / 0.6188 GB, free: 4.824 MB / 442.7 MB Notification: Performance of postOpt simplifysemiLinear (simulation): time 1.328e-05/0.563, allocations: 7.984 kB / 0.6188 GB, free: 4.816 MB / 442.7 MB Notification: Performance of postOpt removeSimpleEquations (simulation): time 0.01328/0.5763, allocations: 8.691 MB / 0.6273 GB, free: 11.94 MB / 458.7 MB Notification: Performance of postOpt simplifyComplexFunction (simulation): time 2.655e-05/0.5764, allocations: 4 kB / 0.6273 GB, free: 11.94 MB / 458.7 MB Notification: Performance of postOpt solveSimpleEquations (simulation): time 0.0003513/0.5767, allocations: 79.88 kB / 0.6274 GB, free: 11.86 MB / 458.7 MB Notification: Performance of postOpt tearingSystem (simulation): time 0.00038/0.5771, allocations: 132.7 kB / 0.6275 GB, free: 11.73 MB / 458.7 MB Notification: Performance of postOpt inputDerivativesUsed (simulation): time 0.0003363/0.5775, allocations: 127.9 kB / 0.6276 GB, free: 11.6 MB / 458.7 MB Notification: Performance of postOpt calculateStrongComponentJacobians (simulation): time 0.0006233/0.5781, allocations: 1.058 MB / 0.6287 GB, free: 10.48 MB / 458.7 MB Notification: Performance of postOpt calculateStateSetsJacobians (simulation): time 2.154e-06/0.5781, allocations: 4 kB / 0.6287 GB, free: 10.48 MB / 458.7 MB Notification: Performance of postOpt symbolicJacobian (simulation): time 0.01333/0.5915, allocations: 9.093 MB / 0.6375 GB, free: 1.203 MB / 458.7 MB Notification: Performance of postOpt removeConstants (simulation): time 0.0003563/0.5919, allocations: 211.2 kB / 0.6377 GB, free: 0.9766 MB / 458.7 MB Notification: Performance of postOpt simplifyTimeIndepFuncCalls (simulation): time 0.0006411/0.5925, allocations: 232 kB / 0.638 GB, free: 0.75 MB / 458.7 MB Notification: Performance of postOpt simplifyAllExpressions (simulation): time 0.001134/0.5937, allocations: 207.8 kB / 0.6382 GB, free: 0.5469 MB / 458.7 MB Notification: Performance of postOpt findZeroCrossings (simulation): time 0.0008769/0.5945, allocations: 0.5199 MB / 0.6387 GB, free: 28 kB / 458.7 MB Notification: Performance of postOpt collapseArrayExpressions (simulation): time 0.187/0.7815, allocations: 157.2 kB / 0.6388 GB, free: 138.8 MB / 458.7 MB Notification: Performance of sorting global known variables: time 0.0008175/0.7824, allocations: 0.5051 MB / 0.6393 GB, free: 138.7 MB / 458.7 MB Notification: Performance of sort global known variables: time 1.5e-07/0.7824, allocations: 1.375 kB / 0.6393 GB, free: 138.7 MB / 458.7 MB Notification: Performance of remove unused functions: time 0.00387/0.7863, allocations: 0.9188 MB / 0.6402 GB, free: 138.7 MB / 458.7 MB Notification: Model statistics after passing the back-end for simulation: * Number of independent subsystems: 3 * Number of states: 2 (P1.t_,P2.t_) * Number of discrete variables: 180 ($whenCondition1,P1.enableIn.state128[1],P1.enableIn.state128[2],P1.enableIn.state128[3],P1.enableIn.state128[4],P1.enableIn.arcWeightSum,P1.enableIn.nremTAin,P1.enableIn.nTAin,P1.enableIn.k,P1.enableIn.posTE,P1.enableIn.randNum,P1.enableIn.sumEnablingProbTAin,P1.enableIn.endWhile,P1.enableIn.Index,P1.delayPassedIn.anytrue,P1.delayPassedIn.numtrue,$whenCondition2,P2.enableOut.state128[1],P2.enableOut.state128[2],P2.enableOut.state128[3],P2.enableOut.state128[4],P2.enableOut.arcWeightSum,P2.enableOut.nremTAout,P2.enableOut.nTAout,P2.enableOut.k,P2.enableOut.posTE,P2.enableOut.randNum,P2.enableOut.sumEnablingProbTAout,P2.enableOut.endWhile,P2.enableOut.Index,P2.delayPassedOut.anytrue,P2.delayPassedOut.numtrue,P2.disMarksInOut,$cse1[1],$cse1[2],$whenCondition11,$whenCondition10,$whenCondition8,$whenCondition7,$whenCondition9,$whenCondition3,$whenCondition4,$whenCondition5,$whenCondition6,P1.disMarksInOut,P1.fireOut[1],P1.enableOut.TAout[1],P1.enableOut.TEout_[1],P1.enableOut.state128[1],P1.enableOut.state128[2],P1.enableOut.state128[3],P1.enableOut.state128[4],P1.enableOut.TEout[1],P1.enableOut.disTAout[1],P1.enableOut.remTAout[1],P1.enableOut.cumEnablingProb[1],P1.enableOut.arcWeightSum,P1.enableOut.nremTAout,P1.enableOut.nTAout,P1.enableOut.k,P1.enableOut.posTE,P1.enableOut.randNum,P1.enableOut.sumEnablingProbTAout,P1.enableOut.endWhile,P1.enableOut.Index,P1.delayPassedOut.anytrue,P1.delayPassedOut.numtrue,P1.disMarksOut.anytrue,P1.disMarksOut.numtrue,P1.disMarksIn.anytrue,P1.disMarksIn.numtrue,P1.feeding.anytrue,P1.feeding.numtrue,P1.emptying.vec[1],P1.emptying.anytrue,P1.emptying.numtrue,P1.outTransition[1].tokenInOut,P2.fireIn[1],P2.enableIn.active[1],P2.enableIn.TEin_[1],P2.enableIn.state128[1],P2.enableIn.state128[2],P2.enableIn.state128[3],P2.enableIn.state128[4],P2.enableIn.TEin[1],P2.enableIn.disTAin[1],P2.enableIn.remTAin[1],P2.enableIn.cumEnablingProb[1],P2.enableIn.arcWeightSum,P2.enableIn.nremTAin,P2.enableIn.nTAin,P2.enableIn.k,P2.enableIn.posTE,P2.enableIn.randNum,P2.enableIn.sumEnablingProbTAin,P2.enableIn.endWhile,P2.enableIn.Index,P2.delayPassedIn.anytrue,P2.delayPassedIn.numtrue,P2.disMarksOut.anytrue,P2.disMarksOut.numtrue,P2.disMarksIn.anytrue,P2.disMarksIn.numtrue,P2.feeding.vec[1],P2.feeding.anytrue,P2.feeding.numtrue,P2.emptying.anytrue,P2.emptying.numtrue,T1.activation.tIntIn[2],T1.activation.tIntOut[2],T1.activation.arcWeightIntIn[2],T1.activation.arcWeightIntOut[2],T1.activation.minTokensInt[2],T1.activation.maxTokensInt[2],T1.activation.fed[1],T1.activation.emptied[1],T1.activation.active,T1.activation.weaklyInputActiveVec[1],T1.activation.weaklyInputActiveVec[2],T1.activation.weaklyOutputActiveVec[1],T1.activation.weaklyOutputActiveVec[2],T1.activation.NoTokens,T1.fire_,P3.t,P3.tokeninout,P3.activeOut[1],P3.activeConOut.vec[1],P3.activeConOut.anychange,P3.delayPassedOut.anytrue,P3.delayPassedOut.numtrue,P3.delayPassedIn.anytrue,P3.delayPassedIn.numtrue,P3.firingSumIn.arcWeight[1],P3.firingSumIn.firingSum,P3.firingSumOut.arcWeight[1],P3.firingSumOut.firingSum,P3.enableOut.TAout[1],P3.enableOut.TEout_[1],P3.enableOut.state128[1],P3.enableOut.state128[2],P3.enableOut.state128[3],P3.enableOut.state128[4],P3.enableOut.TEout[1],P3.enableOut.remTAout[1],P3.enableOut.cumEnablingProb[1],P3.enableOut.arcWeightSum,P3.enableOut.nremTAout,P3.enableOut.nTAout,P3.enableOut.k,P3.enableOut.posTE,P3.enableOut.randNum,P3.enableOut.sumEnablingProbTAout,P3.enableOut.endWhile,P3.enableOut.Index,P3.enableOut.benefitMax,P3.enableOut.valid,P3.enableOut.benefitLimit,P3.enableIn.TAein[1],P3.enableIn.active[1],P3.enableIn.TEin_[1],P3.enableIn.state128[1],P3.enableIn.state128[2],P3.enableIn.state128[3],P3.enableIn.state128[4],P3.enableIn.TEin[1],P3.enableIn.remTAin[1],P3.enableIn.cumEnablingProb[1],P3.enableIn.arcWeightSum,P3.enableIn.nremTAin,P3.enableIn.nTAin,P3.enableIn.k,P3.enableIn.posTE,P3.enableIn.randNum,P3.enableIn.sumEnablingProbTAin,P3.enableIn.endWhile,P3.enableIn.Index,P3.enableIn.benefitMax,P3.enableIn.valid,P3.enableIn.benefitLimit,P3.outTransition[1].tokenInOut) * Number of discrete states: 153 (P3.firingSumOut.firingSum,P3.firingSumIn.firingSum,P3.t,P3.tokeninout,P3.delayPassedIn.numtrue,P3.delayPassedIn.anytrue,P3.delayPassedOut.numtrue,P3.delayPassedOut.anytrue,P3.activeOut[1],P3.activeConOut.anychange,i,P3.activeConOut.vec[i],P2.fireIn[1],P2.disMarksOut.anytrue,P2.disMarksIn.anytrue,P2.emptying.numtrue,P2.emptying.anytrue,P2.feeding.numtrue,P2.feeding.anytrue,P2.disMarksIn.numtrue,P2.disMarksOut.numtrue,P2.delayPassedIn.numtrue,P2.delayPassedIn.anytrue,P1.fireOut[1],P1.disMarksOut.anytrue,P1.disMarksIn.anytrue,P1.disMarksInOut,P1.emptying.numtrue,P1.emptying.anytrue,P1.feeding.numtrue,P1.feeding.anytrue,T1.activation.weaklyOutputActiveVec[2],T1.activation.weaklyOutputActiveVec[1],T1.activation.weaklyInputActiveVec[2],T1.activation.weaklyInputActiveVec[1],T1.activation.active,T1.activation.NoTokens,P3.enableIn.TEin_[1],P3.enableIn.valid,P3.enableIn.benefitLimit,P3.enableIn.benefitMax,P3.enableIn.posTE,P3.enableIn.k,P3.enableIn.endWhile,P3.enableIn.state128[4],P3.enableIn.state128[3],P3.enableIn.state128[2],P3.enableIn.state128[1],P3.enableIn.randNum,P3.enableIn.cumEnablingProb[1],P3.enableIn.sumEnablingProbTAin,P3.enableIn.nTAin,P3.enableIn.nremTAin,P3.enableIn.remTAin[1],P3.enableIn.Index,$whenCondition6,P3.enableIn.arcWeightSum,P3.enableIn.TEin[1],P2.enableIn.TEin_[1],P2.enableIn.disTAin[1],P2.enableIn.posTE,P2.enableIn.k,P2.enableIn.endWhile,P2.enableIn.state128[4],P2.enableIn.state128[3],P2.enableIn.state128[2],P2.enableIn.state128[1],P2.enableIn.randNum,P2.enableIn.cumEnablingProb[1],P2.enableIn.sumEnablingProbTAin,P2.enableIn.nTAin,P2.enableIn.nremTAin,P2.enableIn.remTAin[1],P2.enableIn.Index,P2.enableIn.arcWeightSum,$whenCondition4,P2.enableIn.TEin[1],P3.enableOut.TEout_[1],P3.enableOut.valid,P3.enableOut.benefitLimit,P3.enableOut.benefitMax,P3.enableOut.posTE,P3.enableOut.k,P3.enableOut.endWhile,P3.enableOut.state128[4],P3.enableOut.state128[3],P3.enableOut.state128[2],P3.enableOut.state128[1],P3.enableOut.randNum,P3.enableOut.cumEnablingProb[1],P3.enableOut.sumEnablingProbTAout,P3.enableOut.nTAout,P3.enableOut.nremTAout,P3.enableOut.remTAout[1],P3.enableOut.Index,$whenCondition5,P3.enableOut.arcWeightSum,P3.enableOut.TEout[1],P1.disMarksIn.numtrue,P1.disMarksOut.numtrue,P1.delayPassedOut.numtrue,P1.delayPassedOut.anytrue,P1.enableOut.TEout_[1],P1.enableOut.disTAout[1],P1.enableOut.posTE,P1.enableOut.k,P1.enableOut.endWhile,P1.enableOut.state128[4],P1.enableOut.state128[3],P1.enableOut.state128[2],P1.enableOut.state128[1],P1.enableOut.randNum,P1.enableOut.cumEnablingProb[1],P1.enableOut.sumEnablingProbTAout,P1.enableOut.nTAout,P1.enableOut.nremTAout,P1.enableOut.remTAout[1],P1.enableOut.Index,P1.enableOut.arcWeightSum,$whenCondition3,P1.enableOut.TEout[1],P2.delayPassedOut.numtrue,P2.delayPassedOut.anytrue,P2.enableOut.arcWeightSum,P2.enableOut.nremTAout,P2.enableOut.nTAout,P2.enableOut.k,P2.enableOut.posTE,P2.enableOut.randNum,P2.enableOut.state128[4],P2.enableOut.state128[3],P2.enableOut.state128[2],P2.enableOut.state128[1],P2.enableOut.sumEnablingProbTAout,P2.enableOut.endWhile,P2.enableOut.Index,$whenCondition2,P1.delayPassedIn.numtrue,P1.delayPassedIn.anytrue,P1.enableIn.arcWeightSum,P1.enableIn.nremTAin,P1.enableIn.nTAin,P1.enableIn.k,P1.enableIn.posTE,P1.enableIn.randNum,P1.enableIn.state128[4],P1.enableIn.state128[3],P1.enableIn.state128[2],P1.enableIn.state128[1],P1.enableIn.sumEnablingProbTAin,P1.enableIn.endWhile,P1.enableIn.Index,$whenCondition1) * Number of clocked states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for simulation (83): * Single equations (assignments): 56 * Array equations: 1 * Algorithm blocks: 24 * Record equations: 0 * When equations: 1 * If-equations: 0 * Equation systems (linear and non-linear blocks): 0 * Torn equation systems: 1 * Mixed (continuous/discrete) equation systems: 0 Notification: Torn system details for strict tearing set: * Linear torn systems: 0 * Non-linear torn systems: 1 {2 6} Notification: Performance of Backend phase and start with SimCode phase: time 0.001711/0.788, allocations: 0.8161 MB / 0.641 GB, free: 138.6 MB / 458.7 MB Notification: Performance of simCode: created initialization part: time 0.008923/0.7969, allocations: 6.813 MB / 0.6477 GB, free: 136.6 MB / 458.7 MB Notification: Performance of simCode: created event and clocks part: time 8.686e-06/0.797, allocations: 1.281 kB / 0.6477 GB, free: 136.6 MB / 458.7 MB Notification: Performance of simCode: created simulation system equations: time 0.008758/0.8057, allocations: 9.045 MB / 0.6565 GB, free: 133.5 MB / 458.7 MB Notification: Performance of simCode: created of all other equations (e.g. parameter, nominal, assert, etc): time 0.001567/0.8074, allocations: 262.2 kB / 0.6567 GB, free: 133.4 MB / 458.7 MB Notification: Performance of simCode: created linear, non-linear and system jacobian parts: time 0.009301/0.8167, allocations: 5.321 MB / 0.6619 GB, free: 131.1 MB / 458.7 MB Notification: Performance of simCode: some other stuff during SimCode phase: time 0.001044/0.8178, allocations: 1.471 MB / 0.6634 GB, free: 130.3 MB / 458.7 MB Notification: Performance of simCode: alias equations: time 0.001009/0.8188, allocations: 401.3 kB / 0.6638 GB, free: 130.3 MB / 458.7 MB Notification: Performance of simCode: all other stuff during SimCode phase: time 0.0001867/0.819, allocations: 104.1 kB / 0.6639 GB, free: 130.3 MB / 458.7 MB Notification: Performance of SimCode: time 7.71e-07/0.819, allocations: 0 / 0.6639 GB, free: 130.3 MB / 458.7 MB Notification: Performance of Templates: time 0.05036/0.8694, allocations: 33.11 MB / 0.6962 GB, free: 119.3 MB / 458.7 MB make -j1 -f PNlib_PNlib.Examples.HybTest.TCwithPD.makefile (rm -f PNlib_PNlib.Examples.HybTest.TCwithPD.pipe ; mkfifo PNlib_PNlib.Examples.HybTest.TCwithPD.pipe ; head -c 1048576 < PNlib_PNlib.Examples.HybTest.TCwithPD.pipe >> ../files/PNlib_PNlib.Examples.HybTest.TCwithPD.sim & ./PNlib_PNlib.Examples.HybTest.TCwithPD -abortSlowSimulation -alarm=480 -emit_protected -lv LOG_STATS > PNlib_PNlib.Examples.HybTest.TCwithPD.pipe 2>&1) diffSimulationResults("PNlib_PNlib.Examples.HybTest.TCwithPD_res.mat","/mnt/ReferenceFiles/PNlib/ReferenceFiles/PNlib.Examples.HybTest.TCwithPD.mat","../files/PNlib_PNlib.Examples.HybTest.TCwithPD.diff",relTol=0.003,relTolDiffMinMax=0.003,rangeDelta=0.001) Reference file matches