nestml 8.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. nestml-8.3.0.data/data/doc/citing.rst +48 -0
  2. nestml-8.3.0.data/data/doc/extending/Dimitri_Plotnikov_Doctoral_Thesis.pdf +0 -0
  3. nestml-8.3.0.data/data/doc/extending/Konstantin_Perun_Master_thesis.pdf +0 -0
  4. nestml-8.3.0.data/data/doc/extending/Tammo_Ippen_Master_Thesis.pdf +0 -0
  5. nestml-8.3.0.data/data/doc/extending.rst +79 -0
  6. nestml-8.3.0.data/data/doc/fig/Asymmetric-STDP-learning-window-Spike-timing-window-of-STDP-for-the-induction-of.png +0 -0
  7. nestml-8.3.0.data/data/doc/fig/code_gen_opts.png +0 -0
  8. nestml-8.3.0.data/data/doc/fig/code_gen_opts.svg +342 -0
  9. nestml-8.3.0.data/data/doc/fig/fncom-04-00141-g003.jpg +0 -0
  10. nestml-8.3.0.data/data/doc/fig/genn-logo-thumbnail.png +0 -0
  11. nestml-8.3.0.data/data/doc/fig/genn-logo.png +0 -0
  12. nestml-8.3.0.data/data/doc/fig/integration_order.pdf +0 -0
  13. nestml-8.3.0.data/data/doc/fig/integration_order.png +0 -0
  14. nestml-8.3.0.data/data/doc/fig/integration_order_example.png +0 -0
  15. nestml-8.3.0.data/data/doc/fig/internal_workflow.png +0 -0
  16. nestml-8.3.0.data/data/doc/fig/internal_workflow.svg +1242 -0
  17. nestml-8.3.0.data/data/doc/fig/nest-desktop.svg +118 -0
  18. nestml-8.3.0.data/data/doc/fig/nest-gpu.svg +92 -0
  19. nestml-8.3.0.data/data/doc/fig/nest-simulator-logo.png +0 -0
  20. nestml-8.3.0.data/data/doc/fig/nestml-multisynapse-example.png +0 -0
  21. nestml-8.3.0.data/data/doc/fig/nestml_code_render_merged.png +0 -0
  22. nestml-8.3.0.data/data/doc/fig/nestml_code_render_thumbnail.png +0 -0
  23. nestml-8.3.0.data/data/doc/fig/neuron_illustration.svg +133 -0
  24. nestml-8.3.0.data/data/doc/fig/neuron_synapse_co_generation.png +0 -0
  25. nestml-8.3.0.data/data/doc/fig/neuron_synapse_co_generation.svg +555 -0
  26. nestml-8.3.0.data/data/doc/fig/performance_ratio_nonVec_vs_vec_compartmental.png +0 -0
  27. nestml-8.3.0.data/data/doc/fig/python-logo.png +0 -0
  28. nestml-8.3.0.data/data/doc/fig/spinnaker_logo.svg +169 -0
  29. nestml-8.3.0.data/data/doc/fig/stdp-nearest-neighbour.png +0 -0
  30. nestml-8.3.0.data/data/doc/fig/stdp_synapse_test.png +0 -0
  31. nestml-8.3.0.data/data/doc/fig/stdp_test_window.png +0 -0
  32. nestml-8.3.0.data/data/doc/fig/stdp_triplet_synapse_test.png +0 -0
  33. nestml-8.3.0.data/data/doc/fig/synapse_illustration.svg +661 -0
  34. nestml-8.3.0.data/data/doc/getting_help.rst +21 -0
  35. nestml-8.3.0.data/data/doc/installation.rst +107 -0
  36. nestml-8.3.0.data/data/doc/license.rst +287 -0
  37. nestml-8.3.0.data/data/doc/models_library/aeif_cond_alpha_neuron.rst +137 -0
  38. nestml-8.3.0.data/data/doc/models_library/aeif_cond_exp_neuron.rst +140 -0
  39. nestml-8.3.0.data/data/doc/models_library/aeif_cond_exp_neuron_characterisation.rst +18 -0
  40. nestml-8.3.0.data/data/doc/models_library/aeif_psc_alpha_neuron.rst +119 -0
  41. nestml-8.3.0.data/data/doc/models_library/hh_cond_exp_destexhe_neuron.rst +148 -0
  42. nestml-8.3.0.data/data/doc/models_library/hh_cond_exp_traub_neuron.rst +153 -0
  43. nestml-8.3.0.data/data/doc/models_library/hh_cond_exp_traub_neuron_characterisation.rst +18 -0
  44. nestml-8.3.0.data/data/doc/models_library/hh_moto_5ht_neuron.rst +157 -0
  45. nestml-8.3.0.data/data/doc/models_library/hh_psc_alpha_neuron.rst +141 -0
  46. nestml-8.3.0.data/data/doc/models_library/hh_psc_alpha_neuron_characterisation.rst +18 -0
  47. nestml-8.3.0.data/data/doc/models_library/hill_tononi_neuron.rst +173 -0
  48. nestml-8.3.0.data/data/doc/models_library/iaf_chxk_2008_neuron.rst +122 -0
  49. nestml-8.3.0.data/data/doc/models_library/iaf_chxk_2008_neuron_characterisation.rst +18 -0
  50. nestml-8.3.0.data/data/doc/models_library/iaf_cond_alpha_neuron.rst +120 -0
  51. nestml-8.3.0.data/data/doc/models_library/iaf_cond_alpha_neuron_characterisation.rst +18 -0
  52. nestml-8.3.0.data/data/doc/models_library/iaf_cond_beta_neuron.rst +133 -0
  53. nestml-8.3.0.data/data/doc/models_library/iaf_cond_beta_neuron_characterisation.rst +18 -0
  54. nestml-8.3.0.data/data/doc/models_library/iaf_cond_exp_neuron.rst +109 -0
  55. nestml-8.3.0.data/data/doc/models_library/iaf_cond_exp_neuron_characterisation.rst +18 -0
  56. nestml-8.3.0.data/data/doc/models_library/iaf_cond_exp_sfa_rr_neuron.rst +129 -0
  57. nestml-8.3.0.data/data/doc/models_library/iaf_cond_exp_sfa_rr_neuron_characterisation.rst +18 -0
  58. nestml-8.3.0.data/data/doc/models_library/iaf_psc_alpha_neuron.rst +139 -0
  59. nestml-8.3.0.data/data/doc/models_library/iaf_psc_alpha_neuron_characterisation.rst +18 -0
  60. nestml-8.3.0.data/data/doc/models_library/iaf_psc_delta_fixed_timestep_neuron.rst +107 -0
  61. nestml-8.3.0.data/data/doc/models_library/iaf_psc_delta_neuron.rst +118 -0
  62. nestml-8.3.0.data/data/doc/models_library/iaf_psc_delta_neuron_characterisation.rst +18 -0
  63. nestml-8.3.0.data/data/doc/models_library/iaf_psc_exp_htum_neuron.rst +132 -0
  64. nestml-8.3.0.data/data/doc/models_library/iaf_psc_exp_neuron.rst +143 -0
  65. nestml-8.3.0.data/data/doc/models_library/iaf_psc_exp_neuron_characterisation.rst +18 -0
  66. nestml-8.3.0.data/data/doc/models_library/ignore_and_fire_neuron.rst +89 -0
  67. nestml-8.3.0.data/data/doc/models_library/index.rst +534 -0
  68. nestml-8.3.0.data/data/doc/models_library/izhikevich_neuron.rst +115 -0
  69. nestml-8.3.0.data/data/doc/models_library/izhikevich_neuron_characterisation.rst +18 -0
  70. nestml-8.3.0.data/data/doc/models_library/izhikevich_psc_alpha_neuron.rst +126 -0
  71. nestml-8.3.0.data/data/doc/models_library/mat2_psc_exp_neuron.rst +131 -0
  72. nestml-8.3.0.data/data/doc/models_library/mat2_psc_exp_neuron_characterisation.rst +18 -0
  73. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[aeif_cond_exp_neuron_nestml].png +0 -0
  74. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[aeif_cond_exp_neuron_nestml]_small.png +0 -0
  75. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[hh_cond_exp_traub_neuron_nestml].png +0 -0
  76. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[hh_cond_exp_traub_neuron_nestml]_small.png +0 -0
  77. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[hh_psc_alpha_neuron_nestml].png +0 -0
  78. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[hh_psc_alpha_neuron_nestml]_small.png +0 -0
  79. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_chxk_2008_neuron_nestml].png +0 -0
  80. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_chxk_2008_neuron_nestml]_small.png +0 -0
  81. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_alpha_neuron_nestml].png +0 -0
  82. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_alpha_neuron_nestml]_small.png +0 -0
  83. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_beta_neuron_nestml].png +0 -0
  84. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_beta_neuron_nestml]_small.png +0 -0
  85. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_exp_neuron_nestml].png +0 -0
  86. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_exp_neuron_nestml]_small.png +0 -0
  87. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_exp_sfa_rr_neuron_nestml].png +0 -0
  88. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_cond_exp_sfa_rr_neuron_nestml]_small.png +0 -0
  89. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_alpha_neuron_nestml].png +0 -0
  90. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_alpha_neuron_nestml]_small.png +0 -0
  91. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_delta_neuron_nestml].png +0 -0
  92. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_delta_neuron_nestml]_small.png +0 -0
  93. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_exp_neuron_nestml].png +0 -0
  94. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[iaf_psc_exp_neuron_nestml]_small.png +0 -0
  95. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[izhikevich_neuron_nestml].png +0 -0
  96. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[izhikevich_neuron_nestml]_small.png +0 -0
  97. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[mat2_psc_exp_neuron_nestml].png +0 -0
  98. nestml-8.3.0.data/data/doc/models_library/nestml_current_pulse_response_[mat2_psc_exp_neuron_nestml]_small.png +0 -0
  99. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[aeif_cond_exp_neuron_nestml].png +0 -0
  100. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[aeif_cond_exp_neuron_nestml]_small.png +0 -0
  101. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[hh_cond_exp_traub_neuron_nestml].png +0 -0
  102. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[hh_cond_exp_traub_neuron_nestml]_small.png +0 -0
  103. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[hh_psc_alpha_neuron_nestml].png +0 -0
  104. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[hh_psc_alpha_neuron_nestml]_small.png +0 -0
  105. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_chxk_2008_neuron_nestml].png +0 -0
  106. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_chxk_2008_neuron_nestml]_small.png +0 -0
  107. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_alpha_neuron_nestml].png +0 -0
  108. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_alpha_neuron_nestml]_small.png +0 -0
  109. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_beta_neuron_nestml].png +0 -0
  110. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_beta_neuron_nestml]_small.png +0 -0
  111. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_exp_neuron_nestml].png +0 -0
  112. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_exp_neuron_nestml]_small.png +0 -0
  113. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_exp_sfa_rr_neuron_nestml].png +0 -0
  114. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_cond_exp_sfa_rr_neuron_nestml]_small.png +0 -0
  115. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_alpha_neuron_nestml].png +0 -0
  116. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_alpha_neuron_nestml]_small.png +0 -0
  117. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_delta_neuron_nestml].png +0 -0
  118. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_delta_neuron_nestml]_small.png +0 -0
  119. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_exp_neuron_nestml].png +0 -0
  120. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[iaf_psc_exp_neuron_nestml]_small.png +0 -0
  121. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[izhikevich_neuron_nestml].png +0 -0
  122. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[izhikevich_neuron_nestml]_small.png +0 -0
  123. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[mat2_psc_exp_neuron_nestml].png +0 -0
  124. nestml-8.3.0.data/data/doc/models_library/nestml_fI_curve_[mat2_psc_exp_neuron_nestml]_small.png +0 -0
  125. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[aeif_cond_exp_neuron_nestml].png +0 -0
  126. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[aeif_cond_exp_neuron_nestml]_small.png +0 -0
  127. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[hh_cond_exp_traub_neuron_nestml].png +0 -0
  128. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[hh_cond_exp_traub_neuron_nestml]_small.png +0 -0
  129. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[hh_psc_alpha_neuron_nestml].png +0 -0
  130. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[hh_psc_alpha_neuron_nestml]_small.png +0 -0
  131. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_chxk_2008_neuron_nestml].png +0 -0
  132. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_chxk_2008_neuron_nestml]_small.png +0 -0
  133. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_alpha_neuron_nestml].png +0 -0
  134. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_alpha_neuron_nestml]_small.png +0 -0
  135. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_beta_neuron_nestml].png +0 -0
  136. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_beta_neuron_nestml]_small.png +0 -0
  137. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_exp_neuron_nestml].png +0 -0
  138. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_exp_neuron_nestml]_small.png +0 -0
  139. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_exp_sfa_rr_neuron_nestml].png +0 -0
  140. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_cond_exp_sfa_rr_neuron_nestml]_small.png +0 -0
  141. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_alpha_neuron_nestml].png +0 -0
  142. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_alpha_neuron_nestml]_small.png +0 -0
  143. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_delta_neuron_nestml].png +0 -0
  144. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_delta_neuron_nestml]_small.png +0 -0
  145. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_exp_neuron_nestml].png +0 -0
  146. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[iaf_psc_exp_neuron_nestml]_small.png +0 -0
  147. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[izhikevich_neuron_nestml].png +0 -0
  148. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[izhikevich_neuron_nestml]_small.png +0 -0
  149. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[mat2_psc_exp_neuron_nestml].png +0 -0
  150. nestml-8.3.0.data/data/doc/models_library/nestml_psp_[mat2_psc_exp_neuron_nestml]_small.png +0 -0
  151. nestml-8.3.0.data/data/doc/models_library/neuromodulated_stdp_synapse.rst +75 -0
  152. nestml-8.3.0.data/data/doc/models_library/noisy_synapse.rst +37 -0
  153. nestml-8.3.0.data/data/doc/models_library/output.html +420 -0
  154. nestml-8.3.0.data/data/doc/models_library/static_synapse.rst +35 -0
  155. nestml-8.3.0.data/data/doc/models_library/stdp_nn_pre_centered_synapse.rst +99 -0
  156. nestml-8.3.0.data/data/doc/models_library/stdp_nn_restr_symm_synapse.rst +92 -0
  157. nestml-8.3.0.data/data/doc/models_library/stdp_nn_symm_synapse.rst +96 -0
  158. nestml-8.3.0.data/data/doc/models_library/stdp_synapse.rst +82 -0
  159. nestml-8.3.0.data/data/doc/models_library/stdp_triplet_synapse.rst +69 -0
  160. nestml-8.3.0.data/data/doc/models_library/terub_gpe_neuron.rst +124 -0
  161. nestml-8.3.0.data/data/doc/models_library/terub_stn_neuron.rst +125 -0
  162. nestml-8.3.0.data/data/doc/models_library/traub_cond_multisyn_neuron.rst +145 -0
  163. nestml-8.3.0.data/data/doc/models_library/traub_psc_alpha_neuron.rst +116 -0
  164. nestml-8.3.0.data/data/doc/models_library/tsodyks_synapse.rst +109 -0
  165. nestml-8.3.0.data/data/doc/models_library/wb_cond_exp_neuron.rst +122 -0
  166. nestml-8.3.0.data/data/doc/models_library/wb_cond_multisyn_neuron.rst +144 -0
  167. nestml-8.3.0.data/data/doc/nestml-logo/nestml-logo.pdf +0 -0
  168. nestml-8.3.0.data/data/doc/nestml-logo/nestml-logo.png +0 -0
  169. nestml-8.3.0.data/data/doc/nestml-logo/nestml-logo.svg +125 -0
  170. nestml-8.3.0.data/data/doc/nestml_language/index.rst +13 -0
  171. nestml-8.3.0.data/data/doc/nestml_language/nestml_language_concepts.rst +1174 -0
  172. nestml-8.3.0.data/data/doc/nestml_language/neurons_in_nestml.rst +256 -0
  173. nestml-8.3.0.data/data/doc/nestml_language/synapses_in_nestml.rst +488 -0
  174. nestml-8.3.0.data/data/doc/pynestml_toolchain/back.rst +198 -0
  175. nestml-8.3.0.data/data/doc/pynestml_toolchain/extensions.rst +117 -0
  176. nestml-8.3.0.data/data/doc/pynestml_toolchain/front.rst +304 -0
  177. nestml-8.3.0.data/data/doc/pynestml_toolchain/index.rst +36 -0
  178. nestml-8.3.0.data/data/doc/pynestml_toolchain/middle.rst +88 -0
  179. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_AnGen_cropped.png +0 -0
  180. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_different_cropped.png +0 -0
  181. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_genFiles_cropped.png +0 -0
  182. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_overview_cropped.png +0 -0
  183. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_phy_cropped.png +0 -0
  184. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_primTypes_cropped.png +0 -0
  185. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_proc_cropped.png +0 -0
  186. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_processor_cropped.png +0 -0
  187. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_solver_cropped.png +0 -0
  188. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_template_cropped.png +0 -0
  189. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_toCpp_cropped.png +0 -0
  190. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_toJson_cropped.png +0 -0
  191. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_toNest_cropped.png +0 -0
  192. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_toScalar_cropped.png +0 -0
  193. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_trans_cropped.png +0 -0
  194. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/back_used_cropped.png +0 -0
  195. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/dsl_archi_cropped.png +0 -0
  196. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_back_temp_cropped.jpg +0 -0
  197. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_astB_cropped.jpg +0 -0
  198. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_astVisitor_cropped.jpg +0 -0
  199. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_cocos_cropped.jpg +0 -0
  200. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_context_cropped.jpg +0 -0
  201. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_gram_cropped.jpg +0 -0
  202. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/ext_front_symbolVisitor_cropped.jpg +0 -0
  203. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_astclasses_cropped.jpg +0 -0
  204. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_builder_code_cropped.jpg +0 -0
  205. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_cocos_cropped.jpg +0 -0
  206. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_cocos_example_cropped.jpg +0 -0
  207. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_combunits_cropped.jpg +0 -0
  208. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_commentCD_cropped.jpg +0 -0
  209. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_comment_cropped.jpg +0 -0
  210. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_gram2ast_cropped.jpg +0 -0
  211. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_grammar_cropped.jpg +0 -0
  212. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_overview_cropped.jpg +0 -0
  213. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_parser_overview_cropped.jpg +0 -0
  214. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_predefined_cropped.jpg +0 -0
  215. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_processing_cropped.jpg +0 -0
  216. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_resolve_cropped.jpg +0 -0
  217. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_semantics_cropped.jpg +0 -0
  218. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_simple_cropped.jpg +0 -0
  219. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_symbols_cropped.jpg +0 -0
  220. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_symbolsetup_cropped.jpg +0 -0
  221. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_transdata_cropped.jpg +0 -0
  222. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_transexpr_cropped.jpg +0 -0
  223. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/front_typevisitoroverview_cropped.jpg +0 -0
  224. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_higher.png +0 -0
  225. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_higher_cropped.png +0 -0
  226. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_logger.png +0 -0
  227. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_logger_cropped.png +0 -0
  228. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_oldvis.png +0 -0
  229. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_oldvis_cropped.png +0 -0
  230. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_overview.png +0 -0
  231. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_overview_cropped.png +0 -0
  232. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_processing.png +0 -0
  233. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_processing_cropped.png +0 -0
  234. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_trans.png +0 -0
  235. nestml-8.3.0.data/data/doc/pynestml_toolchain/pic/mid_trans_cropped.png +0 -0
  236. nestml-8.3.0.data/data/doc/requirements.txt +23 -0
  237. nestml-8.3.0.data/data/doc/running/Schmidt_SpiNNaker_NESTML_Masters_thesis_2023.pdf +0 -0
  238. nestml-8.3.0.data/data/doc/running/index.rst +254 -0
  239. nestml-8.3.0.data/data/doc/running/running_genn.rst +37 -0
  240. nestml-8.3.0.data/data/doc/running/running_nest.rst +438 -0
  241. nestml-8.3.0.data/data/doc/running/running_nest_compartmental.rst +190 -0
  242. nestml-8.3.0.data/data/doc/running/running_nest_desktop.rst +22 -0
  243. nestml-8.3.0.data/data/doc/running/running_nest_gpu.rst +51 -0
  244. nestml-8.3.0.data/data/doc/running/running_pretty_render.rst +14 -0
  245. nestml-8.3.0.data/data/doc/running/running_python_standalone.rst +39 -0
  246. nestml-8.3.0.data/data/doc/running/running_spinnaker.rst +67 -0
  247. nestml-8.3.0.data/data/doc/sphinx-apidoc/_static/css/custom.css +148 -0
  248. nestml-8.3.0.data/data/doc/sphinx-apidoc/_static/css/pygments.css +70 -0
  249. nestml-8.3.0.data/data/doc/sphinx-apidoc/conf.py +306 -0
  250. nestml-8.3.0.data/data/doc/sphinx-apidoc/index.rst +73 -0
  251. nestml-8.3.0.data/data/doc/tutorials/active_dendrite/nestml_active_dendrite_tutorial.ipynb +711 -0
  252. nestml-8.3.0.data/data/doc/tutorials/gl_model/gl_model_tutorial.ipynb +536 -0
  253. nestml-8.3.0.data/data/doc/tutorials/index.rst +5 -0
  254. nestml-8.3.0.data/data/doc/tutorials/inhomogeneous_poisson/inhomogeneous_poisson.ipynb +372 -0
  255. nestml-8.3.0.data/data/doc/tutorials/inhomogeneous_poisson/inhomogeneous_poisson.nestml +51 -0
  256. nestml-8.3.0.data/data/doc/tutorials/izhikevich/izhikevich_solution.nestml +59 -0
  257. nestml-8.3.0.data/data/doc/tutorials/izhikevich/izhikevich_task.nestml +61 -0
  258. nestml-8.3.0.data/data/doc/tutorials/izhikevich/nestml_izhikevich_tutorial.ipynb +284 -0
  259. nestml-8.3.0.data/data/doc/tutorials/ornstein_uhlenbeck_noise/nestml_ou_noise_tutorial.ipynb +858 -0
  260. nestml-8.3.0.data/data/doc/tutorials/sequence_learning/iaf_psc_exp_nonlineardendrite_neuron.nestml +140 -0
  261. nestml-8.3.0.data/data/doc/tutorials/sequence_learning/sequence_learning.ipynb +3739 -0
  262. nestml-8.3.0.data/data/doc/tutorials/spike_frequency_adaptation/models/iaf_psc_alpha.nestml +116 -0
  263. nestml-8.3.0.data/data/doc/tutorials/spike_frequency_adaptation/models/iaf_psc_alpha_adapt_curr.nestml +133 -0
  264. nestml-8.3.0.data/data/doc/tutorials/spike_frequency_adaptation/models/iaf_psc_alpha_adapt_thresh.nestml +121 -0
  265. nestml-8.3.0.data/data/doc/tutorials/spike_frequency_adaptation/models/iaf_psc_alpha_adapt_thresh_OU.nestml +131 -0
  266. nestml-8.3.0.data/data/doc/tutorials/spike_frequency_adaptation/nestml_spike_frequency_adaptation_tutorial.ipynb +1309 -0
  267. nestml-8.3.0.data/data/doc/tutorials/stdp_dopa_synapse/stdp_dopa_synapse.ipynb +2310 -0
  268. nestml-8.3.0.data/data/doc/tutorials/stdp_third_factor_active_dendrite/stdp_third_factor_active_dendrite.ipynb +1623 -0
  269. nestml-8.3.0.data/data/doc/tutorials/stdp_windows/stdp_windows.ipynb +965 -0
  270. nestml-8.3.0.data/data/doc/tutorials/triplet_stdp_synapse/triplet_stdp_synapse.ipynb +1350 -0
  271. nestml-8.3.0.data/data/doc/tutorials/tutorials_list.rst +50 -0
  272. nestml-8.3.0.data/data/extras/benchmark/Running/benchmark.py +791 -0
  273. nestml-8.3.0.data/data/extras/benchmark/Running/brunel_alpha_nest.py +708 -0
  274. nestml-8.3.0.data/data/extras/benchmark/Running/plotting_options.py +17 -0
  275. nestml-8.3.0.data/data/extras/benchmark/Running/sbatch_run.sh.jinja2 +26 -0
  276. nestml-8.3.0.data/data/extras/benchmark/buildAll.sh +39 -0
  277. nestml-8.3.0.data/data/extras/benchmark/compile_nest.sh +24 -0
  278. nestml-8.3.0.data/data/extras/benchmark/updateCustomNeurons.sh +31 -0
  279. nestml-8.3.0.data/data/extras/codeanalysis/check_copyright_headers.py +119 -0
  280. nestml-8.3.0.data/data/extras/codeanalysis/copyright_header_template.py +20 -0
  281. nestml-8.3.0.data/data/extras/convert_cm_default_to_template.py +152 -0
  282. nestml-8.3.0.data/data/extras/nestml-release-checklist.md +68 -0
  283. nestml-8.3.0.data/data/extras/spinnaker-apptainer.def +106 -0
  284. nestml-8.3.0.data/data/extras/syntax-highlighting/KatePart/README.md +40 -0
  285. nestml-8.3.0.data/data/extras/syntax-highlighting/KatePart/language.xsd +682 -0
  286. nestml-8.3.0.data/data/extras/syntax-highlighting/KatePart/nestml-highlight.xml +3380 -0
  287. nestml-8.3.0.data/data/extras/syntax-highlighting/geany/Readme.md +15 -0
  288. nestml-8.3.0.data/data/extras/syntax-highlighting/geany/filetypes.NestML.conf +56 -0
  289. nestml-8.3.0.data/data/extras/syntax-highlighting/pygments/pygments_nestml.py +83 -0
  290. nestml-8.3.0.data/data/extras/syntax-highlighting/visual-code/Readme.md +16 -0
  291. nestml-8.3.0.data/data/extras/syntax-highlighting/visual-code/nestml/.vscode/launch.json +18 -0
  292. nestml-8.3.0.data/data/extras/syntax-highlighting/visual-code/nestml/language-configuration.json +33 -0
  293. nestml-8.3.0.data/data/extras/syntax-highlighting/visual-code/nestml/package.json +25 -0
  294. nestml-8.3.0.data/data/extras/syntax-highlighting/visual-code/nestml/syntaxes/nestml.tmLanguage.json +613 -0
  295. nestml-8.3.0.data/data/models/neurons/aeif_cond_alpha_alt_neuron.nestml +122 -0
  296. nestml-8.3.0.data/data/models/neurons/aeif_cond_alpha_neuron.nestml +147 -0
  297. nestml-8.3.0.data/data/models/neurons/aeif_cond_exp_neuron.nestml +141 -0
  298. nestml-8.3.0.data/data/models/neurons/aeif_psc_alpha_neuron.nestml +119 -0
  299. nestml-8.3.0.data/data/models/neurons/aeif_psc_exp_neuron.nestml +113 -0
  300. nestml-8.3.0.data/data/models/neurons/hh_cond_exp_destexhe_neuron.nestml +173 -0
  301. nestml-8.3.0.data/data/models/neurons/hh_cond_exp_traub_neuron.nestml +157 -0
  302. nestml-8.3.0.data/data/models/neurons/hh_moto_5ht_neuron.nestml +180 -0
  303. nestml-8.3.0.data/data/models/neurons/hh_psc_alpha_neuron.nestml +152 -0
  304. nestml-8.3.0.data/data/models/neurons/hill_tononi_neuron.nestml +257 -0
  305. nestml-8.3.0.data/data/models/neurons/iaf_chxk_2008_neuron.nestml +128 -0
  306. nestml-8.3.0.data/data/models/neurons/iaf_cond_alpha_neuron.nestml +113 -0
  307. nestml-8.3.0.data/data/models/neurons/iaf_cond_beta_neuron.nestml +141 -0
  308. nestml-8.3.0.data/data/models/neurons/iaf_cond_exp_neuron.nestml +103 -0
  309. nestml-8.3.0.data/data/models/neurons/iaf_cond_exp_sfa_rr_neuron.nestml +123 -0
  310. nestml-8.3.0.data/data/models/neurons/iaf_psc_alpha_neuron.nestml +109 -0
  311. nestml-8.3.0.data/data/models/neurons/iaf_psc_delta_fixed_timestep_neuron.nestml +99 -0
  312. nestml-8.3.0.data/data/models/neurons/iaf_psc_delta_neuron.nestml +103 -0
  313. nestml-8.3.0.data/data/models/neurons/iaf_psc_exp_htum_neuron.nestml +117 -0
  314. nestml-8.3.0.data/data/models/neurons/iaf_psc_exp_neuron.nestml +120 -0
  315. nestml-8.3.0.data/data/models/neurons/ignore_and_fire_neuron.nestml +68 -0
  316. nestml-8.3.0.data/data/models/neurons/izhikevich_neuron.nestml +100 -0
  317. nestml-8.3.0.data/data/models/neurons/izhikevich_psc_alpha_neuron.nestml +117 -0
  318. nestml-8.3.0.data/data/models/neurons/mat2_psc_exp_neuron.nestml +126 -0
  319. nestml-8.3.0.data/data/models/neurons/terub_gpe_neuron.nestml +174 -0
  320. nestml-8.3.0.data/data/models/neurons/terub_stn_neuron.nestml +183 -0
  321. nestml-8.3.0.data/data/models/neurons/traub_cond_multisyn_neuron.nestml +197 -0
  322. nestml-8.3.0.data/data/models/neurons/traub_psc_alpha_neuron.nestml +127 -0
  323. nestml-8.3.0.data/data/models/neurons/wb_cond_exp_neuron.nestml +144 -0
  324. nestml-8.3.0.data/data/models/neurons/wb_cond_multisyn_neuron.nestml +202 -0
  325. nestml-8.3.0.data/data/models/synapses/neuromodulated_stdp_synapse.nestml +110 -0
  326. nestml-8.3.0.data/data/models/synapses/noisy_synapse.nestml +45 -0
  327. nestml-8.3.0.data/data/models/synapses/static_synapse.nestml +39 -0
  328. nestml-8.3.0.data/data/models/synapses/stdp_nn_pre_centered_synapse.nestml +124 -0
  329. nestml-8.3.0.data/data/models/synapses/stdp_nn_restr_symm_synapse.nestml +121 -0
  330. nestml-8.3.0.data/data/models/synapses/stdp_nn_symm_synapse.nestml +120 -0
  331. nestml-8.3.0.data/data/models/synapses/stdp_synapse.nestml +105 -0
  332. nestml-8.3.0.data/data/models/synapses/stdp_triplet_synapse.nestml +103 -0
  333. nestml-8.3.0.data/data/models/synapses/stdsp_synapse.nestml +108 -0
  334. nestml-8.3.0.data/data/models/synapses/tsodyks_synapse.nestml +127 -0
  335. nestml-8.3.0.dist-info/LICENSE +339 -0
  336. nestml-8.3.0.dist-info/METADATA +18 -0
  337. nestml-8.3.0.dist-info/RECORD +917 -0
  338. nestml-8.3.0.dist-info/WHEEL +5 -0
  339. nestml-8.3.0.dist-info/entry_points.txt +2 -0
  340. nestml-8.3.0.dist-info/top_level.txt +2 -0
  341. pynestml/__init__.py +34 -0
  342. pynestml/cocos/__init__.py +48 -0
  343. pynestml/cocos/co_co.py +44 -0
  344. pynestml/cocos/co_co_all_variables_defined.py +134 -0
  345. pynestml/cocos/co_co_cm_channel_model.py +35 -0
  346. pynestml/cocos/co_co_cm_concentration_model.py +36 -0
  347. pynestml/cocos/co_co_cm_continuous_input_model.py +36 -0
  348. pynestml/cocos/co_co_cm_synapse_model.py +36 -0
  349. pynestml/cocos/co_co_convolve_cond_correctly_built.py +71 -0
  350. pynestml/cocos/co_co_convolve_has_correct_parameter.py +65 -0
  351. pynestml/cocos/co_co_correct_numerator_of_unit.py +64 -0
  352. pynestml/cocos/co_co_correct_order_in_equation.py +64 -0
  353. pynestml/cocos/co_co_each_block_defined_at_most_once.py +92 -0
  354. pynestml/cocos/co_co_emit_spike_function_arguments.py +68 -0
  355. pynestml/cocos/co_co_equations_only_for_init_values.py +81 -0
  356. pynestml/cocos/co_co_function_argument_template_types_consistent.py +105 -0
  357. pynestml/cocos/co_co_function_calls_consistent.py +113 -0
  358. pynestml/cocos/co_co_function_unique.py +69 -0
  359. pynestml/cocos/co_co_illegal_expression.py +264 -0
  360. pynestml/cocos/co_co_inline_expression_not_assigned_to.py +55 -0
  361. pynestml/cocos/co_co_inline_expressions_have_rhs.py +57 -0
  362. pynestml/cocos/co_co_inline_max_one_lhs.py +62 -0
  363. pynestml/cocos/co_co_input_port_not_assigned_to.py +72 -0
  364. pynestml/cocos/co_co_input_port_qualifier_unique.py +72 -0
  365. pynestml/cocos/co_co_integrate_odes_called_if_equations_defined.py +77 -0
  366. pynestml/cocos/co_co_integrate_odes_params_correct.py +57 -0
  367. pynestml/cocos/co_co_internals_assigned_only_in_internals_block.py +67 -0
  368. pynestml/cocos/co_co_invariant_is_boolean.py +72 -0
  369. pynestml/cocos/co_co_kernel_type.py +98 -0
  370. pynestml/cocos/co_co_model_name_unique.py +59 -0
  371. pynestml/cocos/co_co_nest_random_functions_legally_used.py +73 -0
  372. pynestml/cocos/co_co_nest_synapse_delay_not_assigned_to.py +55 -0
  373. pynestml/cocos/co_co_no_duplicate_compilation_unit_names.py +51 -0
  374. pynestml/cocos/co_co_no_kernels_except_in_convolve.py +158 -0
  375. pynestml/cocos/co_co_no_nest_name_space_collision.py +60 -0
  376. pynestml/cocos/co_co_ode_functions_have_consistent_units.py +57 -0
  377. pynestml/cocos/co_co_odes_have_consistent_units.py +72 -0
  378. pynestml/cocos/co_co_output_port_defined_if_emit_call.py +87 -0
  379. pynestml/cocos/co_co_parameters_assigned_only_in_parameter_block.py +75 -0
  380. pynestml/cocos/co_co_priorities_correctly_specified.py +64 -0
  381. pynestml/cocos/co_co_resolution_func_legally_used.py +71 -0
  382. pynestml/cocos/co_co_resolution_func_used.py +54 -0
  383. pynestml/cocos/co_co_simple_delta_function.py +66 -0
  384. pynestml/cocos/co_co_state_variables_initialized.py +44 -0
  385. pynestml/cocos/co_co_timestep_function_legally_used.py +75 -0
  386. pynestml/cocos/co_co_user_defined_function_correctly_defined.py +159 -0
  387. pynestml/cocos/co_co_v_comp_exists.py +77 -0
  388. pynestml/cocos/co_co_variable_once_per_scope.py +76 -0
  389. pynestml/cocos/co_co_vector_declaration_right_size.py +94 -0
  390. pynestml/cocos/co_co_vector_input_port_correct_size_type.py +63 -0
  391. pynestml/cocos/co_co_vector_parameter_declared_in_right_block.py +65 -0
  392. pynestml/cocos/co_co_vector_variable_in_non_vector_declaration.py +75 -0
  393. pynestml/cocos/co_cos_manager.py +496 -0
  394. pynestml/codegeneration/__init__.py +30 -0
  395. pynestml/codegeneration/autodoc_builder.py +363 -0
  396. pynestml/codegeneration/autodoc_code_generator.py +187 -0
  397. pynestml/codegeneration/builder.py +85 -0
  398. pynestml/codegeneration/code_generator.py +243 -0
  399. pynestml/codegeneration/code_generator_utils.py +133 -0
  400. pynestml/codegeneration/genn_code_generator.py +188 -0
  401. pynestml/codegeneration/nest_assignments_helper.py +147 -0
  402. pynestml/codegeneration/nest_builder.py +197 -0
  403. pynestml/codegeneration/nest_code_generator.py +1030 -0
  404. pynestml/codegeneration/nest_code_generator_utils.py +157 -0
  405. pynestml/codegeneration/nest_compartmental_code_generator.py +952 -0
  406. pynestml/codegeneration/nest_declarations_helper.py +119 -0
  407. pynestml/codegeneration/nest_desktop_code_generator.py +84 -0
  408. pynestml/codegeneration/nest_gpu_builder.py +115 -0
  409. pynestml/codegeneration/nest_gpu_code_generator.py +207 -0
  410. pynestml/codegeneration/nest_gpu_code_generator_utils.py +67 -0
  411. pynestml/codegeneration/nest_tools.py +163 -0
  412. pynestml/codegeneration/nest_unit_converter.py +79 -0
  413. pynestml/codegeneration/pretty_render_code_generator.py +117 -0
  414. pynestml/codegeneration/printers/__init__.py +54 -0
  415. pynestml/codegeneration/printers/ast_printer.py +41 -0
  416. pynestml/codegeneration/printers/c_simple_expression_printer.py +84 -0
  417. pynestml/codegeneration/printers/constant_printer.py +39 -0
  418. pynestml/codegeneration/printers/cpp_expression_printer.py +253 -0
  419. pynestml/codegeneration/printers/cpp_function_call_printer.py +220 -0
  420. pynestml/codegeneration/printers/cpp_printer.py +111 -0
  421. pynestml/codegeneration/printers/cpp_simple_expression_printer.py +35 -0
  422. pynestml/codegeneration/printers/cpp_type_symbol_printer.py +67 -0
  423. pynestml/codegeneration/printers/cpp_variable_printer.py +57 -0
  424. pynestml/codegeneration/printers/cuda_function_call_printer.py +182 -0
  425. pynestml/codegeneration/printers/expression_printer.py +54 -0
  426. pynestml/codegeneration/printers/function_call_printer.py +65 -0
  427. pynestml/codegeneration/printers/genn_c_variable_printer.py +154 -0
  428. pynestml/codegeneration/printers/genn_derived_variable_printer.py +140 -0
  429. pynestml/codegeneration/printers/genn_function_call_printer.py +220 -0
  430. pynestml/codegeneration/printers/gsl_variable_printer.py +110 -0
  431. pynestml/codegeneration/printers/latex_expression_printer.py +153 -0
  432. pynestml/codegeneration/printers/latex_function_call_printer.py +94 -0
  433. pynestml/codegeneration/printers/latex_simple_expression_printer.py +70 -0
  434. pynestml/codegeneration/printers/latex_variable_printer.py +106 -0
  435. pynestml/codegeneration/printers/model_printer.py +313 -0
  436. pynestml/codegeneration/printers/nest2_cpp_function_call_printer.py +56 -0
  437. pynestml/codegeneration/printers/nest2_gsl_function_call_printer.py +52 -0
  438. pynestml/codegeneration/printers/nest_cpp_function_call_printer.py +66 -0
  439. pynestml/codegeneration/printers/nest_cpp_type_symbol_printer.py +42 -0
  440. pynestml/codegeneration/printers/nest_gpu_function_call_printer.py +58 -0
  441. pynestml/codegeneration/printers/nest_gpu_numeric_function_call_printer.py +46 -0
  442. pynestml/codegeneration/printers/nest_gpu_numeric_variable_printer.py +92 -0
  443. pynestml/codegeneration/printers/nest_gpu_variable_printer.py +95 -0
  444. pynestml/codegeneration/printers/nest_gsl_function_call_printer.py +52 -0
  445. pynestml/codegeneration/printers/nest_variable_printer.py +190 -0
  446. pynestml/codegeneration/printers/nestml_expression_printer.py +167 -0
  447. pynestml/codegeneration/printers/nestml_function_call_printer.py +40 -0
  448. pynestml/codegeneration/printers/nestml_printer.py +557 -0
  449. pynestml/codegeneration/printers/nestml_simple_expression_printer.py +75 -0
  450. pynestml/codegeneration/printers/nestml_simple_expression_printer_units_as_factors.py +39 -0
  451. pynestml/codegeneration/printers/nestml_variable_printer.py +42 -0
  452. pynestml/codegeneration/printers/ode_toolbox_expression_printer.py +79 -0
  453. pynestml/codegeneration/printers/ode_toolbox_function_call_printer.py +139 -0
  454. pynestml/codegeneration/printers/ode_toolbox_variable_printer.py +37 -0
  455. pynestml/codegeneration/printers/python_expression_printer.py +242 -0
  456. pynestml/codegeneration/printers/python_function_call_printer.py +157 -0
  457. pynestml/codegeneration/printers/python_simple_expression_printer.py +81 -0
  458. pynestml/codegeneration/printers/python_standalone_printer.py +111 -0
  459. pynestml/codegeneration/printers/python_stepping_function_function_call_printer.py +70 -0
  460. pynestml/codegeneration/printers/python_stepping_function_variable_printer.py +80 -0
  461. pynestml/codegeneration/printers/python_type_symbol_printer.py +67 -0
  462. pynestml/codegeneration/printers/python_variable_printer.py +156 -0
  463. pynestml/codegeneration/printers/simple_expression_printer.py +67 -0
  464. pynestml/codegeneration/printers/spinnaker_c_function_call_printer.py +139 -0
  465. pynestml/codegeneration/printers/spinnaker_c_type_symbol_printer.py +67 -0
  466. pynestml/codegeneration/printers/spinnaker_c_variable_printer.py +159 -0
  467. pynestml/codegeneration/printers/spinnaker_gsl_function_call_printer.py +52 -0
  468. pynestml/codegeneration/printers/spinnaker_python_function_call_printer.py +65 -0
  469. pynestml/codegeneration/printers/spinnaker_python_simple_expression_printer.py +85 -0
  470. pynestml/codegeneration/printers/spinnaker_python_type_symbol_printer.py +67 -0
  471. pynestml/codegeneration/printers/symbol_printer.py +35 -0
  472. pynestml/codegeneration/printers/sympy_simple_expression_printer.py +93 -0
  473. pynestml/codegeneration/printers/type_symbol_printer.py +36 -0
  474. pynestml/codegeneration/printers/unitless_c_simple_expression_printer.py +52 -0
  475. pynestml/codegeneration/printers/variable_printer.py +61 -0
  476. pynestml/codegeneration/python_code_generator_utils.py +54 -0
  477. pynestml/codegeneration/python_standalone_code_generator.py +125 -0
  478. pynestml/codegeneration/python_standalone_target_tools.py +102 -0
  479. pynestml/codegeneration/resources_autodoc/block_decl_table.jinja2 +24 -0
  480. pynestml/codegeneration/resources_autodoc/nestml_models_index.jinja2 +21 -0
  481. pynestml/codegeneration/resources_autodoc/nestml_neuron_model.jinja2 +56 -0
  482. pynestml/codegeneration/resources_autodoc/nestml_synapse_model.jinja2 +36 -0
  483. pynestml/codegeneration/resources_nest/point_neuron/@NEURON_NAME@.cpp.jinja2 +21 -0
  484. pynestml/codegeneration/resources_nest/point_neuron/@NEURON_NAME@.h.jinja2 +21 -0
  485. pynestml/codegeneration/resources_nest/point_neuron/@SYNAPSE_NAME@.h.jinja2 +21 -0
  486. pynestml/codegeneration/resources_nest/point_neuron/common/NeuronClass.jinja2 +1569 -0
  487. pynestml/codegeneration/resources_nest/point_neuron/common/NeuronHeader.jinja2 +1292 -0
  488. pynestml/codegeneration/resources_nest/point_neuron/common/SynapseHeader.h.jinja2 +1648 -0
  489. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/AnalyticIntegrationStep_begin.jinja2 +16 -0
  490. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/AnalyticIntegrationStep_end.jinja2 +11 -0
  491. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ApplySpikesFromBuffers.jinja2 +6 -0
  492. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/AssignTmpDictionaryValue.jinja2 +10 -0
  493. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/Assignment.jinja2 +7 -0
  494. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/BufferDeclaration.jinja2 +4 -0
  495. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/BufferInitialization.jinja2 +5 -0
  496. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/CommonPropertiesDictionaryMemberInitialization.jinja2 +18 -0
  497. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/CommonPropertiesDictionaryReader.jinja2 +9 -0
  498. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/CommonPropertiesDictionaryWriter.jinja2 +10 -0
  499. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/CompoundStatement.jinja2 +18 -0
  500. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ContinuousInputBufferGetter.jinja2 +28 -0
  501. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/Declaration.jinja2 +21 -0
  502. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/DelayVariablesDeclaration.jinja2 +8 -0
  503. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/DelayVariablesInitialization.jinja2 +8 -0
  504. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/DynamicStateElement.jinja2 +48 -0
  505. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ExistsInDictionary.jinja2 +19 -0
  506. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ForStatement.jinja2 +22 -0
  507. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/FunctionCall.jinja2 +13 -0
  508. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/FunctionDeclaration.jinja2 +20 -0
  509. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/GSLDifferentiationFunction.jinja2 +110 -0
  510. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/GSLIntegrationStep.jinja2 +74 -0
  511. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/GetValueFromDictionary.jinja2 +18 -0
  512. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/IfStatement.jinja2 +33 -0
  513. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/MemberDeclaration.jinja2 +10 -0
  514. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/MemberInitialization.jinja2 +20 -0
  515. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/MemberVariableGetter.jinja2 +11 -0
  516. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/MemberVariableSetter.jinja2 +6 -0
  517. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/OutputEvent.jinja2 +18 -0
  518. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/PredefinedFunction_emit_spike.jinja2 +40 -0
  519. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/PredefinedFunction_integrate_odes.jinja2 +69 -0
  520. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ReadFromDictionary.jinja2 +36 -0
  521. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ReadFromDictionaryToTmp.jinja2 +66 -0
  522. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/RemoveFromDictionary.jinja2 +18 -0
  523. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/ReturnStatement.jinja2 +10 -0
  524. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/RportToBufferIndexEntry.jinja2 +20 -0
  525. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/SmallStatement.jinja2 +22 -0
  526. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/SpikeBufferGetter.jinja2 +28 -0
  527. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/StateVariablesEnum.jinja2 +22 -0
  528. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/Statement.jinja2 +16 -0
  529. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/StmtsBody.jinja2 +9 -0
  530. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/UpdateDelayVariables.jinja2 +6 -0
  531. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/VectorDeclaration.jinja2 +5 -0
  532. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/VectorSizeParameter.jinja2 +13 -0
  533. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/WhileStatement.jinja2 +13 -0
  534. pynestml/codegeneration/resources_nest/point_neuron/directives_cpp/WriteInDictionary.jinja2 +18 -0
  535. pynestml/codegeneration/resources_nest/point_neuron/setup/@MODULE_NAME@.cpp.jinja2 +27 -0
  536. pynestml/codegeneration/resources_nest/point_neuron/setup/@MODULE_NAME@.h.jinja2 +24 -0
  537. pynestml/codegeneration/resources_nest/point_neuron/setup/CMakeLists.txt.jinja2 +288 -0
  538. pynestml/codegeneration/resources_nest/point_neuron/setup/common/ModuleClass.jinja2 +138 -0
  539. pynestml/codegeneration/resources_nest/point_neuron/setup/common/ModuleClassMaster.jinja2 +84 -0
  540. pynestml/codegeneration/resources_nest/point_neuron/setup/common/ModuleHeader.jinja2 +92 -0
  541. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/@NEURON_NAME@.cpp.jinja2 +297 -0
  542. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/@NEURON_NAME@.h.jinja2 +353 -0
  543. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/cm_neuroncurrents_@NEURON_NAME@.cpp.jinja2 +1036 -0
  544. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/cm_neuroncurrents_@NEURON_NAME@.h.jinja2 +943 -0
  545. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/cm_tree_@NEURON_NAME@.cpp.jinja2 +672 -0
  546. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/cm_tree_@NEURON_NAME@.h.jinja2 +270 -0
  547. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/AnalyticIntegrationStep_begin.jinja2 +16 -0
  548. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/AnalyticIntegrationStep_end.jinja2 +11 -0
  549. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ApplySpikesFromBuffers.jinja2 +6 -0
  550. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/AssignTmpDictionaryValue.jinja2 +10 -0
  551. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/Assignment.jinja2 +7 -0
  552. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/BufferDeclaration.jinja2 +4 -0
  553. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/BufferInitialization.jinja2 +5 -0
  554. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/CommonPropertiesDictionaryMemberInitialization.jinja2 +18 -0
  555. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/CommonPropertiesDictionaryReader.jinja2 +9 -0
  556. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/CommonPropertiesDictionaryWriter.jinja2 +10 -0
  557. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/CompoundStatement.jinja2 +18 -0
  558. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ContinuousInputBufferGetter.jinja2 +28 -0
  559. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/Declaration.jinja2 +21 -0
  560. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/DelayVariablesDeclaration.jinja2 +8 -0
  561. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/DelayVariablesInitialization.jinja2 +8 -0
  562. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/DynamicStateElement.jinja2 +48 -0
  563. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ExistsInDictionary.jinja2 +19 -0
  564. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ForStatement.jinja2 +22 -0
  565. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/FunctionCall.jinja2 +13 -0
  566. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/FunctionDeclaration.jinja2 +20 -0
  567. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/GSLDifferentiationFunction.jinja2 +110 -0
  568. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/GSLIntegrationStep.jinja2 +74 -0
  569. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/GetValueFromDictionary.jinja2 +18 -0
  570. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/IfStatement.jinja2 +33 -0
  571. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/MemberDeclaration.jinja2 +10 -0
  572. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/MemberInitialization.jinja2 +20 -0
  573. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/MemberVariableGetter.jinja2 +11 -0
  574. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/MemberVariableSetter.jinja2 +6 -0
  575. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/OutputEvent.jinja2 +18 -0
  576. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/PredefinedFunction_emit_spike.jinja2 +40 -0
  577. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/PredefinedFunction_integrate_odes.jinja2 +69 -0
  578. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ReadFromDictionary.jinja2 +36 -0
  579. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ReadFromDictionaryToTmp.jinja2 +66 -0
  580. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/RemoveFromDictionary.jinja2 +18 -0
  581. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/ReturnStatement.jinja2 +10 -0
  582. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/RportToBufferIndexEntry.jinja2 +20 -0
  583. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/SmallStatement.jinja2 +22 -0
  584. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/SpikeBufferGetter.jinja2 +28 -0
  585. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/StateVariablesEnum.jinja2 +22 -0
  586. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/Statement.jinja2 +16 -0
  587. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/StmtsBody.jinja2 +9 -0
  588. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/UpdateDelayVariables.jinja2 +6 -0
  589. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/VectorDeclaration.jinja2 +5 -0
  590. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/VectorSizeParameter.jinja2 +13 -0
  591. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/WhileStatement.jinja2 +13 -0
  592. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/directives_cpp/WriteInDictionary.jinja2 +18 -0
  593. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/@MODULE_NAME@.cpp.jinja2 +27 -0
  594. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/@MODULE_NAME@.h.jinja2 +24 -0
  595. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/CMakeLists.txt.jinja2 +292 -0
  596. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/common/ModuleClass.jinja2 +126 -0
  597. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/common/ModuleClassMaster.jinja2 +71 -0
  598. pynestml/codegeneration/resources_nest_compartmental/cm_neuron/setup/common/ModuleHeader.jinja2 +92 -0
  599. pynestml/codegeneration/resources_nest_desktop/@NEURON_NAME@.json.jinja2 +15 -0
  600. pynestml/codegeneration/resources_nest_desktop/VariableDeclaration.jinja2 +12 -0
  601. pynestml/codegeneration/resources_nest_gpu/point_neuron/@NEURON_NAME@.cu.jinja2 +25 -0
  602. pynestml/codegeneration/resources_nest_gpu/point_neuron/@NEURON_NAME@.h.jinja2 +25 -0
  603. pynestml/codegeneration/resources_nest_gpu/point_neuron/NeuronClassAnalytic.jinja2 +259 -0
  604. pynestml/codegeneration/resources_nest_gpu/point_neuron/NeuronClassNumeric.jinja2 +322 -0
  605. pynestml/codegeneration/resources_nest_gpu/point_neuron/NeuronHeaderAnalytic.jinja2 +79 -0
  606. pynestml/codegeneration/resources_nest_gpu/point_neuron/NeuronHeaderNumeric.jinja2 +127 -0
  607. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/AnalyticIntegrationStep_begin.jinja2 +12 -0
  608. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/AnalyticIntegrationStep_end.jinja2 +11 -0
  609. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/ApplySpikesFromBuffers.jinja2 +6 -0
  610. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/Assignment.jinja2 +7 -0
  611. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/CompoundStatement.jinja2 +18 -0
  612. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/Declaration.jinja2 +21 -0
  613. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/ForStatement.jinja2 +20 -0
  614. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/FunctionCall.jinja2 +10 -0
  615. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/FunctionDeclaration.jinja2 +23 -0
  616. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/IfStatement.jinja2 +33 -0
  617. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/MemberInitialization.jinja2 +11 -0
  618. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/MemberNamesAndIndexes.jinja2 +79 -0
  619. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/NumericDifferentiationFunction.jinja2 +18 -0
  620. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/NumericIntegrationStep.jinja2 +28 -0
  621. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/PredefinedFunction_integrate_odes.jinja2 +22 -0
  622. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/ReturnStatement.jinja2 +10 -0
  623. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/SetScalParamAndVar.jinja2 +13 -0
  624. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/SmallStatement.jinja2 +22 -0
  625. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/Statement.jinja2 +16 -0
  626. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/StmtsBody.jinja2 +9 -0
  627. pynestml/codegeneration/resources_nest_gpu/point_neuron/directives/WhileStatement.jinja2 +11 -0
  628. pynestml/codegeneration/resources_python_standalone/point_neuron/@NEURON_NAME@.py.jinja2 +379 -0
  629. pynestml/codegeneration/resources_python_standalone/point_neuron/@SYNAPSE_NAME@.py.jinja2 +396 -0
  630. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/AnalyticIntegrationStep_begin.jinja2 +10 -0
  631. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/AnalyticIntegrationStep_end.jinja2 +12 -0
  632. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/ApplySpikesFromBuffers.jinja2 +6 -0
  633. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/Assignment.jinja2 +25 -0
  634. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/CompoundStatement.jinja2 +18 -0
  635. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/ConstructorParameterWithDefault.jinja2 +28 -0
  636. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/Declaration.jinja2 +20 -0
  637. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/DynamicStateElement.jinja2 +46 -0
  638. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/ForStatement.jinja2 +13 -0
  639. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/FunctionCall.jinja2 +12 -0
  640. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/FunctionDeclaration.jinja2 +19 -0
  641. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/GSLDifferentiationFunction.jinja2 +36 -0
  642. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/GSLIntegrationStep.jinja2 +12 -0
  643. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/IfStatement.jinja2 +24 -0
  644. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/MemberDeclaration.jinja2 +14 -0
  645. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/MemberInitialization.jinja2 +18 -0
  646. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/MemberVariableGetterSetter.jinja2 +12 -0
  647. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/ReturnStatement.jinja2 +10 -0
  648. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/SmallStatement.jinja2 +22 -0
  649. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/Statement.jinja2 +17 -0
  650. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/StmtsBody.jinja2 +11 -0
  651. pynestml/codegeneration/resources_python_standalone/point_neuron/directives_py/WhileStatement.jinja2 +10 -0
  652. pynestml/codegeneration/resources_python_standalone/point_neuron/neuron.py.jinja2 +52 -0
  653. pynestml/codegeneration/resources_python_standalone/point_neuron/simulator.py.jinja2 +165 -0
  654. pynestml/codegeneration/resources_python_standalone/point_neuron/spike_generator.py.jinja2 +40 -0
  655. pynestml/codegeneration/resources_python_standalone/point_neuron/synapse.py.jinja2 +50 -0
  656. pynestml/codegeneration/resources_python_standalone/point_neuron/test_python_standalone_module.py.jinja2 +75 -0
  657. pynestml/codegeneration/resources_python_standalone/point_neuron/utils.py.jinja2 +5 -0
  658. pynestml/codegeneration/resources_spinnaker/@NEURON_NAME@.py.jinja2 +106 -0
  659. pynestml/codegeneration/resources_spinnaker/@NEURON_NAME@_chain_example.py.jinja2 +141 -0
  660. pynestml/codegeneration/resources_spinnaker/@NEURON_NAME@_impl.h.jinja2 +333 -0
  661. pynestml/codegeneration/resources_spinnaker/@NEURON_NAME@_impl.py.jinja2 +279 -0
  662. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@.py.jinja2 +13 -0
  663. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_impl.c.jinja2 +705 -0
  664. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_impl.h.jinja2 +116 -0
  665. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_impl.py.jinja2 +600 -0
  666. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_timing.py.jinja2 +136 -0
  667. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_timing_impl.c.jinja2 +0 -0
  668. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_timing_impl.h.jinja2 +0 -0
  669. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_weight.py.jinja2 +123 -0
  670. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_weight_impl.c.jinja2 +0 -0
  671. pynestml/codegeneration/resources_spinnaker/@SYNAPSE_NAME@_weight_impl.h.jinja2 +0 -0
  672. pynestml/codegeneration/resources_spinnaker/Makefile_@NEURON_NAME@_impl.jinja2 +6 -0
  673. pynestml/codegeneration/resources_spinnaker/Makefile_@SYNAPSE_NAME@_impl.jinja2 +11 -0
  674. pynestml/codegeneration/resources_spinnaker/Makefile_models.jinja2 +13 -0
  675. pynestml/codegeneration/resources_spinnaker/Makefile_root.jinja2 +7 -0
  676. pynestml/codegeneration/resources_spinnaker/__init__.py.jinja2 +27 -0
  677. pynestml/codegeneration/resources_spinnaker/directives_cpp/AnalyticIntegrationStep_begin.jinja2 +16 -0
  678. pynestml/codegeneration/resources_spinnaker/directives_cpp/AnalyticIntegrationStep_end.jinja2 +11 -0
  679. pynestml/codegeneration/resources_spinnaker/directives_cpp/ApplySpikesFromBuffers.jinja2 +6 -0
  680. pynestml/codegeneration/resources_spinnaker/directives_cpp/AssignTmpDictionaryValue.jinja2 +10 -0
  681. pynestml/codegeneration/resources_spinnaker/directives_cpp/Assignment.jinja2 +7 -0
  682. pynestml/codegeneration/resources_spinnaker/directives_cpp/BufferDeclaration.jinja2 +4 -0
  683. pynestml/codegeneration/resources_spinnaker/directives_cpp/BufferInitialization.jinja2 +5 -0
  684. pynestml/codegeneration/resources_spinnaker/directives_cpp/CompoundStatement.jinja2 +18 -0
  685. pynestml/codegeneration/resources_spinnaker/directives_cpp/ContinuousInputBufferGetter.jinja2 +28 -0
  686. pynestml/codegeneration/resources_spinnaker/directives_cpp/Declaration.jinja2 +21 -0
  687. pynestml/codegeneration/resources_spinnaker/directives_cpp/DelayVariablesDeclaration.jinja2 +8 -0
  688. pynestml/codegeneration/resources_spinnaker/directives_cpp/DelayVariablesInitialization.jinja2 +8 -0
  689. pynestml/codegeneration/resources_spinnaker/directives_cpp/DynamicStateElement.jinja2 +48 -0
  690. pynestml/codegeneration/resources_spinnaker/directives_cpp/ForStatement.jinja2 +22 -0
  691. pynestml/codegeneration/resources_spinnaker/directives_cpp/FunctionCall.jinja2 +13 -0
  692. pynestml/codegeneration/resources_spinnaker/directives_cpp/FunctionDeclaration.jinja2 +20 -0
  693. pynestml/codegeneration/resources_spinnaker/directives_cpp/GSLDifferentiationFunction.jinja2 +110 -0
  694. pynestml/codegeneration/resources_spinnaker/directives_cpp/GSLIntegrationStep.jinja2 +74 -0
  695. pynestml/codegeneration/resources_spinnaker/directives_cpp/IfStatement.jinja2 +33 -0
  696. pynestml/codegeneration/resources_spinnaker/directives_cpp/MemberDeclaration.jinja2 +10 -0
  697. pynestml/codegeneration/resources_spinnaker/directives_cpp/MemberInitialization.jinja2 +20 -0
  698. pynestml/codegeneration/resources_spinnaker/directives_cpp/MemberVariableGetter.jinja2 +11 -0
  699. pynestml/codegeneration/resources_spinnaker/directives_cpp/MemberVariableSetter.jinja2 +6 -0
  700. pynestml/codegeneration/resources_spinnaker/directives_cpp/OutputEvent.jinja2 +18 -0
  701. pynestml/codegeneration/resources_spinnaker/directives_cpp/PredefinedFunction_emit_spike.jinja2 +16 -0
  702. pynestml/codegeneration/resources_spinnaker/directives_cpp/PredefinedFunction_integrate_odes.jinja2 +69 -0
  703. pynestml/codegeneration/resources_spinnaker/directives_cpp/ReturnStatement.jinja2 +10 -0
  704. pynestml/codegeneration/resources_spinnaker/directives_cpp/RportToBufferIndexEntry.jinja2 +20 -0
  705. pynestml/codegeneration/resources_spinnaker/directives_cpp/SmallStatement.jinja2 +22 -0
  706. pynestml/codegeneration/resources_spinnaker/directives_cpp/SpikeBufferGetter.jinja2 +28 -0
  707. pynestml/codegeneration/resources_spinnaker/directives_cpp/StateVariablesEnum.jinja2 +22 -0
  708. pynestml/codegeneration/resources_spinnaker/directives_cpp/Statement.jinja2 +16 -0
  709. pynestml/codegeneration/resources_spinnaker/directives_cpp/StmtsBody.jinja2 +9 -0
  710. pynestml/codegeneration/resources_spinnaker/directives_cpp/UpdateDelayVariables.jinja2 +6 -0
  711. pynestml/codegeneration/resources_spinnaker/directives_cpp/VectorDeclaration.jinja2 +5 -0
  712. pynestml/codegeneration/resources_spinnaker/directives_cpp/VectorSizeParameter.jinja2 +13 -0
  713. pynestml/codegeneration/resources_spinnaker/directives_cpp/WhileStatement.jinja2 +13 -0
  714. pynestml/codegeneration/resources_spinnaker/directives_py/AnalyticIntegrationStep_begin.jinja2 +10 -0
  715. pynestml/codegeneration/resources_spinnaker/directives_py/AnalyticIntegrationStep_end.jinja2 +12 -0
  716. pynestml/codegeneration/resources_spinnaker/directives_py/ApplySpikesFromBuffers.jinja2 +6 -0
  717. pynestml/codegeneration/resources_spinnaker/directives_py/Assignment.jinja2 +25 -0
  718. pynestml/codegeneration/resources_spinnaker/directives_py/CompoundStatement.jinja2 +18 -0
  719. pynestml/codegeneration/resources_spinnaker/directives_py/ConstructorParameterWithDefault.jinja2 +28 -0
  720. pynestml/codegeneration/resources_spinnaker/directives_py/Declaration.jinja2 +20 -0
  721. pynestml/codegeneration/resources_spinnaker/directives_py/DynamicStateElement.jinja2 +46 -0
  722. pynestml/codegeneration/resources_spinnaker/directives_py/ForStatement.jinja2 +13 -0
  723. pynestml/codegeneration/resources_spinnaker/directives_py/FunctionCall.jinja2 +12 -0
  724. pynestml/codegeneration/resources_spinnaker/directives_py/FunctionDeclaration.jinja2 +19 -0
  725. pynestml/codegeneration/resources_spinnaker/directives_py/GSLDifferentiationFunction.jinja2 +36 -0
  726. pynestml/codegeneration/resources_spinnaker/directives_py/GSLIntegrationStep.jinja2 +12 -0
  727. pynestml/codegeneration/resources_spinnaker/directives_py/IfStatement.jinja2 +24 -0
  728. pynestml/codegeneration/resources_spinnaker/directives_py/MemberDeclaration.jinja2 +14 -0
  729. pynestml/codegeneration/resources_spinnaker/directives_py/MemberInitialization.jinja2 +18 -0
  730. pynestml/codegeneration/resources_spinnaker/directives_py/MemberVariableGetterSetter.jinja2 +12 -0
  731. pynestml/codegeneration/resources_spinnaker/directives_py/ReturnStatement.jinja2 +10 -0
  732. pynestml/codegeneration/resources_spinnaker/directives_py/SmallStatement.jinja2 +22 -0
  733. pynestml/codegeneration/resources_spinnaker/directives_py/Statement.jinja2 +17 -0
  734. pynestml/codegeneration/resources_spinnaker/directives_py/StmtsBody.jinja2 +11 -0
  735. pynestml/codegeneration/resources_spinnaker/directives_py/WhileStatement.jinja2 +10 -0
  736. pynestml/codegeneration/resources_spinnaker/directives_py/__init__.py +24 -0
  737. pynestml/codegeneration/resources_spinnaker/extra.mk.jinja2 +33 -0
  738. pynestml/codegeneration/resources_spinnaker/extra_neuron.mk.jinja2 +33 -0
  739. pynestml/codegeneration/resources_spinnaker/extra_synapse.mk.jinja2 +33 -0
  740. pynestml/codegeneration/spinnaker_builder.py +314 -0
  741. pynestml/codegeneration/spinnaker_code_generator.py +228 -0
  742. pynestml/codegeneration/spinnaker_code_generator_utils.py +53 -0
  743. pynestml/codegeneration/spinnaker_unit_converter.py +79 -0
  744. pynestml/exceptions/__init__.py +22 -0
  745. pynestml/exceptions/code_generator_options_exception.py +27 -0
  746. pynestml/exceptions/generated_code_build_exception.py +27 -0
  747. pynestml/exceptions/implicit_cast_exception.py +28 -0
  748. pynestml/exceptions/implicit_magnitude_cast_exception.py +28 -0
  749. pynestml/exceptions/invalid_path_exception.py +27 -0
  750. pynestml/exceptions/invalid_target_exception.py +27 -0
  751. pynestml/frontend/__init__.py +22 -0
  752. pynestml/frontend/frontend_configuration.py +361 -0
  753. pynestml/frontend/pynestml_frontend.py +679 -0
  754. pynestml/generated/PyNestMLLexer.py +472 -0
  755. pynestml/generated/PyNestMLLexerBase.py +161 -0
  756. pynestml/generated/PyNestMLParser.py +4810 -0
  757. pynestml/generated/PyNestMLParserVisitor.py +248 -0
  758. pynestml/generated/__init__.py +22 -0
  759. pynestml/meta_model/__init__.py +65 -0
  760. pynestml/meta_model/ast_arithmetic_operator.py +91 -0
  761. pynestml/meta_model/ast_assignment.py +202 -0
  762. pynestml/meta_model/ast_bit_operator.py +102 -0
  763. pynestml/meta_model/ast_block_with_variables.py +141 -0
  764. pynestml/meta_model/ast_comparison_operator.py +115 -0
  765. pynestml/meta_model/ast_compound_stmt.py +181 -0
  766. pynestml/meta_model/ast_data_type.py +173 -0
  767. pynestml/meta_model/ast_declaration.py +259 -0
  768. pynestml/meta_model/ast_elif_clause.py +108 -0
  769. pynestml/meta_model/ast_else_clause.py +89 -0
  770. pynestml/meta_model/ast_equations_block.py +149 -0
  771. pynestml/meta_model/ast_expression.py +392 -0
  772. pynestml/meta_model/ast_expression_node.py +64 -0
  773. pynestml/meta_model/ast_external_variable.py +74 -0
  774. pynestml/meta_model/ast_for_stmt.py +163 -0
  775. pynestml/meta_model/ast_function.py +208 -0
  776. pynestml/meta_model/ast_function_call.py +127 -0
  777. pynestml/meta_model/ast_if_clause.py +108 -0
  778. pynestml/meta_model/ast_if_stmt.py +168 -0
  779. pynestml/meta_model/ast_inline_expression.py +159 -0
  780. pynestml/meta_model/ast_input_block.py +111 -0
  781. pynestml/meta_model/ast_input_port.py +249 -0
  782. pynestml/meta_model/ast_input_qualifier.py +90 -0
  783. pynestml/meta_model/ast_kernel.py +131 -0
  784. pynestml/meta_model/ast_logical_operator.py +87 -0
  785. pynestml/meta_model/ast_model.py +711 -0
  786. pynestml/meta_model/ast_model_body.py +255 -0
  787. pynestml/meta_model/ast_namespace_decorator.py +83 -0
  788. pynestml/meta_model/ast_nestml_compilation_unit.py +125 -0
  789. pynestml/meta_model/ast_node.py +215 -0
  790. pynestml/meta_model/ast_node_factory.py +381 -0
  791. pynestml/meta_model/ast_ode_equation.py +131 -0
  792. pynestml/meta_model/ast_on_condition_block.py +106 -0
  793. pynestml/meta_model/ast_on_receive_block.py +104 -0
  794. pynestml/meta_model/ast_output_block.py +121 -0
  795. pynestml/meta_model/ast_parameter.py +100 -0
  796. pynestml/meta_model/ast_return_stmt.py +105 -0
  797. pynestml/meta_model/ast_simple_expression.py +344 -0
  798. pynestml/meta_model/ast_small_stmt.py +204 -0
  799. pynestml/meta_model/ast_stmt.py +105 -0
  800. pynestml/meta_model/ast_stmts_body.py +120 -0
  801. pynestml/meta_model/ast_unary_operator.py +93 -0
  802. pynestml/meta_model/ast_unit_type.py +205 -0
  803. pynestml/meta_model/ast_update_block.py +84 -0
  804. pynestml/meta_model/ast_variable.py +223 -0
  805. pynestml/meta_model/ast_while_stmt.py +113 -0
  806. pynestml/symbol_table/__init__.py +22 -0
  807. pynestml/symbol_table/scope.py +341 -0
  808. pynestml/symbol_table/symbol_table.py +92 -0
  809. pynestml/symbols/__init__.py +38 -0
  810. pynestml/symbols/boolean_type_symbol.py +58 -0
  811. pynestml/symbols/error_type_symbol.py +85 -0
  812. pynestml/symbols/function_symbol.py +126 -0
  813. pynestml/symbols/integer_type_symbol.py +130 -0
  814. pynestml/symbols/predefined_functions.py +546 -0
  815. pynestml/symbols/predefined_types.py +263 -0
  816. pynestml/symbols/predefined_units.py +100 -0
  817. pynestml/symbols/predefined_variables.py +128 -0
  818. pynestml/symbols/real_type_symbol.py +118 -0
  819. pynestml/symbols/string_type_symbol.py +50 -0
  820. pynestml/symbols/symbol.py +136 -0
  821. pynestml/symbols/template_type_symbol.py +53 -0
  822. pynestml/symbols/type_symbol.py +244 -0
  823. pynestml/symbols/unit_type_symbol.py +177 -0
  824. pynestml/symbols/variable_symbol.py +432 -0
  825. pynestml/symbols/variadic_type_symbol.py +47 -0
  826. pynestml/symbols/void_type_symbol.py +40 -0
  827. pynestml/transformers/__init__.py +26 -0
  828. pynestml/transformers/add_timestep_to_internals_transformer.py +64 -0
  829. pynestml/transformers/convolutions_to_buffers_transformer.py +263 -0
  830. pynestml/transformers/equations_with_delay_vars_transformer.py +61 -0
  831. pynestml/transformers/equations_with_vector_vars_transformer.py +57 -0
  832. pynestml/transformers/illegal_variable_name_transformer.py +115 -0
  833. pynestml/transformers/inline_expression_expansion_transformer.py +141 -0
  834. pynestml/transformers/ode_toolbox_transformer.py +185 -0
  835. pynestml/transformers/synapse_post_neuron_transformer.py +459 -0
  836. pynestml/transformers/transformer.py +46 -0
  837. pynestml/utils/__init__.py +22 -0
  838. pynestml/utils/ast_mechanism_information_collector.py +516 -0
  839. pynestml/utils/ast_source_location.py +217 -0
  840. pynestml/utils/ast_synapse_information_collector.py +349 -0
  841. pynestml/utils/ast_utils.py +2750 -0
  842. pynestml/utils/ast_vector_parameter_setter_and_printer.py +50 -0
  843. pynestml/utils/ast_vector_parameter_setter_and_printer_factory.py +42 -0
  844. pynestml/utils/chan_info_enricher.py +59 -0
  845. pynestml/utils/channel_processing.py +88 -0
  846. pynestml/utils/cloning_helpers.py +41 -0
  847. pynestml/utils/con_in_info_enricher.py +56 -0
  848. pynestml/utils/conc_info_enricher.py +29 -0
  849. pynestml/utils/concentration_processing.py +104 -0
  850. pynestml/utils/continuous_input_processing.py +43 -0
  851. pynestml/utils/error_listener.py +42 -0
  852. pynestml/utils/logger.py +333 -0
  853. pynestml/utils/logging_helper.py +35 -0
  854. pynestml/utils/mechanism_processing.py +214 -0
  855. pynestml/utils/mechs_info_enricher.py +183 -0
  856. pynestml/utils/messages.py +1170 -0
  857. pynestml/utils/model_parser.py +494 -0
  858. pynestml/utils/ode_toolbox_utils.py +60 -0
  859. pynestml/utils/port_signal_type.py +30 -0
  860. pynestml/utils/stack.py +107 -0
  861. pynestml/utils/string_utils.py +34 -0
  862. pynestml/utils/synapse_processing.py +230 -0
  863. pynestml/utils/syns_info_enricher.py +345 -0
  864. pynestml/utils/type_caster.py +69 -0
  865. pynestml/utils/type_dictionary.py +27 -0
  866. pynestml/utils/unit_type.py +89 -0
  867. pynestml/utils/with_options.py +65 -0
  868. pynestml/visitors/__init__.py +48 -0
  869. pynestml/visitors/assign_implicit_conversion_factors_visitor.py +326 -0
  870. pynestml/visitors/ast_binary_logic_visitor.py +62 -0
  871. pynestml/visitors/ast_bit_operator_visitor.py +54 -0
  872. pynestml/visitors/ast_boolean_literal_visitor.py +42 -0
  873. pynestml/visitors/ast_builder_visitor.py +778 -0
  874. pynestml/visitors/ast_comparison_operator_visitor.py +78 -0
  875. pynestml/visitors/ast_condition_visitor.py +101 -0
  876. pynestml/visitors/ast_data_type_visitor.py +163 -0
  877. pynestml/visitors/ast_dot_operator_visitor.py +54 -0
  878. pynestml/visitors/ast_equations_with_delay_vars_visitor.py +74 -0
  879. pynestml/visitors/ast_equations_with_vector_variables.py +38 -0
  880. pynestml/visitors/ast_expression_type_visitor.py +186 -0
  881. pynestml/visitors/ast_function_call_visitor.py +121 -0
  882. pynestml/visitors/ast_higher_order_visitor.py +50 -0
  883. pynestml/visitors/ast_inf_visitor.py +41 -0
  884. pynestml/visitors/ast_line_operation_visitor.py +60 -0
  885. pynestml/visitors/ast_logical_not_visitor.py +41 -0
  886. pynestml/visitors/ast_mark_delay_vars_visitor.py +46 -0
  887. pynestml/visitors/ast_numeric_literal_visitor.py +69 -0
  888. pynestml/visitors/ast_parent_aware_visitor.py +43 -0
  889. pynestml/visitors/ast_parent_visitor.py +38 -0
  890. pynestml/visitors/ast_parentheses_visitor.py +41 -0
  891. pynestml/visitors/ast_power_visitor.py +119 -0
  892. pynestml/visitors/ast_random_number_generator_visitor.py +64 -0
  893. pynestml/visitors/ast_set_vector_parameter_in_update_expressions.py +42 -0
  894. pynestml/visitors/ast_string_literal_visitor.py +41 -0
  895. pynestml/visitors/ast_symbol_table_visitor.py +611 -0
  896. pynestml/visitors/ast_unary_visitor.py +54 -0
  897. pynestml/visitors/ast_variable_visitor.py +70 -0
  898. pynestml/visitors/ast_visitor.py +1357 -0
  899. pynestml/visitors/comment_collector_visitor.py +328 -0
  900. tests/__init__.py +20 -0
  901. tests/ast_builder_test.py +78 -0
  902. tests/ast_clone_test.py +93 -0
  903. tests/codegen_opts_detects_non_existing.py +32 -0
  904. tests/comment_test.py +104 -0
  905. tests/conftest.py +29 -0
  906. tests/docstring_comment_test.py +85 -0
  907. tests/expression_parser_test.py +79 -0
  908. tests/expression_type_calculation_test.py +94 -0
  909. tests/lexer_parser_test.py +65 -0
  910. tests/pynestml_frontend_test.py +142 -0
  911. tests/random_number_generators_test.py +52 -0
  912. tests/special_block_parser_builder_test.py +79 -0
  913. tests/test_cocos.py +438 -0
  914. tests/test_function_parameter_templating.py +36 -0
  915. tests/test_nestml_printer.py +255 -0
  916. tests/test_symbol_table_builder.py +87 -0
  917. tests/test_unit_system.py +164 -0
