pypdevsbbl.generic.generators.html 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>pypdevsbbl.generic.generators module &#8212; Python(P)DEVS-BBL documentation</title>
  8. <link rel="stylesheet" href="_static/nature.css" type="text/css" />
  9. <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
  10. <link rel="stylesheet" type="text/css" href="_static/custom.css" />
  11. <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
  12. <script type="text/javascript" src="_static/jquery.js"></script>
  13. <script type="text/javascript" src="_static/underscore.js"></script>
  14. <script type="text/javascript" src="_static/doctools.js"></script>
  15. <script type="text/javascript" src="_static/language_data.js"></script>
  16. <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
  17. <link rel="index" title="Index" href="genindex.html" />
  18. <link rel="search" title="Search" href="search.html" />
  19. <link rel="next" title="pypdevsbbl.generic.io module" href="pypdevsbbl.generic.io.html" />
  20. <link rel="prev" title="pypdevsbbl.generic.collectors module" href="pypdevsbbl.generic.collectors.html" />
  21. </head><body>
  22. <div class="related" role="navigation" aria-label="related navigation">
  23. <h3>Navigation</h3>
  24. <ul>
  25. <li class="right" style="margin-right: 10px">
  26. <a href="genindex.html" title="General Index"
  27. accesskey="I">index</a></li>
  28. <li class="right" >
  29. <a href="py-modindex.html" title="Python Module Index"
  30. >modules</a> |</li>
  31. <li class="right" >
  32. <a href="pypdevsbbl.generic.io.html" title="pypdevsbbl.generic.io module"
  33. accesskey="N">next</a> |</li>
  34. <li class="right" >
  35. <a href="pypdevsbbl.generic.collectors.html" title="pypdevsbbl.generic.collectors module"
  36. accesskey="P">previous</a> |</li>
  37. <li class="nav-item nav-item-0"><a href="index.html">Python(P)DEVS-BBL documentation</a> &#187;</li>
  38. <li class="nav-item nav-item-1"><a href="pypdevsbbl.html" >pypdevsbbl package</a> &#187;</li>
  39. <li class="nav-item nav-item-2"><a href="pypdevsbbl.generic.html" accesskey="U">pypdevsbbl.generic package</a> &#187;</li>
  40. </ul>
  41. </div>
  42. <div class="document">
  43. <div class="documentwrapper">
  44. <div class="bodywrapper">
  45. <div class="body" role="main">
  46. <div class="section" id="module-pypdevsbbl.generic.generators">
  47. <span id="pypdevsbbl-generic-generators-module"></span><h1>pypdevsbbl.generic.generators module<a class="headerlink" href="#module-pypdevsbbl.generic.generators" title="Permalink to this headline">¶</a></h1>
  48. <p>A set of building blocks that can be used for generating data.</p>
  49. <p>When using the classes in this file, you can start creating simple
  50. (and complex) flow systems or, generally, anything that requires
  51. input.</p>
  52. <dl class="class">
  53. <dt id="pypdevsbbl.generic.generators.ConstantGenerator">
  54. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">ConstantGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>value=0</em>, <em>dt=1</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#ConstantGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.ConstantGenerator" title="Permalink to this definition">¶</a></dt>
  55. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  56. <p>AtomicDEVS that generates a constant value every dt time.</p>
  57. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/constant-generator.svg" src="../paper/images/blocks/generators/constant-generator.svg" /></div>
  58. <table class="docutils field-list" frame="void" rules="none">
  59. <col class="field-name" />
  60. <col class="field-body" />
  61. <tbody valign="top">
  62. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  63. <li><strong>name</strong> (<em>str</em>) – The name of the generator.</li>
  64. <li><strong>value</strong> (<em>any</em>) – The item to be generated. Defaults to 0.</li>
  65. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  66. Defaults to 1.</li>
  67. </ul>
  68. </td>
  69. </tr>
  70. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  71. <li><strong>value</strong> (<em>any</em>) – The item to generate.</li>
  72. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  73. Cannot be negative or zero.</li>
  74. <li><strong>elapsed</strong> (<em>numeric</em>) – The elapsed time since last internal transition.</li>
  75. </ul>
  76. </td>
  77. </tr>
  78. <tr class="field-odd field"><th class="field-name">Input Ports:</th><td class="field-body"><ul class="first simple">
  79. <li><strong>value</strong> (<em>any</em>) – A new value to output.</li>
  80. <li><strong>dt</strong> (<em>numeric</em>) – A new time delay. Cannot be negative or zero.</li>
  81. </ul>
  82. </td>
  83. </tr>
  84. <tr class="field-even field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>any</em>) – Outputs the generated value.</p>
  85. </td>
  86. </tr>
  87. </tbody>
  88. </table>
  89. <dl class="method">
  90. <dt id="pypdevsbbl.generic.generators.ConstantGenerator.intTransition">
  91. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#ConstantGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.ConstantGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  92. <dd></dd></dl>
  93. <dl class="method">
  94. <dt id="pypdevsbbl.generic.generators.ConstantGenerator.extTransition">
  95. <code class="descname">extTransition</code><span class="sig-paren">(</span><em>inputs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#ConstantGenerator.extTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.ConstantGenerator.extTransition" title="Permalink to this definition">¶</a></dt>
  96. <dd></dd></dl>
  97. <dl class="method">
  98. <dt id="pypdevsbbl.generic.generators.ConstantGenerator.timeAdvance">
  99. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#ConstantGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.ConstantGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  100. <dd></dd></dl>
  101. <dl class="method">
  102. <dt id="pypdevsbbl.generic.generators.ConstantGenerator.outputFnc">
  103. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#ConstantGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.ConstantGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  104. <dd></dd></dl>
  105. </dd></dl>
  106. <dl class="class">
  107. <dt id="pypdevsbbl.generic.generators.FunctionGenerator">
  108. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">FunctionGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>function=&lt;function FunctionGenerator.&lt;lambda&gt;&gt;</em>, <em>ic=0</em>, <em>dt=1</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#FunctionGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.FunctionGenerator" title="Permalink to this definition">¶</a></dt>
  109. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  110. <p>AtomicDEVS that generates a new value based on the previous one and the elapsed time.</p>
  111. <div class="admonition note">
  112. <p class="first admonition-title">Note</p>
  113. <p class="last">By default, he first output <code class="docutils literal notranslate"><span class="pre">ic</span></code> (initial condition) will be outputted at time 0.</p>
  114. </div>
  115. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/function-generator.svg" src="../paper/images/blocks/generators/function-generator.svg" /></div>
  116. <table class="docutils field-list" frame="void" rules="none">
  117. <col class="field-name" />
  118. <col class="field-body" />
  119. <tbody valign="top">
  120. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  121. <li><strong>name</strong> (<em>str</em>) – The name of the generator.</li>
  122. <li><strong>function</strong> (<em>def</em>) – A function that takes the previous value and the elapsed time as
  123. arguments and returns a new item from those.
  124. Defaults to an incrementor of the ic.</li>
  125. <li><strong>ic</strong> (<em>any</em>) – The initial condition of the generator.
  126. Defaults to 0.</li>
  127. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  128. Defaults to 1.</li>
  129. </ul>
  130. </td>
  131. </tr>
  132. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  133. <li><strong>next</strong> (<em>any</em>) – The next item that will be generated.</li>
  134. <li><strong>time</strong> (<em>numeric</em>) – The amount of time that has elapsed.</li>
  135. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  136. Cannot be negative or zero. Defaults to 1.</li>
  137. <li><strong>elapsed</strong> (<em>numeric</em>) – The elapsed time since last internal transition.</li>
  138. </ul>
  139. </td>
  140. </tr>
  141. <tr class="field-odd field"><th class="field-name">Input Ports:</th><td class="field-body"><p class="first"><strong>dt</strong> (<em>numeric</em>) – A new time delay. Cannot be negative or zero.</p>
  142. </td>
  143. </tr>
  144. <tr class="field-even field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>any</em>) – Outputs the generated value.</p>
  145. </td>
  146. </tr>
  147. </tbody>
  148. </table>
  149. <dl class="method">
  150. <dt id="pypdevsbbl.generic.generators.FunctionGenerator.timeAdvance">
  151. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#FunctionGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.FunctionGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  152. <dd></dd></dl>
  153. <dl class="method">
  154. <dt id="pypdevsbbl.generic.generators.FunctionGenerator.extTransition">
  155. <code class="descname">extTransition</code><span class="sig-paren">(</span><em>inputs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#FunctionGenerator.extTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.FunctionGenerator.extTransition" title="Permalink to this definition">¶</a></dt>
  156. <dd></dd></dl>
  157. <dl class="method">
  158. <dt id="pypdevsbbl.generic.generators.FunctionGenerator.intTransition">
  159. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#FunctionGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.FunctionGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  160. <dd></dd></dl>
  161. <dl class="method">
  162. <dt id="pypdevsbbl.generic.generators.FunctionGenerator.outputFnc">
  163. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#FunctionGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.FunctionGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  164. <dd></dd></dl>
  165. </dd></dl>
  166. <dl class="class">
  167. <dt id="pypdevsbbl.generic.generators.TableGenerator">
  168. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">TableGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>table</em>, <em>repeat: bool = False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#TableGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.TableGenerator" title="Permalink to this definition">¶</a></dt>
  169. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  170. <p>AtomicDEVS that generates a new value based on the table.</p>
  171. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/table-generator.svg" src="../paper/images/blocks/generators/table-generator.svg" /></div>
  172. <table class="docutils field-list" frame="void" rules="none">
  173. <col class="field-name" />
  174. <col class="field-body" />
  175. <tbody valign="top">
  176. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  177. <li><strong>name</strong> (<em>str</em>) – The name of the generator.</li>
  178. <li><strong>table</strong> (<em>iter</em>) – An iterable containing (time, value) tuples/pairs.
  179. Defaults to empty list.</li>
  180. <li><strong>repeat</strong> (<em>bool</em>) – When <code class="docutils literal notranslate"><span class="pre">True</span></code>, the table will be repeated when it
  181. is finished. Defaults to <code class="docutils literal notranslate"><span class="pre">False</span></code></li>
  182. </ul>
  183. </td>
  184. </tr>
  185. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  186. <li><strong>time</strong> (<em>numeric</em>) – The amount of time until the next transition.</li>
  187. <li><strong>index</strong> (<em>int</em>) – The index in the table at this point.</li>
  188. </ul>
  189. </td>
  190. </tr>
  191. <tr class="field-odd field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>any</em>) – Outputs the generated value.</p>
  192. </td>
  193. </tr>
  194. </tbody>
  195. </table>
  196. <dl class="method">
  197. <dt id="pypdevsbbl.generic.generators.TableGenerator.timeAdvance">
  198. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#TableGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.TableGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  199. <dd></dd></dl>
  200. <dl class="method">
  201. <dt id="pypdevsbbl.generic.generators.TableGenerator.intTransition">
  202. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#TableGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.TableGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  203. <dd></dd></dl>
  204. <dl class="method">
  205. <dt id="pypdevsbbl.generic.generators.TableGenerator.outputFnc">
  206. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#TableGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.TableGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  207. <dd></dd></dl>
  208. </dd></dl>
  209. <dl class="class">
  210. <dt id="pypdevsbbl.generic.generators.SingleFire">
  211. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">SingleFire</code><span class="sig-paren">(</span><em>name: str</em>, <em>item</em>, <em>t=0.0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#SingleFire"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.SingleFire" title="Permalink to this definition">¶</a></dt>
  212. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  213. <p>Output an item once.</p>
  214. <p>Useful to prevent the overhead of a <a class="reference internal" href="#pypdevsbbl.generic.generators.TableGenerator" title="pypdevsbbl.generic.generators.TableGenerator"><code class="xref py py-class docutils literal notranslate"><span class="pre">TableGenerator</span></code></a> with a
  215. single record.</p>
  216. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/single-fire.svg" src="../paper/images/blocks/generators/single-fire.svg" /></div>
  217. <table class="docutils field-list" frame="void" rules="none">
  218. <col class="field-name" />
  219. <col class="field-body" />
  220. <tbody valign="top">
  221. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  222. <li><strong>name</strong> (<em>str</em>) – The name of the block.</li>
  223. <li><strong>item</strong> (<em>any</em>) – The item that needs to be outputted.
  224. Cannot be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</li>
  225. <li><strong>t</strong> (<em>numeric</em>) – Absolute simulation time when to fire the event.</li>
  226. </ul>
  227. </td>
  228. </tr>
  229. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  230. <li><strong>item</strong> (<em>any</em>) – The item to fire.</li>
  231. <li><strong>t</strong> (<em>numeric</em>) – The absolute time until the event or <code class="docutils literal notranslate"><span class="pre">INFINITY</span></code>
  232. if the event has already passed.</li>
  233. </ul>
  234. </td>
  235. </tr>
  236. <tr class="field-odd field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>any</em>) – The item.</p>
  237. </td>
  238. </tr>
  239. </tbody>
  240. </table>
  241. <dl class="method">
  242. <dt id="pypdevsbbl.generic.generators.SingleFire.timeAdvance">
  243. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#SingleFire.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.SingleFire.timeAdvance" title="Permalink to this definition">¶</a></dt>
  244. <dd></dd></dl>
  245. <dl class="method">
  246. <dt id="pypdevsbbl.generic.generators.SingleFire.intTransition">
  247. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#SingleFire.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.SingleFire.intTransition" title="Permalink to this definition">¶</a></dt>
  248. <dd></dd></dl>
  249. <dl class="method">
  250. <dt id="pypdevsbbl.generic.generators.SingleFire.outputFnc">
  251. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#SingleFire.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.SingleFire.outputFnc" title="Permalink to this definition">¶</a></dt>
  252. <dd></dd></dl>
  253. </dd></dl>
  254. <dl class="class">
  255. <dt id="pypdevsbbl.generic.generators.BulkGenerator">
  256. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">BulkGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>dt=0.0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#BulkGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.BulkGenerator" title="Permalink to this definition">¶</a></dt>
  257. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  258. <p>Creates <span class="math notranslate nohighlight">\(n\)</span> messages every time it receives <span class="math notranslate nohighlight">\(n\)</span>.</p>
  259. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/bulk-generator.svg" src="../paper/images/blocks/generators/bulk-generator.svg" /></div>
  260. <table class="docutils field-list" frame="void" rules="none">
  261. <col class="field-name" />
  262. <col class="field-body" />
  263. <tbody valign="top">
  264. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  265. <li><strong>name</strong> (<em>str</em>) – The name of the block.</li>
  266. <li><strong>dt</strong> (<em>numeric</em>) – The time delay between the messages. Cannot be
  267. negative. Defaults to 0.</li>
  268. </ul>
  269. </td>
  270. </tr>
  271. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  272. <li><strong>index</strong> (<em>int</em>) – The index of the last item that was outputted.</li>
  273. <li><strong>items</strong> (<em>list</em>) – The items to generate.</li>
  274. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  275. Cannot be negative or zero.</li>
  276. <li><strong>elapsed</strong> (<em>numeric</em>) – The elapsed time since last internal transition.</li>
  277. </ul>
  278. </td>
  279. </tr>
  280. <tr class="field-odd field"><th class="field-name">Input Ports:</th><td class="field-body"><ul class="first simple">
  281. <li><strong>input</strong> (<em>int</em>) – A amount of items to output in bulk. When there
  282. are still items remaining, the provided values
  283. are appended to the list.</li>
  284. <li><strong>dt</strong> (<em>numeric</em>) – A new time delay. Cannot be negative.</li>
  285. </ul>
  286. </td>
  287. </tr>
  288. <tr class="field-even field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>numeric</em>) – Outputs the generated values.</p>
  289. </td>
  290. </tr>
  291. </tbody>
  292. </table>
  293. <dl class="method">
  294. <dt id="pypdevsbbl.generic.generators.BulkGenerator.intTransition">
  295. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#BulkGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.BulkGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  296. <dd></dd></dl>
  297. <dl class="method">
  298. <dt id="pypdevsbbl.generic.generators.BulkGenerator.extTransition">
  299. <code class="descname">extTransition</code><span class="sig-paren">(</span><em>inputs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#BulkGenerator.extTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.BulkGenerator.extTransition" title="Permalink to this definition">¶</a></dt>
  300. <dd></dd></dl>
  301. <dl class="method">
  302. <dt id="pypdevsbbl.generic.generators.BulkGenerator.timeAdvance">
  303. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#BulkGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.BulkGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  304. <dd></dd></dl>
  305. <dl class="method">
  306. <dt id="pypdevsbbl.generic.generators.BulkGenerator.outputFnc">
  307. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#BulkGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.BulkGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  308. <dd></dd></dl>
  309. </dd></dl>
  310. <dl class="class">
  311. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator">
  312. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">RandomNumberGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>seed=None</em>, <em>dist=&lt;function RandomNumberGenerator.&lt;lambda&gt;&gt;</em>, <em>args=()</em>, <em>dt=1</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator" title="Permalink to this definition">¶</a></dt>
  313. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  314. <p><code class="xref py py-class docutils literal notranslate"><span class="pre">AtomicDEVS</span></code> that generates a random number every dt time.</p>
  315. <p>It makes use of the RngStreams random number generator i.i.d. (0, 1).
  316. Using the <code class="docutils literal notranslate"><span class="pre">dist</span></code> argument, one can simply change the distribution over which
  317. numbers need to be generated. The <code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams.distributions</span></code>
  318. module provides an extensive implementation of a lot of distributions.</p>
  319. <div class="admonition seealso">
  320. <p class="first admonition-title">See also</p>
  321. <ul class="last simple">
  322. <li><a class="reference internal" href="pypdevsbbl.generic.math.html#pypdevsbbl.generic.math.Random" title="pypdevsbbl.generic.math.Random"><code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevsbbl.generic.math.Random</span></code></a></li>
  323. <li><a class="reference internal" href="#pypdevsbbl.generic.generators.RandomDelayGenerator" title="pypdevsbbl.generic.generators.RandomDelayGenerator"><code class="xref py py-class docutils literal notranslate"><span class="pre">RandomDelayGenerator</span></code></a></li>
  324. <li><a class="reference internal" href="pypdevsbbl.extra.rngstreams.html#module-pypdevsbbl.extra.rngstreams" title="pypdevsbbl.extra.rngstreams"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams</span></code></a></li>
  325. <li><code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams.distributions</span></code></li>
  326. </ul>
  327. </div>
  328. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/rng.svg" src="../paper/images/blocks/generators/rng.svg" /></div>
  329. <table class="docutils field-list" frame="void" rules="none">
  330. <col class="field-name" />
  331. <col class="field-body" />
  332. <tbody valign="top">
  333. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  334. <li><strong>name</strong> (<em>str</em>) – The name of the generator (both the block and the engine).</li>
  335. <li><strong>seed</strong> (<em>numeric</em>) – The seed for the generator. When <code class="docutils literal notranslate"><span class="pre">None</span></code>, it will not set a
  336. seed. Defaults to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</li>
  337. <li><strong>dist</strong> (<em>def</em>) – A stateless function that implements an inversive cumulative
  338. distribution function. It takes at least a single argument,
  339. which falls in (0, 1).
  340. Defaults to a uniform distribution over (0, 1).</li>
  341. <li><strong>args</strong> (<em>tuple</em>) – Optional additional arguments to add to the distribution.</li>
  342. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.
  343. Defaults to 1. Cannot be negative or zero.</li>
  344. </ul>
  345. </td>
  346. </tr>
  347. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  348. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.</li>
  349. <li><strong>num</strong> (<em>numeric</em>) – The random number that’s being/needs to be outputted.</li>
  350. <li><strong>elapsed</strong> (<em>numeric</em>) – The elapsed time since last internal transition.</li>
  351. </ul>
  352. </td>
  353. </tr>
  354. <tr class="field-odd field"><th class="field-name">Input Ports:</th><td class="field-body"><p class="first"><strong>dt</strong> (<em>numeric</em>) – A new time delay. Cannot be negative or zero.</p>
  355. </td>
  356. </tr>
  357. <tr class="field-even field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>numeric</em>) – Outputs the generated value.</p>
  358. </td>
  359. </tr>
  360. </tbody>
  361. </table>
  362. <dl class="method">
  363. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator.timeAdvance">
  364. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  365. <dd></dd></dl>
  366. <dl class="method">
  367. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator.extTransition">
  368. <code class="descname">extTransition</code><span class="sig-paren">(</span><em>inputs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator.extTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator.extTransition" title="Permalink to this definition">¶</a></dt>
  369. <dd></dd></dl>
  370. <dl class="method">
  371. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator.intTransition">
  372. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  373. <dd></dd></dl>
  374. <dl class="method">
  375. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator.outputFnc">
  376. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  377. <dd></dd></dl>
  378. <dl class="method">
  379. <dt id="pypdevsbbl.generic.generators.RandomNumberGenerator.next">
  380. <code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomNumberGenerator.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomNumberGenerator.next" title="Permalink to this definition">¶</a></dt>
  381. <dd><p>Obtains a random variable w.r.t. this generator’s config.</p>
  382. <p>Do note that this updates the gen object, meaning it must only be called
  383. in functions that may update the state.</p>
  384. </dd></dl>
  385. </dd></dl>
  386. <dl class="class">
  387. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator">
  388. <em class="property">class </em><code class="descclassname">pypdevsbbl.generic.generators.</code><code class="descname">RandomDelayGenerator</code><span class="sig-paren">(</span><em>name: str</em>, <em>seed=None</em>, <em>dist=&lt;function RandomDelayGenerator.&lt;lambda&gt;&gt;</em>, <em>args=()</em>, <em>func=&lt;function RandomDelayGenerator.&lt;lambda&gt;&gt;</em>, <em>dt=0.0</em>, <em>max=inf</em>, <em>base=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator" title="Permalink to this definition">¶</a></dt>
  389. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevs.DEVS.AtomicDEVS</span></code></p>
  390. <p><code class="xref py py-class docutils literal notranslate"><span class="pre">AtomicDEVS</span></code> that generates a new item every random time.</p>
  391. <p>The items that are generated get a sequential numbering (which can be altered
  392. using the <code class="xref py py-attr docutils literal notranslate"><span class="pre">func</span></code> argument), but their inter-arrival times follow the
  393. provided distribution.</p>
  394. <p>It makes use of the RngStreams random number generator i.i.d. (0, 1).
  395. Using the <code class="docutils literal notranslate"><span class="pre">dist</span></code> argument, one can simply change the distribution over which
  396. numbers need to be generated. The <code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams.distributions</span></code>
  397. module provides an extensive implementation of a lot of distributions.</p>
  398. <div class="admonition seealso">
  399. <p class="first admonition-title">See also</p>
  400. <ul class="last simple">
  401. <li><a class="reference internal" href="#pypdevsbbl.generic.generators.RandomNumberGenerator" title="pypdevsbbl.generic.generators.RandomNumberGenerator"><code class="xref py py-class docutils literal notranslate"><span class="pre">RandomNumberGenerator</span></code></a></li>
  402. <li><a class="reference internal" href="pypdevsbbl.generic.math.html#pypdevsbbl.generic.math.Random" title="pypdevsbbl.generic.math.Random"><code class="xref py py-class docutils literal notranslate"><span class="pre">pypdevsbbl.generic.math.Random</span></code></a></li>
  403. <li><a class="reference internal" href="pypdevsbbl.extra.rngstreams.html#module-pypdevsbbl.extra.rngstreams" title="pypdevsbbl.extra.rngstreams"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams</span></code></a></li>
  404. <li><code class="xref py py-mod docutils literal notranslate"><span class="pre">pypdevsbbl.extra.rngstreams.distributions</span></code></li>
  405. </ul>
  406. </div>
  407. <div align="center" class="align-center"><img alt="../paper/images/blocks/generators/random-delay-generator.svg" src="../paper/images/blocks/generators/random-delay-generator.svg" /></div>
  408. <table class="docutils field-list" frame="void" rules="none">
  409. <col class="field-name" />
  410. <col class="field-body" />
  411. <tbody valign="top">
  412. <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
  413. <li><strong>name</strong> (<em>str</em>) – The name of the generator (both the block and the engine).</li>
  414. <li><strong>seed</strong> (<em>numeric</em>) – The seed for the generator. When <code class="docutils literal notranslate"><span class="pre">None</span></code>, it will not set a
  415. seed. Defaults to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</li>
  416. <li><strong>dist</strong> (<em>def</em>) – A stateless function that implements an inversive cumulative
  417. distribution function. It takes at least a single argument,
  418. which falls in (0, 1).
  419. Defaults to a uniform distribution over (0, 1).</li>
  420. <li><strong>args</strong> (<em>tuple</em>) – Optional additional arguments to add to the distribution.</li>
  421. <li><strong>func</strong> (<em>def</em>) – Transformation function for the newly generated item.</li>
  422. <li><strong>dt</strong> (<em>numeric</em>) – Time of first item to generate. When <code class="docutils literal notranslate"><span class="pre">None</span></code>, no output
  423. will be created at time 0. Defaults to 0.</li>
  424. <li><strong>max</strong> (<em>numeric</em>) – Maximal amount of items to generate.</li>
  425. <li><strong>base</strong> (<em>numeric</em>) – The base number to start from when assigning the sequential
  426. numbering. When <code class="docutils literal notranslate"><span class="pre">None</span></code>, the block’s hash is used. Defaults
  427. to 0.</li>
  428. </ul>
  429. </td>
  430. </tr>
  431. <tr class="field-even field"><th class="field-name">State:</th><td class="field-body"><ul class="first simple">
  432. <li><strong>dt</strong> (<em>numeric</em>) – Time delay between the generation of new events.</li>
  433. <li><strong>num</strong> (<em>numeric</em>) – The random number that’s being/needs to be outputted.</li>
  434. <li><strong>elapsed</strong> (<em>numeric</em>) – The elapsed time since last internal transition.</li>
  435. </ul>
  436. </td>
  437. </tr>
  438. <tr class="field-odd field"><th class="field-name">Input Ports:</th><td class="field-body"><p class="first"><strong>halt</strong> (<em>bool</em>) – Halts the generator until further notice.</p>
  439. </td>
  440. </tr>
  441. <tr class="field-even field"><th class="field-name">Output Ports:</th><td class="field-body"><p class="first last"><strong>output</strong> (<em>any</em>) – Outputs the value.</p>
  442. </td>
  443. </tr>
  444. </tbody>
  445. </table>
  446. <dl class="method">
  447. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator.timeAdvance">
  448. <code class="descname">timeAdvance</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator.timeAdvance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator.timeAdvance" title="Permalink to this definition">¶</a></dt>
  449. <dd></dd></dl>
  450. <dl class="method">
  451. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator.extTransition">
  452. <code class="descname">extTransition</code><span class="sig-paren">(</span><em>inputs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator.extTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator.extTransition" title="Permalink to this definition">¶</a></dt>
  453. <dd></dd></dl>
  454. <dl class="method">
  455. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator.intTransition">
  456. <code class="descname">intTransition</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator.intTransition"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator.intTransition" title="Permalink to this definition">¶</a></dt>
  457. <dd></dd></dl>
  458. <dl class="method">
  459. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator.outputFnc">
  460. <code class="descname">outputFnc</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator.outputFnc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator.outputFnc" title="Permalink to this definition">¶</a></dt>
  461. <dd></dd></dl>
  462. <dl class="method">
  463. <dt id="pypdevsbbl.generic.generators.RandomDelayGenerator.next">
  464. <code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/pypdevsbbl/generic/generators.html#RandomDelayGenerator.next"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pypdevsbbl.generic.generators.RandomDelayGenerator.next" title="Permalink to this definition">¶</a></dt>
  465. <dd><p>Obtains a random variable w.r.t. this generator’s config.</p>
  466. <p>Do note that this updates the gen object, meaning it must only be called
  467. in functions that may update the state.</p>
  468. </dd></dl>
  469. </dd></dl>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  475. <div class="sphinxsidebarwrapper">
  476. <h4>Previous topic</h4>
  477. <p class="topless"><a href="pypdevsbbl.generic.collectors.html"
  478. title="previous chapter">pypdevsbbl.generic.collectors module</a></p>
  479. <h4>Next topic</h4>
  480. <p class="topless"><a href="pypdevsbbl.generic.io.html"
  481. title="next chapter">pypdevsbbl.generic.io module</a></p>
  482. <div id="searchbox" style="display: none" role="search">
  483. <h3>Quick search</h3>
  484. <div class="searchformwrapper">
  485. <form class="search" action="search.html" method="get">
  486. <input type="text" name="q" />
  487. <input type="submit" value="Go" />
  488. <input type="hidden" name="check_keywords" value="yes" />
  489. <input type="hidden" name="area" value="default" />
  490. </form>
  491. </div>
  492. </div>
  493. <script type="text/javascript">$('#searchbox').show(0);</script>
  494. </div>
  495. </div>
  496. <div class="clearer"></div>
  497. </div>
  498. <div class="related" role="navigation" aria-label="related navigation">
  499. <h3>Navigation</h3>
  500. <ul>
  501. <li class="right" style="margin-right: 10px">
  502. <a href="genindex.html" title="General Index"
  503. >index</a></li>
  504. <li class="right" >
  505. <a href="py-modindex.html" title="Python Module Index"
  506. >modules</a> |</li>
  507. <li class="right" >
  508. <a href="pypdevsbbl.generic.io.html" title="pypdevsbbl.generic.io module"
  509. >next</a> |</li>
  510. <li class="right" >
  511. <a href="pypdevsbbl.generic.collectors.html" title="pypdevsbbl.generic.collectors module"
  512. >previous</a> |</li>
  513. <li class="nav-item nav-item-0"><a href="index.html">Python(P)DEVS-BBL documentation</a> &#187;</li>
  514. <li class="nav-item nav-item-1"><a href="pypdevsbbl.html" >pypdevsbbl package</a> &#187;</li>
  515. <li class="nav-item nav-item-2"><a href="pypdevsbbl.generic.html" >pypdevsbbl.generic package</a> &#187;</li>
  516. </ul>
  517. </div>
  518. <div class="footer" role="contentinfo">
  519. &#169; Copyright 2020, Randy Paredis.
  520. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.5.
  521. </div>
  522. </body>
  523. </html>