diff --git a/bench_rsc_mem.log b/bench_rsc_mem.log new file mode 100644 index 0000000..375f6af --- /dev/null +++ b/bench_rsc_mem.log @@ -0,0 +1,450 @@ +(1,1,24.953125) +(1,2,24.90234375) +(1,3,24.984375) +(1,4,23.73828125) +(1,5,23.55078125) +(1,6,24.00390625) +(1,7,25.0390625) +(1,8,24.1015625) +(1,9,25.0390625) +(1,10,24.16796875) +(1,11,24.3046875) +(1,12,23.72265625) +(1,13,25.0390625) +(1,14,25.12890625) +(1,15,23.7421875) +(1,16,23.6953125) +(1,17,23.96484375) +(1,18,23.73828125) +(1,19,23.80078125) +(1,20,23.60546875) +(2,1,23.69921875) +(2,2,23.79296875) +(2,3,23.56640625) +(2,4,23.875) +(2,5,23.65625) +(2,6,23.890625) +(2,7,23.546875) +(2,8,23.73828125) +(2,9,23.69921875) +(2,10,23.7109375) +(2,11,23.76171875) +(2,12,23.73046875) +(2,13,23.60546875) +(2,14,23.578125) +(2,15,25.24609375) +(2,16,24.33984375) +(2,17,24.51171875) +(2,18,24.91796875) +(2,19,23.58203125) +(2,20,23.6171875) +(3,1,23.59375) +(3,2,25.18359375) +(3,3,23.76953125) +(3,4,23.60546875) +(3,5,23.58203125) +(3,6,23.41796875) +(3,7,23.87109375) +(3,8,24.93359375) +(3,9,23.6640625) +(3,10,23.58984375) +(3,11,23.578125) +(3,12,23.66015625) +(3,13,24.921875) +(3,14,24.73046875) +(3,15,23.77734375) +(3,16,24.84375) +(3,17,23.87109375) +(3,18,23.67578125) +(3,19,24.35546875) +(3,20,24.70703125) +(4,1,23.6640625) +(4,2,25.20703125) +(4,3,23.47265625) +(4,4,23.76171875) +(4,5,24.87890625) +(4,6,23.77734375) +(4,7,24.9296875) +(4,8,24.5078125) +(4,9,23.89453125) +(4,10,23.5546875) +(4,11,24.28125) +(4,12,24.89453125) +(4,13,24.91015625) +(4,14,25.7734375) +(4,15,25.8125) +(4,16,26.125) +(4,17,27.32421875) +(4,18,27.359375) +(4,19,27.82421875) +(4,20,27.16796875) +(5,1,24.7421875) +(5,2,23.6484375) +(5,3,24.74609375) +(5,4,23.41796875) +(5,5,23.625) +(5,6,23.75) +(5,7,25.0078125) +(5,8,24.69140625) +(5,9,26.16796875) +(5,10,25.56640625) +(5,11,26.41015625) +(5,12,27.0390625) +(5,13,26.84765625) +(5,14,27.32421875) +(5,15,29.921875) +(5,16,29.10546875) +(5,17,30.91015625) +(5,18,32.1015625) +(5,19,31.15234375) +(5,20,32.78515625) +(6,1,23.41796875) +(6,2,23.421875) +(6,3,23.421875) +(6,4,23.6796875) +(6,5,24.2265625) +(6,6,25.4453125) +(6,7,26.17578125) +(6,8,28.28515625) +(6,9,27.04296875) +(6,10,27.36328125) +(6,11,29.2890625) +(6,12,31.2421875) +(6,13,30.15625) +(6,14,31.3671875) +(6,15,32.61328125) +(6,16,34.72265625) +(6,17,35.61328125) +(6,18,35.16796875) +(6,19,36.43359375) +(6,20,38.1484375) +(7,1,23.421875) +(7,2,23.421875) +(7,3,24.58984375) +(7,4,24.00390625) +(7,5,26.69140625) +(7,6,26.4765625) +(7,7,27.75390625) +(7,8,29.17578125) +(7,9,31.31640625) +(7,10,31.58984375) +(7,11,33.55078125) +(7,12,34.3984375) +(7,13,34.203125) +(7,14,35.8046875) +(7,15,37.765625) +(7,16,37.55859375) +(7,17,39.10546875) +(7,18,43.83984375) +(7,19,46.73828125) +(7,20,45.26171875) +(8,1,23.421875) +(8,2,23.91796875) +(8,3,24.91015625) +(8,4,26.9453125) +(8,5,26.34375) +(8,6,29.0) +(8,7,30.84375) +(8,8,32.359375) +(8,9,33.7265625) +(8,10,35.83984375) +(8,11,36.765625) +(8,12,37.453125) +(8,13,38.8671875) +(8,14,43.625) +(8,15,43.8828125) +(8,16,44.578125) +(8,17,45.95703125) +(8,18,49.2890625) +(8,19,48.75390625) +(8,20,52.5234375) +(9,1,23.5703125) +(9,2,23.41796875) +(9,3,24.796875) +(9,4,27.625) +(9,5,28.52734375) +(9,6,30.58203125) +(9,7,34.12109375) +(9,8,34.51953125) +(9,9,37.34765625) +(9,10,37.10546875) +(9,11,42.3828125) +(9,12,43.5703125) +(9,13,45.27734375) +(9,14,47.32421875) +(9,15,49.23046875) +(9,16,52.65625) +(9,17,52.578125) +(9,18,53.77734375) +(9,19,55.828125) +(9,20,59.54296875) +(10,1,23.4140625) +(10,2,24.41015625) +(10,3,26.66796875) +(10,4,27.8828125) +(10,5,31.453125) +(10,6,34.6171875) +(10,7,34.55859375) +(10,8,37.69921875) +(10,9,41.7578125) +(10,10,45.4375) +(10,11,43.640625) +(10,12,48.66015625) +(10,13,49.49609375) +(10,14,53.83203125) +(10,15,56.21484375) +(10,16,58.56640625) +(10,17,62.18359375) +(10,18,69.49609375) +(10,19,73.87109375) +(10,20,75.796875) +(11,1,23.41796875) +(11,2,25.21484375) +(11,3,27.45703125) +(11,4,30.49609375) +(11,5,34.41015625) +(11,6,36.34375) +(11,7,39.125) +(11,8,42.61328125) +(11,9,45.69921875) +(11,10,48.3203125) +(11,11,50.01171875) +(11,12,54.8359375) +(11,13,57.19140625) +(11,14,60.125) +(11,15,69.48828125) +(11,16,71.0234375) +(11,17,78.5) +(11,18,76.37109375) +(11,19,81.02734375) +(11,20,82.31640625) +(12,1,23.41796875) +(12,2,28.56640625) +(12,3,28.9453125) +(12,4,34.78125) +(12,5,36.01171875) +(12,6,38.80859375) +(12,7,44.99609375) +(12,8,46.41796875) +(12,9,50.421875) +(12,10,53.67578125) +(12,11,56.74609375) +(12,12,62.07421875) +(12,13,69.390625) +(12,14,71.828125) +(12,15,78.15234375) +(12,16,80.58203125) +(12,17,82.07421875) +(12,18,85.25) +(12,19,90.40625) +(12,20,93.49609375) +(13,1,23.74609375) +(13,2,27.359375) +(13,3,32.25) +(13,4,34.7734375) +(13,5,39.3125) +(13,6,43.78125) +(13,7,46.0390625) +(13,8,50.2734375) +(13,9,54.61328125) +(13,10,59.35546875) +(13,11,67.95703125) +(13,12,72.0390625) +(13,13,78.30859375) +(13,14,81.8046875) +(13,15,83.3046875) +(13,16,87.45703125) +(13,17,92.9765625) +(13,18,105.58984375) +(13,19,108.47265625) +(13,20,112.73046875) +(14,1,23.421875) +(14,2,29.3671875) +(14,3,32.1171875) +(14,4,36.37890625) +(14,5,42.94140625) +(14,6,46.48046875) +(14,7,51.47265625) +(14,8,54.8046875) +(14,9,62.33984375) +(14,10,71.18359375) +(14,11,74.1015625) +(14,12,81.50390625) +(14,13,85.72265625) +(14,14,88.2109375) +(14,15,93.69140625) +(14,16,99.35546875) +(14,17,111.921875) +(14,18,114.94140625) +(14,19,128.140625) +(14,20,134.22265625) +(15,1,24.8203125) +(15,2,29.8203125) +(15,3,33.83984375) +(15,4,39.3984375) +(15,5,44.6875) +(15,6,50.30078125) +(15,7,55.234375) +(15,8,60.171875) +(15,9,71.71484375) +(15,10,75.08984375) +(15,11,80.58203125) +(15,12,85.94921875) +(15,13,92.6875) +(15,14,98.26171875) +(15,15,110.67578125) +(15,16,116.14453125) +(15,17,130.25390625) +(15,18,135.828125) +(15,19,142.43359375) +(15,20,144.65625) +(16,1,24.546875) +(16,2,30.6640625) +(16,3,35.91796875) +(16,4,42.7421875) +(16,5,48.21484375) +(16,6,54.015625) +(16,7,59.4609375) +(16,8,71.51953125) +(16,9,75.5703125) +(16,10,80.04296875) +(16,11,88.0390625) +(16,12,95.51171875) +(16,13,103.06640625) +(16,14,115.7109375) +(16,15,128.80859375) +(16,16,136.09375) +(16,17,142.30859375) +(16,18,146.66796875) +(16,19,152.6171875) +(16,20,173.9921875) +(17,1,25.921875) +(17,2,32.95703125) +(17,3,37.37890625) +(17,4,44.9296875) +(17,5,53.2734375) +(17,6,58.03125) +(17,7,71.42578125) +(17,8,75.1328125) +(17,9,78.5390625) +(17,10,90.171875) +(17,11,96.19921875) +(17,12,106.18359375) +(17,13,120.796875) +(17,14,132.20703125) +(17,15,142.67578125) +(17,16,148.57421875) +(17,17,151.99609375) +(17,18,176.09765625) +(17,19,180.4921875) +(17,20,184.74609375) +(18,1,25.86328125) +(18,2,35.10546875) +(18,3,42.859375) +(18,4,48.08203125) +(18,5,54.9609375) +(18,6,67.90625) +(18,7,73.765625) +(18,8,78.6953125) +(18,9,83.77734375) +(18,10,96.60546875) +(18,11,102.37109375) +(18,12,122.5078125) +(18,13,137.05078125) +(18,14,142.12109375) +(18,15,152.53515625) +(18,16,154.96484375) +(18,17,182.56640625) +(18,18,186.7421875) +(18,19,196.265625) +(18,20,202.5546875) +(19,1,26.44921875) +(19,2,34.24609375) +(19,3,42.5) +(19,4,51.7578125) +(19,5,58.96875) +(19,6,71.296875) +(19,7,76.515625) +(19,8,86.2890625) +(19,9,96.7578125) +(19,10,106.44140625) +(19,11,131.98046875) +(19,12,139.72265625) +(19,13,146.58984375) +(19,14,152.43359375) +(19,15,160.21484375) +(19,16,184.24609375) +(19,17,195.859375) +(19,18,203.74609375) +(19,19,217.91015625) +(19,20,217.61328125) +(20,1,27.9609375) +(20,2,36.11328125) +(20,3,45.60546875) +(20,4,53.83203125) +(20,5,68.4296875) +(20,6,75.0390625) +(20,7,82.53125) +(20,8,97.24609375) +(20,9,106.2421875) +(20,10,124.57421875) +(20,11,140.765625) +(20,12,149.69140625) +(20,13,156.3125) +(20,14,166.79296875) +(20,15,188.17578125) +(20,16,194.45703125) +(20,17,211.68359375) +(20,18,221.046875) +(20,19,252.36328125) +(20,20,263.09765625) +(1,1,23.5234375) +(3,3,24.90625) +(2,2,23.90625) +(2,2,24.9375) +(2,2,23.828125) +(2,2,24.828125) +(1,2,24.61328125) +(1,2,24.40625) +(1,2,24.2734375) +(1,2,25.171875) +(1,2,25.03515625) +(1,2,24.953125) +(1,2,24.125) +(1,10,24.99609375) +(1,10,25.0) +(1,10,25.05859375) +(1,10,23.97265625) +(1,10,24.953125) +(1,10,23.796875) +(1,10,25.1875) +(1,2,24.9921875) +(1,20,25.15234375) +(1,3,24.7578125) +(1,4,24.4765625) +(1,5,24.87109375) +(1,6,25.05859375) +(1,7,25.0546875) +(1,8,24.80859375) +(1,9,24.89453125) +(1,10,24.95703125) +(1,11,25.03515625) +(1,12,23.76953125) +(1,13,25.10546875) +(1,15,23.81640625) +(1,20,24.8984375) +(1,3,24.6015625) +(3,3,24.65625) +(3,3,25.03515625) +(3,3,25.05078125) +(3,3,25.0859375) +(3,3,25.0859375) +(3,3,24.44921875) +(1,1,23.93359375) +(3,3,24.5703125) +(3,3,23.67578125) +(3,3,24.41015625) +(3,3,25.1953125) +(3,3,25.08984375) +(3,3,25.26171875) +(3,3,25.02734375) diff --git a/bench_rsc_time.log b/bench_rsc_time.log new file mode 100644 index 0000000..df52c6c --- /dev/null +++ b/bench_rsc_time.log @@ -0,0 +1,450 @@ +(1,1,0.01705000000000001) +(1,2,0.030041000000000012) +(1,3,0.04227899999999998) +(1,4,0.05457600000000001) +(1,5,0.066602) +(1,6,0.08074) +(1,7,0.09340099999999998) +(1,8,0.10483899999999999) +(1,9,0.12012399999999998) +(1,10,0.132205) +(1,11,0.142919) +(1,12,0.15128999999999998) +(1,13,0.16873) +(1,14,0.183035) +(1,15,0.19546600000000003) +(1,16,0.21087499999999998) +(1,17,0.212621) +(1,18,0.23660599999999998) +(1,19,0.24776599999999996) +(1,20,0.255775) +(2,1,0.023529999999999995) +(2,2,0.075956) +(2,3,0.11258099999999999) +(2,4,0.14562999999999998) +(2,5,0.18213499999999996) +(2,6,0.217507) +(2,7,0.254884) +(2,8,0.29563300000000003) +(2,9,0.32856699999999994) +(2,10,0.366942) +(2,11,0.39931000000000005) +(2,12,0.4375359999999999) +(2,13,0.48678899999999997) +(2,14,0.520336) +(2,15,0.5444499999999999) +(2,16,0.59636) +(2,17,0.641633) +(2,18,0.6780869999999999) +(2,19,0.72411) +(2,20,0.743695) +(3,1,0.05785499999999999) +(3,2,0.159693) +(3,3,0.239682) +(3,4,0.312037) +(3,5,0.399672) +(3,6,0.467464) +(3,7,0.556057) +(3,8,0.6311739999999999) +(3,9,0.7249789999999999) +(3,10,0.783882) +(3,11,0.8876419999999999) +(3,12,0.954753) +(3,13,1.0875059999999999) +(3,14,1.1599300000000001) +(3,15,1.21247) +(3,16,1.3170419999999998) +(3,17,1.405515) +(3,18,1.5228929999999998) +(3,19,1.590962) +(3,20,1.7096760000000002) +(4,1,0.10575699999999999) +(4,2,0.27473000000000003) +(4,3,0.413995) +(4,4,0.560848) +(4,5,0.702395) +(4,6,0.840646) +(4,7,0.9802939999999999) +(4,8,1.14512) +(4,9,1.266731) +(4,10,1.402146) +(4,11,1.631847) +(4,12,1.731844) +(4,13,1.8447030000000002) +(4,14,2.10443) +(4,15,2.258611) +(4,16,2.354359) +(4,17,2.611965) +(4,18,2.852716) +(4,19,2.898372) +(4,20,3.1084229999999997) +(5,1,0.1683) +(5,2,0.421301) +(5,3,0.623313) +(5,4,0.859668) +(5,5,1.075519) +(5,6,1.29364) +(5,7,1.520859) +(5,8,1.7844449999999998) +(5,9,1.976095) +(5,10,2.260209) +(5,11,2.4958) +(5,12,2.778987) +(5,13,3.0793649999999997) +(5,14,3.325928) +(5,15,3.442738) +(5,16,3.802639) +(5,17,4.183355) +(5,18,4.514855) +(5,19,4.537556) +(5,20,4.8950759999999995) +(6,1,0.252714) +(6,2,0.5852390000000001) +(6,3,0.9141509999999999) +(6,4,1.187819) +(6,5,1.522783) +(6,6,1.835086) +(6,7,2.157845) +(6,8,2.537963) +(6,9,3.023644) +(6,10,3.229057) +(6,11,3.651528) +(6,12,4.261673) +(6,13,4.442019) +(6,14,4.7280619999999995) +(6,15,5.237874) +(6,16,5.668245) +(6,17,6.533466000000001) +(6,18,6.664515000000001) +(6,19,7.210698) +(6,20,7.886174) +(7,1,0.35061) +(7,2,0.8061759999999999) +(7,3,1.2280769999999999) +(7,4,1.6580849999999998) +(7,5,2.195345) +(7,6,2.560878) +(7,7,3.1135509999999997) +(7,8,3.508738) +(7,9,4.073558) +(7,10,4.65157) +(7,11,5.217067) +(7,12,5.589109) +(7,13,6.164961) +(7,14,6.831314) +(7,15,7.579517) +(7,16,8.226352) +(7,17,9.118657) +(7,18,10.171223) +(7,19,10.913846000000001) +(7,20,11.289803999999998) +(8,1,0.462808) +(8,2,1.063353) +(8,3,1.554111) +(8,4,2.1861439999999996) +(8,5,2.774428) +(8,6,3.3596980000000003) +(8,7,3.968677) +(8,8,4.611351) +(8,9,5.618979) +(8,10,6.339391) +(8,11,7.031237) +(8,12,7.703823) +(8,13,8.609089) +(8,14,9.462971000000001) +(8,15,10.667158) +(8,16,11.111205) +(8,17,12.07104) +(8,18,13.608063000000001) +(8,19,14.464039) +(8,20,16.345756) +(9,1,0.567333) +(9,2,1.362776) +(9,3,2.0527119999999996) +(9,4,2.787592) +(9,5,3.4616640000000003) +(9,6,4.4763340000000005) +(9,7,5.26047) +(9,8,6.391216) +(9,9,7.309768) +(9,10,8.145319) +(9,11,9.493107) +(9,12,10.331429) +(9,13,11.898877) +(9,14,13.033076000000001) +(9,15,14.670183) +(9,16,16.944854) +(9,17,17.83645) +(9,18,18.878678999999998) +(9,19,20.503740999999998) +(9,20,23.966158999999998) +(10,1,0.717972) +(10,2,1.6331909999999998) +(10,3,2.508111) +(10,4,3.543916) +(10,5,4.440226) +(10,6,5.6876809999999995) +(10,7,6.584221) +(10,8,8.068457) +(10,9,9.154647) +(10,10,11.157132) +(10,11,11.225615) +(10,12,14.430788) +(10,13,14.305916) +(10,14,17.757604) +(10,15,20.121318000000002) +(10,16,22.027730000000002) +(10,17,25.285068000000003) +(10,18,28.766671) +(10,19,31.993757999999996) +(10,20,33.959592) +(11,1,0.878419) +(11,2,1.981277) +(11,3,3.135854) +(11,4,4.17455) +(11,5,5.730011999999999) +(11,6,6.9438569999999995) +(11,7,8.435303000000001) +(11,8,10.037066) +(11,9,11.969467999999999) +(11,10,14.170652) +(11,11,16.327268) +(11,12,19.676179) +(11,13,20.767353) +(11,14,24.347946) +(11,15,27.765992) +(11,16,30.059752000000003) +(11,17,35.349833) +(11,18,34.362691999999996) +(11,19,40.914871999999995) +(11,20,44.682601000000005) +(12,1,1.045096) +(12,2,2.444192) +(12,3,3.6243619999999996) +(12,4,5.2866219999999995) +(12,5,6.652347000000001) +(12,6,8.768505) +(12,7,11.296575) +(12,8,13.19969) +(12,9,14.848120999999999) +(12,10,19.316916) +(12,11,20.468230000000002) +(12,12,22.703327) +(12,13,28.769762999999998) +(12,14,31.556513) +(12,15,35.323958000000005) +(12,16,40.842364) +(12,17,45.291675999999995) +(12,18,53.653006) +(12,19,54.068626) +(12,20,66.881384) +(13,1,1.256087) +(13,2,2.786865) +(13,3,4.57209) +(13,4,6.112877999999999) +(13,5,8.489639) +(13,6,10.699107) +(13,7,12.994875) +(13,8,16.608431999999997) +(13,9,19.229582999999998) +(13,10,24.304401) +(13,11,25.98864) +(13,12,31.296314) +(13,13,41.054404) +(13,14,40.094056) +(13,15,51.747246) +(13,16,55.24312) +(13,17,66.890927) +(13,18,76.198462) +(13,19,89.531818) +(13,20,95.257583) +(14,1,1.458348) +(14,2,3.259633) +(14,3,5.0596369999999995) +(14,4,7.509785999999999) +(14,5,10.456344) +(14,6,13.459425999999999) +(14,7,16.827727) +(14,8,21.541578) +(14,9,25.593064) +(14,10,30.375082) +(14,11,36.676028) +(14,12,39.979189999999996) +(14,13,49.209524) +(14,14,54.813853) +(14,15,66.659176) +(14,16,72.415982) +(14,17,92.159075) +(14,18,95.90061999999999) +(14,19,108.493122) +(14,20,123.263253) +(15,1,1.679657) +(15,2,3.832086) +(15,3,6.074876) +(15,4,8.841942000000001) +(15,5,12.474505) +(15,6,15.975011) +(15,7,21.496346) +(15,8,24.846038999999998) +(15,9,33.164392) +(15,10,40.839253) +(15,11,45.322263) +(15,12,56.536413) +(15,13,63.78602) +(15,14,81.967023) +(15,15,86.851519) +(15,16,96.943848) +(15,17,119.729303) +(15,18,128.413937) +(15,19,136.366582) +(15,20,156.411501) +(16,1,1.9073079999999998) +(16,2,4.292968999999999) +(16,3,7.047413000000001) +(16,4,10.138287) +(16,5,14.00576) +(16,6,20.641523999999997) +(16,7,25.546136999999998) +(16,8,30.383012) +(16,9,39.218672999999995) +(16,10,46.294568) +(16,11,58.374233999999994) +(16,12,71.208262) +(16,13,89.025283) +(16,14,111.111886) +(16,15,117.10154800000001) +(16,16,117.136111) +(16,17,149.264603) +(16,18,161.06794100000002) +(16,19,197.991669) +(16,20,248.09769200000002) +(17,1,2.179103) +(17,2,4.8525529999999995) +(17,3,8.088567000000001) +(17,4,12.28257) +(17,5,17.661256) +(17,6,22.610155) +(17,7,30.426536000000002) +(17,8,39.258421) +(17,9,50.007937) +(17,10,60.555119) +(17,11,78.41448) +(17,12,87.048597) +(17,13,100.440851) +(17,14,128.836891) +(17,15,145.884213) +(17,16,174.45202300000003) +(17,17,204.703699) +(17,18,239.175439) +(17,19,256.85078) +(17,20,306.015515) +(18,1,2.516694) +(18,2,5.5783130000000005) +(18,3,9.485102999999999) +(18,4,14.711129) +(18,5,21.259574) +(18,6,30.216531) +(18,7,39.837329999999994) +(18,8,48.365942000000004) +(18,9,77.03262099999999) +(18,10,100.16016900000001) +(18,11,118.67012799999999) +(18,12,107.61159199999999) +(18,13,164.124368) +(18,14,155.116353) +(18,15,190.77536) +(18,16,227.640422) +(18,17,325.809771) +(18,18,325.228628) +(18,19,333.14120599999995) +(18,20,403.025285) +(19,1,2.744607) +(19,2,6.4368929999999995) +(19,3,10.833317000000001) +(19,4,17.192532) +(19,5,27.514465) +(19,6,35.067425) +(19,7,46.267607) +(19,8,61.877905999999996) +(19,9,92.696984) +(19,10,98.87217799999999) +(19,11,142.116762) +(19,12,150.767756) +(19,13,156.319676) +(19,14,202.42373899999998) +(19,15,250.14513399999998) +(19,16,307.020285) +(19,17,391.396025) +(19,18,439.952663) +(19,19,519.174459) +(19,20,579.512096) +(20,1,2.979802) +(20,2,7.004238999999999) +(20,3,12.304695) +(20,4,19.083308000000002) +(20,5,28.759831) +(20,6,40.400917) +(20,7,62.91536) +(20,8,82.656284) +(20,9,97.166474) +(20,10,140.09448500000002) +(20,11,153.224273) +(20,12,191.72450500000002) +(20,13,238.149438) +(20,14,277.06672) +(20,15,317.360744) +(20,16,360.98922999999996) +(20,17,467.839562) +(20,18,510.844395) +(20,19,540.839025) +(20,20,650.7422250000001) +(1,1,0.017948999999999993) +(3,3,0.235796) +(2,2,0.09777499999999997) +(2,2,0.099104) +(2,2,0.327684) +(2,2,0.336454) +(1,2,None) +(1,2,0.036881) +(1,2,0.03812700000000002) +(1,2,0.04323199999999999) +(1,2,0.04396699999999998) +(1,2,0.024404999999999982) +(1,2,0.04235599999999998) +(1,10,0.196723) +(1,10,0.19482499999999997) +(1,10,0.17416600000000002) +(1,10,0.12386000000000003) +(1,10,0.08205700000000002) +(1,10,0.19388000000000002) +(1,10,0.198825) +(1,2,0.04554199999999997) +(1,20,0.382859) +(1,3,0.06071199999999999) +(1,4,0.07994099999999998) +(1,5,0.10046899999999997) +(1,6,0.12348199999999998) +(1,7,0.140891) +(1,8,0.15573) +(1,9,0.177624) +(1,10,0.19236099999999998) +(1,11,0.21111699999999997) +(1,12,0.23278500000000002) +(1,13,0.24989199999999998) +(1,15,0.3024) +(1,20,0.39378599999999997) +(1,3,0.062133999999999995) +(3,3,0.3832519999999999) +(3,3,0.391949) +(3,3,0.39917199999999997) +(3,3,0.3958209999999999) +(3,3,0.383887) +(3,3,0.403283) +(1,1,0.021846000000000004) +(3,3,0.34961699999999996) +(3,3,0.28202099999999997) +(3,3,0.354708) +(3,3,0.34458999999999995) +(3,3,0.971499) +(3,3,0.273505) +(3,3,0.293068) diff --git a/bench_tr_rs_mem.log b/bench_tr_rs_mem.log new file mode 100644 index 0000000..0777b75 --- /dev/null +++ b/bench_tr_rs_mem.log @@ -0,0 +1,470 @@ +(1,1,25.03125) +(1,2,25.046875) +(1,3,23.796875) +(1,4,24.76953125) +(1,5,23.6328125) +(1,6,23.62109375) +(1,7,23.5859375) +(1,8,24.06640625) +(1,9,24.09765625) +(1,10,25.015625) +(1,11,23.42578125) +(1,12,23.47265625) +(1,13,23.82421875) +(1,14,24.96484375) +(1,15,25.08203125) +(1,16,23.6171875) +(1,17,23.421875) +(1,18,23.41796875) +(1,19,23.421875) +(1,20,23.62109375) +(2,1,23.52734375) +(2,2,23.62109375) +(2,3,23.42578125) +(2,4,23.421875) +(2,5,23.421875) +(2,6,23.70703125) +(2,7,23.67578125) +(2,8,23.5625) +(2,9,23.61328125) +(2,10,23.4375) +(2,11,25.0390625) +(2,12,23.43359375) +(2,13,23.49609375) +(2,14,25.08984375) +(2,15,24.96484375) +(2,16,25.26171875) +(2,17,26.52734375) +(2,18,28.15234375) +(2,19,28.6328125) +(2,20,29.59375) +(3,1,23.4140625) +(3,2,23.453125) +(3,3,23.7734375) +(3,4,23.67578125) +(3,5,23.44921875) +(3,6,25.2265625) +(3,7,24.74609375) +(3,8,24.87890625) +(3,9,23.875) +(3,10,24.59375) +(3,11,27.1328125) +(3,12,26.9375) +(3,13,28.3984375) +(3,14,29.09375) +(3,15,30.3671875) +(3,16,34.51953125) +(3,17,35.8984375) +(3,18,37.91015625) +(3,19,39.39453125) +(3,20,41.34375) +(4,1,23.53125) +(4,2,23.42578125) +(4,3,23.78125) +(4,4,23.45703125) +(4,5,23.421875) +(4,6,24.14453125) +(4,7,23.7421875) +(4,8,25.3984375) +(4,9,27.6015625) +(4,10,28.0703125) +(4,11,30.1015625) +(4,12,34.1796875) +(4,13,36.5703125) +(4,14,38.18359375) +(4,15,41.11328125) +(4,16,42.36328125) +(4,17,50.40625) +(4,18,51.828125) +(4,19,55.84765625) +(4,20,60.375) +(5,1,23.6875) +(5,2,24.203125) +(5,3,24.94140625) +(5,4,23.609375) +(5,5,24.9140625) +(5,6,23.86328125) +(5,7,27.58203125) +(5,8,28.4921875) +(5,9,29.421875) +(5,10,34.85546875) +(5,11,37.1171875) +(5,12,39.6015625) +(5,13,42.58203125) +(5,14,50.66796875) +(5,15,53.40625) +(5,16,59.30859375) +(5,17,62.86328125) +(5,18,65.734375) +(5,19,82.53515625) +(5,20,88.87109375) +(6,1,23.5234375) +(6,2,23.41796875) +(6,3,23.41796875) +(6,4,24.8828125) +(6,5,24.4140625) +(6,6,26.79296875) +(6,7,29.6171875) +(6,8,33.6640625) +(6,9,35.0390625) +(6,10,39.61328125) +(6,11,47.16796875) +(6,12,51.24609375) +(6,13,55.2578125) +(6,14,59.328125) +(6,15,65.0390625) +(6,16,79.609375) +(6,17,85.65234375) +(6,18,95.05859375) +(6,19,103.6953125) +(6,20,110.96875) +(7,1,23.421875) +(7,2,23.421875) +(7,3,23.42578125) +(7,4,25.69140625) +(7,5,27.01171875) +(7,6,28.4140625) +(7,7,34.0) +(7,8,36.5859375) +(7,9,39.546875) +(7,10,47.3671875) +(7,11,52.15625) +(7,12,57.91796875) +(7,13,66.19140625) +(7,14,77.140625) +(7,15,87.62109375) +(7,16,97.8359375) +(7,17,106.62109375) +(7,18,113.66796875) +(7,19,146.44921875) +(7,20,155.03515625) +(8,1,23.421875) +(8,2,23.43359375) +(8,3,23.421875) +(8,4,25.7890625) +(8,5,28.51171875) +(8,6,32.47265625) +(8,7,36.171875) +(8,8,40.01171875) +(8,9,47.48828125) +(8,10,53.6015625) +(8,11,59.63671875) +(8,12,78.89453125) +(8,13,83.3359375) +(8,14,92.96484375) +(8,15,106.40625) +(8,16,113.625) +(8,17,150.35546875) +(8,18,156.51953125) +(8,19,162.296875) +(8,20,178.28515625) +(9,1,23.42578125) +(9,2,24.7421875) +(9,3,24.8359375) +(9,4,26.4921875) +(9,5,29.52734375) +(9,6,34.47265625) +(9,7,39.4375) +(9,8,47.96484375) +(9,9,54.06640625) +(9,10,62.0234375) +(9,11,77.96875) +(9,12,88.01953125) +(9,13,98.74609375) +(9,14,107.07421875) +(9,15,146.12890625) +(9,16,154.015625) +(9,17,160.69921875) +(9,18,179.34375) +(9,19,197.83203125) +(9,20,216.7109375) +(10,1,23.421875) +(10,2,24.75) +(10,3,24.4140625) +(10,4,27.69140625) +(10,5,33.79296875) +(10,6,38.60546875) +(10,7,48.6796875) +(10,8,53.9921875) +(10,9,61.5078125) +(10,10,81.765625) +(10,11,88.7109375) +(10,12,100.640625) +(10,13,110.5625) +(10,14,146.64453125) +(10,15,161.47265625) +(10,16,176.37890625) +(10,17,194.37890625) +(10,18,210.5625) +(10,19,275.01171875) +(10,20,297.1796875) +(11,1,23.42578125) +(11,2,23.42578125) +(11,3,25.96875) +(11,4,29.40625) +(11,5,35.04296875) +(11,6,45.71875) +(11,7,50.91015625) +(11,8,58.46875) +(11,9,79.25) +(11,10,88.47265625) +(11,11,99.9375) +(11,12,136.91015625) +(11,13,149.74609375) +(11,14,156.78125) +(11,15,192.95703125) +(11,16,198.80859375) +(11,17,265.46875) +(11,18,291.140625) +(11,19,313.3046875) +(11,20,321.75390625) +(12,1,23.421875) +(12,2,23.54296875) +(12,3,27.5859375) +(12,4,31.96875) +(12,5,38.23046875) +(12,6,49.33203125) +(12,7,56.70703125) +(12,8,76.9296875) +(12,9,83.84375) +(12,10,98.58203125) +(12,11,133.3984375) +(12,12,150.37890625) +(12,13,165.2578125) +(12,14,195.3046875) +(12,15,205.6484375) +(12,16,275.22265625) +(12,17,298.296875) +(12,18,320.44921875) +(12,19,329.390625) +(12,20,371.30078125) +(13,1,23.875) +(13,2,24.75) +(13,3,28.296875) +(13,4,34.453125) +(13,5,39.48828125) +(13,6,51.6640625) +(13,7,60.40625) +(13,8,82.75) +(13,9,95.2734375) +(13,10,106.09375) +(13,11,146.4765625) +(13,12,161.5390625) +(13,13,191.72265625) +(13,3,27.1953125) +(13,14,209.46875) +(13,15,279.39453125) +(13,16,302.390625) +(13,17,319.296875) +(13,18,349.4921875) +(13,19,374.109375) +(13,20,410.81640625) +(14,1,25.12109375) +(14,2,24.76171875) +(14,3,28.1796875) +(14,4,35.49609375) +(14,5,47.90234375) +(14,6,56.9140625) +(14,7,76.09375) +(14,8,90.28515625) +(14,9,103.0078125) +(14,10,141.49609375) +(14,11,154.984375) +(14,12,184.7421875) +(14,13,202.6875) +(14,14,279.03125) +(14,15,299.50390625) +(14,16,323.40625) +(14,17,354.01171875) +(14,18,385.0) +(14,19,518.9296875) +(14,20,541.93359375) +(15,1,25.14453125) +(15,2,23.60546875) +(15,3,29.06640625) +(15,4,37.2265625) +(15,5,50.6484375) +(15,6,60.3046875) +(15,7,83.671875) +(15,8,97.83984375) +(15,9,134.0546875) +(15,10,154.4453125) +(15,11,178.828125) +(15,12,198.42578125) +(15,13,270.375) +(15,14,301.5234375) +(15,15,320.671875) +(15,16,359.046875) +(15,17,388.03515625) +(15,18,526.2890625) +(15,19,553.55078125) +(15,20,571.26953125) +(16,1,24.83984375) +(16,2,24.9140625) +(16,3,32.28515625) +(16,4,39.16796875) +(16,5,52.94921875) +(16,6,75.2890625) +(16,7,88.640625) +(16,8,103.3359375) +(16,9,144.171875) +(16,10,171.7890625) +(16,11,192.0625) +(16,12,265.109375) +(16,13,294.37890625) +(16,14,315.75390625) +(16,15,350.953125) +(16,16,385.9609375) +(16,17,526.9296875) +(16,18,549.4140625) +(16,19,563.69140625) +(16,20,634.38671875) +(17,1,23.421875) +(17,2,25.22265625) +(17,3,33.46484375) +(17,4,45.7578125) +(17,5,56.61328125) +(17,6,79.35546875) +(17,7,95.796875) +(17,8,135.91015625) +(17,9,152.08203125) +(17,10,182.4765625) +(17,11,251.0859375) +(17,12,287.69921875) +(17,13,308.51953125) +(17,14,343.4453125) +(17,15,380.484375) +(17,16,516.859375) +(17,17,532.19140625) +(17,18,576.72265625) +(17,19,649.296875) +(17,20,623.25390625) +(18,1,23.41796875) +(18,2,28.01171875) +(18,3,34.6953125) +(18,4,48.32421875) +(18,5,59.75) +(18,6,84.44140625) +(18,7,101.93359375) +(18,8,123.2109375) +(18,9,145.17578125) +(18,10,203.3203125) +(18,11,222.59375) +(18,12,295.8359375) +(18,13,297.2578125) +(18,14,376.984375) +(18,15,508.70703125) +(18,16,531.10546875) +(18,17,565.0859375) +(18,18,641.99609375) +(18,19,711.1796875) +(18,20,778.0703125) +(19,1,25.0078125) +(19,2,27.52734375) +(19,3,37.0546875) +(19,4,50.1484375) +(19,5,74.0) +(19,6,88.671875) +(19,7,129.48828125) +(19,8,150.0546875) +(19,9,183.8828125) +(19,10,250.66796875) +(19,11,294.98046875) +(19,12,306.68359375) +(19,13,360.09765625) +(19,14,494.828125) +(19,15,539.45703125) +(19,16,567.9921875) +(19,17,637.80078125) +(19,18,705.02734375) +(19,19,734.21484375) +(19,20,1028.44921875) +(20,1,23.421875) +(20,2,27.3359375) +(20,3,37.15234375) +(20,4,53.5546875) +(20,5,74.15234375) +(20,6,94.08203125) +(20,7,133.0625) +(20,8,165.9765625) +(20,9,196.1015625) +(20,10,275.13671875) +(20,11,295.82421875) +(20,12,342.17578125) +(20,13,390.0625) +(20,14,523.484375) +(20,15,543.94921875) +(20,16,624.26171875) +(20,17,694.40234375) +(20,18,746.7890625) +(20,19,1012.59375) +(20,20,1009.9765625) +(1,1,24.99609375) +(3,3,24.90234375) +(1,1,24.19140625) +(2,2,24.00390625) +(2,2,24.4921875) +(2,2,23.8984375) +(2,2,25.0625) +(2,2,25.03515625) +(2,2,24.0859375) +(2,2,25.28515625) +(2,2,25.078125) +(1,10,23.83203125) +(1,10,23.85546875) +(1,3,24.98828125) +(1,5,25.06640625) +(1,2,24.765625) +(1,2,24.3984375) +(1,2,24.58984375) +(1,2,25.2109375) +(1,2,24.76171875) +(1,2,24.95703125) +(1,2,25.08203125) +(1,2,24.62109375) +(1,2,25.34765625) +(1,2,25.11328125) +(1,2,23.9140625) +(1,2,25.05078125) +(1,2,25.2890625) +(1,2,24.98046875) +(1,2,24.3125) +(1,2,25.16015625) +(1,2,24.7421875) +(1,2,24.6484375) +(1,2,24.88671875) +(1,2,25.29296875) +(1,2,24.44140625) +(1,2,24.7890625) +(1,2,25.1640625) +(1,3,24.51953125) +(1,4,24.38671875) +(1,6,25.20703125) +(1,7,23.8515625) +(1,8,24.15625) +(1,9,23.87890625) +(1,9,24.3515625) +(1,9,24.65625) +(1,2,25.0625) +(1,2,25.1953125) +(1,2,24.4765625) +(1,2,24.0859375) +(1,2,25.17578125) +(1,2,24.70703125) +(1,2,24.23828125) +(1,2,24.60546875) +(1,2,24.609375) +(1,2,24.14453125) +(1,2,25.22265625) +(1,2,25.19140625) +(1,3,25.09765625) +(1,3,24.546875) +(1,3,23.69921875) +(1,3,25.08984375) +(1,3,24.87890625) +(3,3,24.90625) +(3,3,23.71875) +(3,3,23.89453125) +(3,3,25.203125) +(1,1,25.08984375) +(1,1,24.70703125) diff --git a/bench_tr_rs_time.log b/bench_tr_rs_time.log new file mode 100644 index 0000000..73fa224 --- /dev/null +++ b/bench_tr_rs_time.log @@ -0,0 +1,470 @@ +(1,1,0.009790999999999994) +(1,2,0.014812999999999993) +(1,3,0.03662299999999999) +(1,4,0.07436700000000002) +(1,5,0.127649) +(1,6,0.21550499999999997) +(1,7,0.318936) +(1,8,0.446385) +(1,9,0.6332139999999999) +(1,10,0.832116) +(1,11,1.1013549999999999) +(1,12,1.359546) +(1,13,1.677054) +(1,14,2.115728) +(1,15,2.52869) +(1,16,3.075605) +(1,17,3.707811) +(1,18,4.413404) +(1,19,4.956286) +(1,20,5.732104) +(2,1,0.011460999999999999) +(2,2,0.05205699999999999) +(2,3,0.13840799999999998) +(2,4,0.29013999999999995) +(2,5,0.50462) +(2,6,0.796642) +(2,7,1.241944) +(2,8,1.782166) +(2,9,2.424143) +(2,10,3.348824) +(2,11,4.2964080000000004) +(2,12,5.5964220000000005) +(2,13,6.720037) +(2,14,8.537679) +(2,15,10.17315) +(2,16,12.312652) +(2,17,14.769886) +(2,18,16.876361) +(2,19,19.683962) +(2,20,23.354222999999998) +(3,1,0.022027999999999992) +(3,2,0.11030899999999999) +(3,3,0.30006599999999994) +(3,4,0.6255069999999999) +(3,5,1.113694) +(3,6,1.856689) +(3,7,2.738296) +(3,8,3.9552320000000005) +(3,9,5.553719) +(3,10,7.380066) +(3,11,9.784254) +(3,12,12.445421) +(3,13,15.238002999999999) +(3,14,18.82228) +(3,15,23.069457999999997) +(3,16,27.620553) +(3,17,32.654271) +(3,18,37.728078000000004) +(3,19,45.88259) +(3,20,51.600899) +(4,1,0.03670499999999999) +(4,2,0.19459100000000001) +(4,3,0.525792) +(4,4,1.096792) +(4,5,2.0045200000000003) +(4,6,3.281347) +(4,7,4.997902) +(4,8,7.0170829999999995) +(4,9,10.001028999999999) +(4,10,12.852149) +(4,11,17.319877) +(4,12,22.058831) +(4,13,26.579262) +(4,14,33.506509) +(4,15,40.534639) +(4,16,48.091750000000005) +(4,17,58.338225) +(4,18,67.88386899999999) +(4,19,79.352116) +(4,20,93.239999) +(5,1,0.05287999999999998) +(5,2,0.290215) +(5,3,0.829015) +(5,4,1.693702) +(5,5,3.0790620000000004) +(5,6,5.031647) +(5,7,7.492091) +(5,8,11.119131000000001) +(5,9,15.371578999999999) +(5,10,20.376057999999997) +(5,11,26.300002) +(5,12,34.327703) +(5,13,42.195722) +(5,14,50.796744000000004) +(5,15,62.428134) +(5,16,77.971552) +(5,17,88.414655) +(5,18,107.172973) +(5,19,120.853882) +(5,20,145.444603) +(6,1,0.071102) +(6,2,0.41059599999999996) +(6,3,1.168615) +(6,4,2.423314) +(6,5,4.3768970000000005) +(6,6,7.274316) +(6,7,10.951839999999999) +(6,8,15.662174) +(6,9,21.97961) +(6,10,29.489739) +(6,11,38.150606) +(6,12,48.846769) +(6,13,60.254836000000005) +(6,14,77.07214) +(6,15,89.928228) +(6,16,110.719067) +(6,17,130.610729) +(6,18,153.03279899999998) +(6,19,179.693598) +(6,20,203.077726) +(7,1,0.09607399999999999) +(7,2,0.5553549999999999) +(7,3,1.563643) +(7,4,3.276708) +(7,5,5.947217) +(7,6,9.588165) +(7,7,14.655332999999999) +(7,8,21.788135) +(7,9,29.671012) +(7,10,39.141447) +(7,11,51.559971000000004) +(7,12,65.853002) +(7,13,83.19318) +(7,14,100.636654) +(7,15,123.835611) +(7,16,148.837648) +(7,17,176.65955899999997) +(7,18,203.836773) +(7,19,244.689357) +(7,20,283.432786) +(8,1,0.12252299999999999) +(8,2,0.726588) +(8,3,2.0414600000000003) +(8,4,4.375643) +(8,5,7.7885230000000005) +(8,6,13.161249999999999) +(8,7,18.841397999999998) +(8,8,28.357566) +(8,9,39.08888) +(8,10,51.183955999999995) +(8,11,67.870014) +(8,12,87.82749299999999) +(8,13,111.100762) +(8,14,133.27363) +(8,15,162.657996) +(8,16,190.636744) +(8,17,234.47144) +(8,18,270.133113) +(8,19,311.62609599999996) +(8,20,366.905733) +(9,1,0.15393199999999999) +(9,2,0.9329019999999999) +(9,3,2.602005) +(9,4,5.493455) +(9,5,10.028204) +(9,6,17.06075) +(9,7,24.402772000000002) +(9,8,34.976510999999995) +(9,9,48.567924) +(9,10,65.000717) +(9,11,85.525283) +(9,12,107.530101) +(9,13,139.894239) +(9,14,167.99318000000002) +(9,15,207.282645) +(9,16,250.496263) +(9,17,287.282976) +(9,18,347.569884) +(9,19,400.42067) +(9,20,468.491721) +(10,1,0.18811799999999998) +(10,2,1.1197879999999998) +(10,3,3.2445239999999997) +(10,4,6.743284) +(10,5,12.380974) +(10,6,20.001941) +(10,7,30.379361) +(10,8,43.900894) +(10,9,62.140903) +(10,10,79.140956) +(10,11,106.48746899999999) +(10,12,133.898695) +(10,13,168.838954) +(10,14,206.53165199999998) +(10,15,251.830902) +(10,16,308.08011500000003) +(10,17,363.86717999999996) +(10,18,424.511339) +(10,19,486.720435) +(10,20,582.9264469999999) +(11,1,0.225754) +(11,2,1.361337) +(11,3,3.832177) +(11,4,8.064972000000001) +(11,5,15.190817) +(11,6,24.194943) +(11,7,36.272310999999995) +(11,8,54.276785) +(11,9,71.74049500000001) +(11,10,97.310368) +(11,11,128.03730099999999) +(11,12,163.024395) +(11,13,204.334677) +(11,14,254.10527499999998) +(11,15,307.865245) +(11,16,368.937172) +(11,17,443.54301499999997) +(11,18,511.018521) +(11,19,603.444905) +(11,20,701.2507300000001) +(12,1,0.262782) +(12,2,1.608055) +(12,3,4.636219) +(12,4,9.689763000000001) +(12,5,17.112263) +(12,6,28.157234) +(12,7,43.296020999999996) +(12,8,62.16994) +(12,9,88.15608499999999) +(12,10,117.455311) +(12,11,151.503054) +(12,12,192.50782700000002) +(12,13,242.480462) +(12,14,298.761306) +(12,15,357.904301) +(12,16,435.045361) +(12,17,521.777693) +(12,18,619.431657) +(12,19,716.626852) +(12,20,840.4107600000001) +(13,1,0.30917399999999995) +(13,2,1.8782930000000002) +(13,3,5.3957) +(13,4,11.661017000000001) +(13,5,21.033499) +(13,6,33.896946) +(13,7,51.114331) +(13,8,73.076192) +(13,9,100.749171) +(13,10,138.84383000000003) +(13,11,176.39582800000002) +(13,12,227.31662699999998) +(13,13,283.954516) +(13,3,5.439364) +(13,14,349.824106) +(13,15,431.885627) +(13,16,532.020221) +(13,17,617.0528099999999) +(13,18,720.634774) +(13,19,838.51308) +(13,20,975.165109) +(14,1,0.353649) +(14,2,2.1588649999999996) +(14,3,6.15601) +(14,4,13.272413) +(14,5,24.369408) +(14,6,39.213611) +(14,7,59.611731) +(14,8,86.980347) +(14,9,121.013108) +(14,10,160.014185) +(14,11,208.616382) +(14,12,260.58781700000003) +(14,13,334.916875) +(14,14,411.95158799999996) +(14,15,499.26755599999996) +(14,16,601.5213130000001) +(14,17,722.112518) +(14,18,834.49189) +(14,19,989.9574709999999) +(14,20,1141.8183569999999) +(15,1,0.41634099999999996) +(15,2,2.529635) +(15,3,7.159044) +(15,4,15.112391) +(15,5,26.917036) +(15,6,44.436826) +(15,7,68.574261) +(15,8,96.285811) +(15,9,137.496603) +(15,10,184.122531) +(15,11,236.42875) +(15,12,301.619533) +(15,13,379.72497400000003) +(15,14,473.996035) +(15,15,573.8464309999999) +(15,16,692.6217869999999) +(15,17,804.85763) +(15,18,967.4639659999999) +(15,19,1125.475588) +(15,20,1320.89) +(16,1,0.464398) +(16,2,2.9071029999999998) +(16,3,8.205743) +(16,4,17.31424) +(16,5,32.556723000000005) +(16,6,52.460725000000004) +(16,7,78.26069) +(16,8,114.649749) +(16,9,159.570432) +(16,10,210.63153400000002) +(16,11,271.960671) +(16,12,348.015427) +(16,13,431.489649) +(16,14,545.414615) +(16,15,641.6263680000001) +(16,16,780.837398) +(16,17,926.630321) +(16,18,1111.6921790000001) +(16,19,1286.999557) +(16,20,1515.755447) +(17,1,0.5119199999999999) +(17,2,3.25989) +(17,3,9.396136) +(17,4,19.581208) +(17,5,35.664046) +(17,6,58.556816999999995) +(17,7,88.943544) +(17,8,128.340763) +(17,9,179.131021) +(17,10,238.97652200000002) +(17,11,312.637992) +(17,12,403.95543399999997) +(17,13,501.155285) +(17,14,613.769829) +(17,15,753.1164580000001) +(17,16,920.8903310000001) +(17,17,1078.777868) +(17,18,1242.811148) +(17,19,1451.017737) +(17,20,1743.428724) +(18,1,0.578073) +(18,2,3.602118) +(18,3,10.361541) +(18,4,22.510136) +(18,5,39.2964) +(18,6,67.59633600000001) +(18,7,100.88734000000001) +(18,8,154.465092) +(18,9,221.64382600000002) +(18,10,291.873607) +(18,11,390.53359600000005) +(18,12,468.711604) +(18,13,573.9608380000001) +(18,14,697.736255) +(18,15,866.355837) +(18,16,1011.99123) +(18,17,1198.852801) +(18,18,1436.271557) +(18,19,1650.186751) +(18,20,1949.309837) +(19,1,0.652125) +(19,2,4.066529) +(19,3,11.652058) +(19,4,25.372889) +(19,5,46.327994000000004) +(19,6,75.227476) +(19,7,111.475123) +(19,8,158.561031) +(19,9,220.160655) +(19,10,293.541356) +(19,11,396.317071) +(19,12,496.989954) +(19,13,641.585752) +(19,14,790.77141) +(19,15,960.531355) +(19,16,1135.896222) +(19,17,1377.8571479999998) +(19,18,1652.213747) +(19,19,1876.6318179999998) +(19,20,2124.863566) +(20,1,0.710605) +(20,2,4.497555999999999) +(20,3,12.719059999999999) +(20,4,26.940304) +(20,5,48.226456) +(20,6,81.623914) +(20,7,124.988794) +(20,8,184.069009) +(20,9,256.07549) +(20,10,335.94069399999995) +(20,11,452.791612) +(20,12,574.287772) +(20,13,703.725724) +(20,14,849.785975) +(20,15,1030.789861) +(20,16,1261.743596) +(20,17,1470.137776) +(20,18,1803.48344) +(20,19,1993.546399) +(20,20,2303.20868) +(1,1,0.009951999999999989) +(3,3,0.305747) +(1,1,0.010223999999999983) +(2,2,0.06062899999999999) +(2,2,0.05904999999999999) +(2,2,0.060283999999999976) +(2,2,0.057089) +(2,2,0.056554999999999994) +(2,2,0.05870800000000001) +(2,2,0.05782599999999999) +(2,2,0.057276999999999995) +(1,10,1.024942) +(1,10,1.019908) +(1,3,0.14289599999999997) +(1,5,1.628999) +(1,2,0.026504) +(1,2,0.024227) +(1,2,0.022986000000000006) +(1,2,0.02299799999999999) +(1,2,0.02254199999999998) +(1,2,0.022752999999999995) +(1,2,0.023286999999999974) +(1,2,0.02451600000000001) +(1,2,0.023028999999999994) +(1,2,0.022860999999999992) +(1,2,0.023202) +(1,2,0.023186999999999985) +(1,2,0.02355299999999999) +(1,2,0.024364999999999998) +(1,2,0.024127999999999983) +(1,2,0.02459800000000001) +(1,2,0.023218000000000016) +(1,2,0.02319099999999999) +(1,2,0.022493999999999986) +(1,2,0.321145) +(1,2,0.023052000000000017) +(1,2,0.05174099999999998) +(1,2,0.04244399999999998) +(1,3,0.079147) +(1,4,0.243416) +(1,6,1.2863749999999998) +(1,7,2.4606960000000004) +(1,8,4.141844) +(1,9,6.923241) +(1,9,6.776605) +(1,9,7.026590000000001) +(1,2,0.020735000000000003) +(1,2,0.019962000000000008) +(1,2,0.01947299999999999) +(1,2,0.01999200000000001) +(1,2,0.020727999999999996) +(1,2,0.020486000000000004) +(1,2,0.019828000000000012) +(1,2,0.020280999999999993) +(1,2,0.019880999999999982) +(1,2,0.019708000000000003) +(1,2,0.020294000000000006) +(1,2,0.020456000000000002) +(1,3,0.08163200000000001) +(1,3,0.08447199999999999) +(1,3,0.07973) +(1,3,0.079401) +(1,3,0.04284399999999999) +(3,3,0.362863) +(3,3,0.37380499999999994) +(3,3,0.35629) +(3,3,0.368922) +(1,1,0.010178999999999994) +(1,1,0.009978000000000015) diff --git a/rctsys.py b/rctsys.py index 9c024a7..ea013ce 100755 --- a/rctsys.py +++ b/rctsys.py @@ -430,10 +430,10 @@ class ReactionSystemWithConcentrations(ReactionSystem): if elem[1] < 1: raise RuntimeError("Unexpected concentration level in state: " + str(elem)) - def check_rip(self, R, I, P): + def check_rip(self, R, I, P, ignore_empty_R=False): """Chcecks concentration levels and converts entities names into their ids""" - if R == []: + if R == [] and not ignore_empty_R: raise RuntimeError("No reactants defined") reactants = [] @@ -469,10 +469,18 @@ class ReactionSystemWithConcentrations(ReactionSystem): reaction = self.check_rip(R,I,P) self.reactions.append(reaction) + def add_reaction_without_reactants(self, R, I, P): + """Adds a reaction""" + + if P == []: + raise RuntimeError("No products defined") + reaction = self.check_rip(R,I,P,ignore_empty_R=True) + self.reactions.append(reaction) + def add_reaction_inc(self, incr_entity, incrementer, R, I): """Adds a macro/meta reaction for increasing the value of incr_entity""" - reactants,inhibitors,products = self.check_rip(R,I,[]) + reactants,inhibitors,products = self.check_rip(R,I,[],ignore_empty_R=True) incr_entity_id = self.get_entity_id(incr_entity) self.meta_reactions.setdefault(incr_entity_id,[]) self.meta_reactions[incr_entity_id].append(("inc", self.get_entity_id(incrementer), reactants, inhibitors)) @@ -480,7 +488,7 @@ class ReactionSystemWithConcentrations(ReactionSystem): def add_reaction_dec(self, decr_entity, decrementer, R, I): """Adds a macro/meta reaction for decreasing the value of incr_entity""" - reactants,inhibitors,products = self.check_rip(R,I,[]) + reactants,inhibitors,products = self.check_rip(R,I,[],ignore_empty_R=True) decr_entity_id = self.get_entity_id(decr_entity) self.meta_reactions.setdefault(decr_entity_id,[]) self.meta_reactions[decr_entity_id].append(("dec", self.get_entity_id(decrementer), reactants, inhibitors)) @@ -522,10 +530,16 @@ class ReactionSystemWithConcentrations(ReactionSystem): else: raise RuntimeError("Unknown meta-reaction type: " + repr(r_type)) + def show_max_concentrations(self): + print("[*] Maximal allowed concentration levels (for optimized translation to RS):") + for e,max_conc in self.max_conc_per_ent.items(): + print("\t - {0:>20} = {1:<6}".format(self.get_entity_name(e),max_conc)) + def show(self, soft=False): self.show_background_set() self.show_reactions(soft) self.show_meta_reactions() + self.show_max_concentrations() def get_reactions_by_product(self): """Sorts reactions by their products and returns a dictionary of products""" diff --git a/rs_examples.py b/rs_examples.py index 53b1381..ad186e9 100755 --- a/rs_examples.py +++ b/rs_examples.py @@ -388,26 +388,44 @@ def chain_reaction(print_system=False): f.write(log_str) f.close() -def blood_glucose_regulation(): +def blood_glucose_regulation(print_system=True): r = ReactionSystemWithConcentrations() r.add_bg_set_entity(("inc_insulin",1)) r.add_bg_set_entity(("dec_insulin",1)) r.add_bg_set_entity(("inc_glycemia",1)) - r.add_bg_set_entities(("inc_")) - - r.add_bg_set_entities([(sugar,1),(aspartame,1),(glycemia,3),(glucagon,1),(insulin,2)]) + r.add_bg_set_entity(("dec_glycemia",1)) + r.add_bg_set_entity(("inc_glucagon",1)) + r.add_bg_set_entities([("sugar",1),("aspartame",1),("glycemia",3),("glucagon",1),("insulin",2)]) # r.add_reaction([],[],[]) - r.add_reaction([(sugar,1)],[],[(inc_insulin,1),(inc_glycemia,1)]) - r.add_reaction([],[],[]) - r.add_reaction([],[],[]) - + r.add_reaction([("sugar",1)],[],[("inc_insulin",1),("inc_glycemia",1)]) + r.add_reaction([("aspartame",1)],[],[("insulin",1)]) + r.add_reaction_without_reactants([],[("glycemia",1)],[("insulin",1)]) + r.add_reaction([("glycemia",3)],[],[("insulin",1)]) + r.add_reaction([("insulin",2)],[],[("dec_glycemia",1)]) + r.add_reaction([("insulin",1),("glycemia",3)],[],[("dec_glycemia",1)]) + r.add_reaction([("insulin",1)],[("glycemia",2)],[("dec_glycemia",1)]) + r.add_reaction([("glucagon",1)],[],[("glycemia",1)]) + + # inc/dec: + r.add_reaction_inc("glycemia", "inc_glycemia", [],[("glycemia",3),("dec_glycemia",1)]) + r.add_reaction_inc("glycemia", "dec_glycemia", [],[("glycemia",1),("inc_glycemia",1)]) + + # potrzebne sa reakcje, ktore utrzymaja okresolna molekule na tym samym poziomie + # -> przed podtrzymaniem trzeba sie upewnic, ze jednak jakas reakcja nie chce zmienic tego poziomu + + # moje: + r.add_reaction([("sugar",1)],[],[("sugar",1)]) + + + c = ContextAutomatonWithConcentrations(r) - c.add_init_state("init") - c.add_state("working") - c.add_transition("init", [("e_1",1),("inc",1)], "working") - c.add_transition("working", [("inc",1)], "working") + c.add_init_state("0") + c.add_state("1") + c.add_transition("0", [("sugar",1)], "1") + c.add_transition("1", [], "1") + # c.add_transition("1", [("sugar",1)], "1") rc = ReactionSystemWithAutomaton(r,c) diff --git a/rssmt.py b/rssmt.py index 00a1b2b..d50dfc6 100755 --- a/rssmt.py +++ b/rssmt.py @@ -29,7 +29,8 @@ rsmc_banner = """ def process(): # rs_examples.run_counter_exp() - rs_examples.chain_reaction(print_system=True) + # rs_examples.chain_reaction(print_system=True) + rs_examples.blood_glucose_regulation() ################################################################## diff --git a/smtcheckerrsc.py b/smtcheckerrsc.py index cb6bee5..5014e25 100644 --- a/smtcheckerrsc.py +++ b/smtcheckerrsc.py @@ -361,7 +361,7 @@ class SmtCheckerRSC(object): if print_mem: print("[i] Memory: " + repr(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/(1024*1024)) + " MB") - + def get_verification_time(self): return self.verification_time