@@ -0,0 +1,48 @@
1
+ Citing NESTML
2
+ =============
3
+
4
+ If you use NESTML in your work, please cite one or more of the following publications.
5
+
6
+ In general, please cite the software release that you are using. In case you wish to refer to specific features of the processing toolchain, please cite the relevant scientific publication.
7
+
8
+
9
+ Software releases
10
+ -----------------
11
+
12
+ Charl Linssen, Pooja N. Babu, Andreas Rogalski, Bernhard Rumpe and Abigail Morrison (2025). **NESTML 8.2.0.** Zenodo. `doi:10.5281/zenodo.16537793 <https://doi.org/10.5281/zenodo.16537793>`_.
13
+
14
+ Charl Linssen, Pooja N. Babu, Bernhard Rumpe and Abigail Morrison (2025). **NESTML 8.1.0.** Zenodo. `doi:10.5281/zenodo.16537793 <https://doi.org/10.5281/zenodo.16537793>`_.
15
+
16
+ Charl Linssen, Pooja N. Babu, Bernhard Rumpe and Abigail Morrison (2025). **NESTML 8.0.2.** Zenodo. `doi:10.5281/zenodo.15771528 <https://doi.org/10.5281/zenodo.15771528>`_.
17
+
18
+ Charl Linssen, Pooja N. Babu, Bernhard Rumpe and Abigail Morrison (2025). **NESTML 8.0.1.** Zenodo. `doi:10.5281/zenodo.15292719 <https://doi.org/10.5281/zenodo.15292719>`_.
19
+
20
+ Charl Linssen, Pooja N. Babu, Younes Bouhadjar, Leander Ewert, Willem Wybo, Melissa Lober, Florian Feller, Bernhard Rumpe and Abigail Morrison (2024). **NESTML 8.0.0.** Zenodo. `doi:10.5281/zenodo.12191059 <https://doi.org/10.5281/zenodo.12191059>`_.
21
+
22
+ Charl A.P. Linssen, Pooja N. Babu, Bernhard Rumpe and Abigail Morrison (2024). **NESTML 7.0.1.** Zenodo. `doi:10.5281/zenodo.10966350 <https://doi.org/10.5281/zenodo.10966350>`_.
23
+
24
+ Charl A.P. Linssen, Pooja N. Babu, Jochen M. Eppler, Leander Ewert, Krzysztof Blaszczyk, Willem Wybo, Beck Strohmer, Bernhard Rumpe and Abigail Morrison (2023). **NESTML 7.0.0.** Zenodo. `doi:10.5281/zenodo.10125416 <https://doi.org/10.5281/zenodo.10125416>`_.
25
+
26
+ Charl A.P. Linssen, Pooja N. Babu, Levin Schmidt, Tom Tetzlaff, Maryada, Mohamed Ayssar Benelhedi, Jochen M. Eppler, Bernhard Rumpe and Abigail Morrison (2023). **NESTML 6.0.0.** Zenodo. `doi:10.5281/zenodo.8380365 <https://doi.org/10.5281/zenodo.8380365>`_.
27
+
28
+ Charl A.P. Linssen, Pooja N. Babu, Jingxuan He, Jochen Martin Eppler, Bernhard Rumpe and Abigail Morrison (2022). **NESTML 5.1.0.** Zenodo. `doi:10.5281/zenodo.7071624 <https://doi.org/10.5281/zenodo.7071624>`_.
29
+
30
+ Charl A.P. Linssen, Pooja N. Babu, Ayssar Benelhedi, Robin De Schepper, Tanguy Fardet, Jochen Martin Eppler, Bernhard Rumpe and Abigail Morrison (2022). **NESTML 5.0.0.** Zenodo. `doi:10.5281/zenodo.5784175 <https://doi.org/10.5281/zenodo.5784175>`_.
31
+
32
+ Pooja Nagendra Babu, Charl Linssen, Jochen Martin Eppler, Tobias Schulte to Brinke, Abolfazl Ziaeemehr, Tanguy Fardet, Younes Bouhadjar, Renato Duarte, Bernhard Rumpe and Abigail Morrison (2021). **NESTML 4.0.** Zenodo. `doi:10.5281/zenodo.4740083 <https://doi.org/10.5281/zenodo.4740083>`_.
33
+
34
+ Charl Linssen, Bernhard Rumpe, Sebastian Berns, Tanguy Fardet, Konstantin Perun, Tobias Schulte to Brinke, Dennis Terhorst, Jochen M. Eppler and Abigail Morrison (2020). **NESTML 3.1.** Zenodo. `doi:10.5281/zenodo.3697733 <http://doi.org/10.5281/zenodo.3697733>`_.
35
+
36
+ Konstantin Perun, Philip Traeder, Jochen Martin Eppler, Dimitri Plotnikov, Tammo Ippen, Tanguy Fardet, Guido Trensch, Sanin Aleksey, Inga Blundell and Jakob Jordan (2018) **NESTML 3.0.** Zenodo. `doi:10.5281/zenodo.1412608 <http://doi.org/10.5281/zenodo.1412608>`_.
37
+
38
+
39
+ Scientific publications
40
+ -----------------------
41
+
42
+ Charl Linssen, Pooja N. Babu, Jochen M. Eppler, Luca Koll, Bernhard Rumpe and Abigail Morrison (2025) **NESTML: a generic modeling language and code generation tool for the simulation of spiking neural networks with advanced plasticity rules.** Front. Neuroinform. `doi:10.3389/fninf.2025.1544143 <https://doi.org/10.3389/fninf.2025.1544143>`_.
43
+
44
+ Inga Blundell, Dimitri Plotnikov, Jochen Martin Eppler and Abigail Morrison (2018) **Automatically selecting a suitable integration scheme for systems of differential equations in neuron models.** Front. Neuroinform. `doi:10.3389/fninf.2018.00050 <https://doi.org/10.3389/fninf.2018.00050>`_.
45
+
46
+ Konstantin Perun, Bernhard Rumpe, Dimitri Plotnikov, Guido Trensch, Jochen Martin Eppler, Inga Blundell and Abigail Morrison (2018). **Reengineering NestML with Python and MontiCore** (Version 2.4). Zenodo. `doi:10.5281/zenodo.1319653 <http://doi.org/10.5281/zenodo.1319653>`_.
47
+
48
+ Dimitri Plotnikov, Bernhard Rumpe, Inga Blundell, Tammo Ippen, Jochen Martin Eppler and Abigail Morrison (2016). **NESTML: a modeling language for spiking neurons.** In Modellierung 2016, March 2-4 2016, Karlsruhe, Germany. 93–108. `doi:10.5281/zenodo.1412345 <http://doi.org/10.5281/zenodo.1412345>`_.
@@ -0,0 +1,79 @@
1
+ Extending NESTML
2
+ ################
3
+
4
+ The NESTML toolchain is lightweight, modular and extensible.
5
+
6
+
7
+ Internal workflow
8
+ -----------------
9
+
10
+ When NESTML is invoked, several steps are executed in sequence. First, the model(s) are parsed and validated. Then, depending on which target platform has been selected, transformations may occur, such as variable name rewriting in case of conflict with a keyword in the target language). The transformed models are then passed to the code generator, which combines them with a set of templates. Finally, an optional build stage compiles and builds the code, for example to yield a dynamically loadable library (``.so`` or ``.dll`` file).
11
+
12
+ .. figure:: https://raw.githubusercontent.com/nest/nestml/main/doc/fig/internal_workflow.png
13
+ :alt: NESTML model(s) → Parsing and validation → Transform → (+ Templates) → Generate code (and build) → Executable (binary) code
14
+
15
+ A more detailed description of the internal architecture of NESTML can be found in the following places:
16
+
17
+ * Tammo Ippen, "NESTML - Creating a Neuron Modeling Language and Generating Efficient Code for the NEST Simulator with MontiCore". Master's thesis, RWTH Aachen University (2013) :download:`PDF <extending/Tammo_Ippen_Master_Thesis.pdf>`
18
+ * Konstantin Perun, "Reengineering of NestML with Python". Master's thesis, RWTH Aachen University (2018) :download:`PDF <extending/Konstantin_Perun_Master_thesis.pdf>`
19
+ * Dimitri Plotnikov, "NESTML - die Domänenspezifische Sprache für den NEST-Simulator Neuronaler Netzwerke im Human Brain Project". Doctoral thesis, RWTH Aachen University (2017) :download:`PDF <extending/Dimitri_Plotnikov_Doctoral_Thesis.pdf>`
20
+
21
+ * A condensed online English version is available: :doc:`pynestml_toolchain/index`
22
+
23
+
24
+ API documentation
25
+ -----------------
26
+
27
+ API documentation is automatically generated from source code and can be browsed here: :mod:`pynestml` **module index**
28
+
29
+
30
+ Running NESTML with custom templates
31
+ ------------------------------------
32
+
33
+ NESTML generates model-specific code using a set of Jinja templates. The templates for each target platform are located in the `pynestml/codegeneration/resources_* <https://github.com/nest/nestml/tree/main/pynestml/codegeneration>`__ subdirectories. (For more information on code generation using templates, see :ref:`Section 3.1: AST Transformations and Code Generation`.) For example, for NEST, NESTML by default uses the templates in the directory `pynestml/codegeneration/resources_nest/point_neuron <https://github.com/nest/nestml/tree/main/pynestml/codegeneration/resources_nest/point_neuron>`__. These defaults are specified in the code generator within its default values dictionary (``_default_options``, see for instance https://github.com/nest/nestml/blob/main/pynestml/codegeneration/nest_code_generator.py).
34
+
35
+ The default directory can be changed by specifying code generator options that override the default values. This can be done either by passing these options via the ``codegen_opts`` parameter of the NESTML Python API call to ``generate_target()``, or on the command line, through the ``--codegen_opts`` parameter to a JSON file. For example:
36
+
37
+ .. code-block:: bash
38
+
39
+ nestml --input_path models/neurons/iaf_psc_exp_neuron.nestml --codegen_opts /home/nest/work/codegen_options.json
40
+
41
+ An example ``codegen_options.json`` file for NEST could look as follows:
42
+
43
+ .. code-block:: json
44
+
45
+ {
46
+ "templates":
47
+ {
48
+ "path": "/home/nest/work/custom_templates",
49
+ "model_templates": {
50
+ "neuron": ["@NEURON_NAME@.cpp.jinja2", "@NEURON_NAME@.h.jinja2"],
51
+ "synapse": ["@SYNAPSE_NAME@.h.jinja2"]
52
+ },
53
+ "module_templates": ["setup/CMakeLists.txt.jinja2",
54
+ "setup/@MODULE_NAME@.h.jinja2","setup/@MODULE_NAME@.cpp.jinja2"]
55
+ }
56
+ }
57
+
58
+ The ``templates`` option in the JSON file contains information on the custom Jinja templates to be used for code generation.
59
+
60
+ * The ``path`` option indicates the root directory of the custom Jinja templates.
61
+ * The ``model_templates`` option indicates the names of the Jinja templates for neuron and synapse model(s) or relative path to a directory containing the neuron and synapse model(s) templates.
62
+ * The ``module_templates`` option indicates the names or relative path to a directory containing the Jinja templates for the module.
63
+
64
+ The escape sequence ``@NEURON_NAME@`` (resp. ``@SYNAPSE_NAME@``, ``@MODULE_NAME@``) will be replaced with the name of the neuron model (resp. synapse model or name of the module) during code generation.
65
+
66
+ If a directory is given, the directory is recursively searched for templates (files ending in the ``.jinja2`` extension), for example:
67
+
68
+ .. code-block:: python
69
+
70
+ codegen_opts = {"templates": {"module_templates": ["setup"]}}
71
+
72
+
73
+ Adding a new target platform
74
+ ----------------------------
75
+
76
+ * Add a new set of templates in a new directory under `pynestml/codegeneration/resources_* <https://github.com/nest/nestml/tree/main/pynestml/codegeneration>`__.
77
+ * Implement a new code generator, for example based on the existing `nest_code_generator.py <https://github.com/nest/nestml/tree/main/pynestml/codegeneration/nest_code_generator.py>`_.
78
+ * Optionally, implement a new builder, for example based on the existing `nest_builder.py <https://github.com/nest/nestml/tree/main/pynestml/codegeneration/nest_builder.py>`_.
79
+ * Add the new target platform to the frontend in `pynestml_frontend.py <https://github.com/nest/nestml/blob/main/pynestml/frontend/pynestml_frontend.py>`__.
@@ -0,0 +1,342 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://creativecommons.org/ns#"
6
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
+ xmlns:svg="http://www.w3.org/2000/svg"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ width="194.21313mm"
12
+ height="112.32471mm"
13
+ viewBox="0 0 194.21313 112.32473"
14
+ version="1.1"
15
+ id="svg8"
16
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
17
+ sodipodi:docname="code_gen_opts.svg">
18
+ <defs
19
+ id="defs2">
20
+ <marker
21
+ inkscape:stockid="Arrow1Lend"
22
+ orient="auto"
23
+ refY="0"
24
+ refX="0"
25
+ id="Arrow1Lend"
26
+ style="overflow:visible"
27
+ inkscape:isstock="true">
28
+ <path
29
+ id="path4638"
30
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
31
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
32
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
33
+ inkscape:connector-curvature="0" />
34
+ </marker>
35
+ <linearGradient
36
+ id="linearGradient4513"
37
+ osb:paint="solid">
38
+ <stop
39
+ style="stop-color:#b0282a;stop-opacity:1;"
40
+ offset="0"
41
+ id="stop4511" />
42
+ </linearGradient>
43
+ <linearGradient
44
+ id="linearGradient4491"
45
+ osb:paint="solid">
46
+ <stop
47
+ style="stop-color:#000000;stop-opacity:1;"
48
+ offset="0"
49
+ id="stop4489" />
50
+ </linearGradient>
51
+ <marker
52
+ inkscape:stockid="Arrow1Lend"
53
+ orient="auto"
54
+ refY="0"
55
+ refX="0"
56
+ id="Arrow1Lend-6"
57
+ style="overflow:visible"
58
+ inkscape:isstock="true">
59
+ <path
60
+ inkscape:connector-curvature="0"
61
+ id="path4638-0"
62
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
63
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
64
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
65
+ </marker>
66
+ <marker
67
+ inkscape:stockid="Arrow1Lend"
68
+ orient="auto"
69
+ refY="0"
70
+ refX="0"
71
+ id="Arrow1Lend-2"
72
+ style="overflow:visible"
73
+ inkscape:isstock="true">
74
+ <path
75
+ inkscape:connector-curvature="0"
76
+ id="path4638-6"
77
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
78
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
79
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
80
+ </marker>
81
+ <marker
82
+ inkscape:stockid="Arrow1Lend"
83
+ orient="auto"
84
+ refY="0"
85
+ refX="0"
86
+ id="Arrow1Lend-8"
87
+ style="overflow:visible"
88
+ inkscape:isstock="true">
89
+ <path
90
+ inkscape:connector-curvature="0"
91
+ id="path4638-7"
92
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
93
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
94
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
95
+ </marker>
96
+ <marker
97
+ inkscape:stockid="Arrow1Lend"
98
+ orient="auto"
99
+ refY="0"
100
+ refX="0"
101
+ id="Arrow1Lend-2-9"
102
+ style="overflow:visible"
103
+ inkscape:isstock="true">
104
+ <path
105
+ inkscape:connector-curvature="0"
106
+ id="path4638-6-2"
107
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
108
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
109
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
110
+ </marker>
111
+ <marker
112
+ inkscape:stockid="Arrow1Lend"
113
+ orient="auto"
114
+ refY="0"
115
+ refX="0"
116
+ id="Arrow1Lend-2-9-3"
117
+ style="overflow:visible"
118
+ inkscape:isstock="true">
119
+ <path
120
+ inkscape:connector-curvature="0"
121
+ id="path4638-6-2-7"
122
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
123
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
124
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
125
+ </marker>
126
+ <marker
127
+ inkscape:stockid="Arrow1Lend"
128
+ orient="auto"
129
+ refY="0"
130
+ refX="0"
131
+ id="Arrow1Lend-8-5"
132
+ style="overflow:visible"
133
+ inkscape:isstock="true">
134
+ <path
135
+ inkscape:connector-curvature="0"
136
+ id="path4638-7-9"
137
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
138
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
139
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
140
+ </marker>
141
+ <marker
142
+ inkscape:stockid="Arrow1Lend"
143
+ orient="auto"
144
+ refY="0"
145
+ refX="0"
146
+ id="Arrow1Lend-2-2"
147
+ style="overflow:visible"
148
+ inkscape:isstock="true">
149
+ <path
150
+ inkscape:connector-curvature="0"
151
+ id="path4638-6-28"
152
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
153
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
154
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
155
+ </marker>
156
+ <marker
157
+ inkscape:stockid="Arrow1Lend"
158
+ orient="auto"
159
+ refY="0"
160
+ refX="0"
161
+ id="Arrow1Lend-9"
162
+ style="overflow:visible"
163
+ inkscape:isstock="true">
164
+ <path
165
+ inkscape:connector-curvature="0"
166
+ id="path4638-73"
167
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
168
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
169
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
170
+ </marker>
171
+ </defs>
172
+ <sodipodi:namedview
173
+ id="base"
174
+ pagecolor="#ffffff"
175
+ bordercolor="#666666"
176
+ borderopacity="1.0"
177
+ inkscape:pageopacity="0.0"
178
+ inkscape:pageshadow="2"
179
+ inkscape:zoom="1"
180
+ inkscape:cx="596.69845"
181
+ inkscape:cy="122.41507"
182
+ inkscape:document-units="mm"
183
+ inkscape:current-layer="layer1"
184
+ showgrid="false"
185
+ inkscape:window-width="2560"
186
+ inkscape:window-height="1411"
187
+ inkscape:window-x="0"
188
+ inkscape:window-y="0"
189
+ inkscape:window-maximized="1"
190
+ fit-margin-top="0"
191
+ fit-margin-left="0"
192
+ fit-margin-right="0"
193
+ fit-margin-bottom="0"
194
+ inkscape:document-rotation="0">
195
+ <inkscape:grid
196
+ type="xygrid"
197
+ id="grid4485"
198
+ originx="208.78653"
199
+ originy="-137.17769" />
200
+ </sodipodi:namedview>
201
+ <metadata
202
+ id="metadata5">
203
+ <rdf:RDF>
204
+ <cc:Work
205
+ rdf:about="">
206
+ <dc:format>image/svg+xml</dc:format>
207
+ <dc:type
208
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
209
+ <dc:title></dc:title>
210
+ </cc:Work>
211
+ </rdf:RDF>
212
+ </metadata>
213
+ <g
214
+ inkscape:label="Layer 1"
215
+ inkscape:groupmode="layer"
216
+ id="layer1"
217
+ transform="translate(208.78658,-31.024191)">
218
+ <rect
219
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
220
+ id="rect4487-6-3"
221
+ width="83.532738"
222
+ height="30.143602"
223
+ x="-205.98785"
224
+ y="31.524191"
225
+ ry="9.2542782" />
226
+ <text
227
+ xml:space="preserve"
228
+ style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
229
+ x="72.760414"
230
+ y="43"
231
+ id="text4523" />
232
+ <rect
233
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
234
+ id="rect4487-6"
235
+ width="83.532738"
236
+ height="30.143602"
237
+ x="-208.28658"
238
+ y="34.388611"
239
+ ry="9.2542782" />
240
+ <text
241
+ xml:space="preserve"
242
+ style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
243
+ x="-167.21318"
244
+ y="45.916885"
245
+ id="text4519-1"><tspan
246
+ sodipodi:role="line"
247
+ id="tspan4517-2"
248
+ x="-167.21318"
249
+ y="45.916885"
250
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583">NESTML</tspan><tspan
251
+ sodipodi:role="line"
252
+ x="-167.21318"
253
+ y="59.146011"
254
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
255
+ id="tspan4527-9">models</tspan></text>
256
+ <rect
257
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
258
+ id="rect4487-3-3"
259
+ width="92.026764"
260
+ height="30.143604"
261
+ x="-107.1002"
262
+ y="33.638588"
263
+ ry="9.2542782" />
264
+ <text
265
+ xml:space="preserve"
266
+ style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
267
+ x="-61.264301"
268
+ y="45.166862"
269
+ id="text4519-6-1"><tspan
270
+ sodipodi:role="line"
271
+ x="-61.264301"
272
+ y="45.166862"
273
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
274
+ id="tspan4527-5-7">Code generator</tspan><tspan
275
+ sodipodi:role="line"
276
+ x="-61.264301"
277
+ y="58.395988"
278
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
279
+ id="tspan967">options</tspan></text>
280
+ <rect
281
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
282
+ id="rect4572-8"
283
+ width="127.66687"
284
+ height="14.364264"
285
+ x="-176.95508"
286
+ y="80.782738"
287
+ ry="0" />
288
+ <text
289
+ xml:space="preserve"
290
+ style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
291
+ x="-114.00658"
292
+ y="91.116844"
293
+ id="text4519-3-4"><tspan
294
+ sodipodi:role="line"
295
+ x="-114.00658"
296
+ y="91.116844"
297
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
298
+ id="tspan4527-6-5">Code generation</tspan></text>
299
+ <rect
300
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
301
+ id="rect4487-2-0"
302
+ width="95.472549"
303
+ height="30.1436"
304
+ x="-162.24916"
305
+ y="112.70531"
306
+ ry="9.2542782" />
307
+ <text
308
+ xml:space="preserve"
309
+ style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
310
+ x="-114.29671"
311
+ y="124.23361"
312
+ id="text4519-9-3"><tspan
313
+ sodipodi:role="line"
314
+ x="-114.29671"
315
+ y="124.23361"
316
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
317
+ id="tspan4527-2-1">NEST extension</tspan><tspan
318
+ sodipodi:role="line"
319
+ x="-114.29671"
320
+ y="137.46274"
321
+ style="text-align:center;text-anchor:middle;stroke-width:0.264583"
322
+ id="tspan1032">module</tspan></text>
323
+ <path
324
+ style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-9)"
325
+ d="m -166.40691,64.399918 -0.0284,14.509565"
326
+ id="path4633-06"
327
+ inkscape:connector-curvature="0"
328
+ sodipodi:nodetypes="cc" />
329
+ <path
330
+ style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-2-2)"
331
+ d="m -60.04396,64.39992 -0.0284,14.509565"
332
+ id="path4633-1-1"
333
+ inkscape:connector-curvature="0"
334
+ sodipodi:nodetypes="cc" />
335
+ <path
336
+ style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-8-5)"
337
+ d="m -113.49012,95.620767 -0.0284,14.509623"
338
+ id="path4633-0-5"
339
+ inkscape:connector-curvature="0"
340
+ sodipodi:nodetypes="cc" />
341
+ </g>
342
+ </svg>