scikit-complexity 0.2.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 (1748) hide show
  1. scikit_complexity-0.2.0.dist-info/METADATA +317 -0
  2. scikit_complexity-0.2.0.dist-info/RECORD +1748 -0
  3. scikit_complexity-0.2.0.dist-info/WHEEL +4 -0
  4. scikit_complexity-0.2.0.dist-info/entry_points.txt +4 -0
  5. scikit_complexity-0.2.0.dist-info/licenses/LICENSE +21 -0
  6. skcomplex/__init__.py +1 -0
  7. skcomplex/analysis/__init__.py +101 -0
  8. skcomplex/analysis/_alignment.py +263 -0
  9. skcomplex/analysis/_automata.py +658 -0
  10. skcomplex/analysis/_base.py +841 -0
  11. skcomplex/analysis/_clusters.py +298 -0
  12. skcomplex/analysis/_coarse_grain.py +183 -0
  13. skcomplex/analysis/_collapse.py +318 -0
  14. skcomplex/analysis/_complexity.py +129 -0
  15. skcomplex/analysis/_computational_mechanics.py +220 -0
  16. skcomplex/analysis/_correlation.py +364 -0
  17. skcomplex/analysis/_defects.py +111 -0
  18. skcomplex/analysis/_discovery.py +101 -0
  19. skcomplex/analysis/_displacement.py +135 -0
  20. skcomplex/analysis/_distribution.py +327 -0
  21. skcomplex/analysis/_domains.py +220 -0
  22. skcomplex/analysis/_embedding.py +235 -0
  23. skcomplex/analysis/_emergence.py +503 -0
  24. skcomplex/analysis/_entropy.py +425 -0
  25. skcomplex/analysis/_ergodicity.py +228 -0
  26. skcomplex/analysis/_events.py +301 -0
  27. skcomplex/analysis/_fit.py +368 -0
  28. skcomplex/analysis/_groups.py +205 -0
  29. skcomplex/analysis/_information.py +488 -0
  30. skcomplex/analysis/_invariants.py +409 -0
  31. skcomplex/analysis/_irreversibility.py +421 -0
  32. skcomplex/analysis/_kramers_moyal.py +104 -0
  33. skcomplex/analysis/_large_deviations.py +378 -0
  34. skcomplex/analysis/_linearization.py +231 -0
  35. skcomplex/analysis/_local_information.py +166 -0
  36. skcomplex/analysis/_loops.py +394 -0
  37. skcomplex/analysis/_lyapunov.py +342 -0
  38. skcomplex/analysis/_markov.py +303 -0
  39. skcomplex/analysis/_mode_decomposition.py +209 -0
  40. skcomplex/analysis/_motifs.py +239 -0
  41. skcomplex/analysis/_neighbors.py +303 -0
  42. skcomplex/analysis/_networks.py +286 -0
  43. skcomplex/analysis/_operator.py +312 -0
  44. skcomplex/analysis/_partial_information.py +118 -0
  45. skcomplex/analysis/_passage.py +244 -0
  46. skcomplex/analysis/_recurrence.py +202 -0
  47. skcomplex/analysis/_reservoirs.py +387 -0
  48. skcomplex/analysis/_rolling.py +168 -0
  49. skcomplex/analysis/_scaling.py +370 -0
  50. skcomplex/analysis/_sections.py +225 -0
  51. skcomplex/analysis/_signatures.py +250 -0
  52. skcomplex/analysis/_sparse_identification.py +398 -0
  53. skcomplex/analysis/_spectrum.py +164 -0
  54. skcomplex/analysis/_stability.py +547 -0
  55. skcomplex/analysis/_surrogates.py +127 -0
  56. skcomplex/analysis/_symbolic.py +639 -0
  57. skcomplex/analysis/types.py +43 -0
  58. skcomplex/base.py +159 -0
  59. skcomplex/core/__init__.py +1 -0
  60. skcomplex/core/base.py +150 -0
  61. skcomplex/core/elements/__init__.py +21 -0
  62. skcomplex/core/elements/_base.py +84 -0
  63. skcomplex/core/elements/_compartment.py +52 -0
  64. skcomplex/core/elements/_density.py +52 -0
  65. skcomplex/core/elements/_element.py +80 -0
  66. skcomplex/core/elements/_field.py +192 -0
  67. skcomplex/core/elements/_group.py +241 -0
  68. skcomplex/core/elements/_lattice.py +115 -0
  69. skcomplex/core/elements/_point.py +66 -0
  70. skcomplex/core/interactions/__init__.py +89 -0
  71. skcomplex/core/interactions/_advection.py +134 -0
  72. skcomplex/core/interactions/_base.py +361 -0
  73. skcomplex/core/interactions/_cascade.py +195 -0
  74. skcomplex/core/interactions/_choice.py +320 -0
  75. skcomplex/core/interactions/_conservation.py +164 -0
  76. skcomplex/core/interactions/_coupling.py +741 -0
  77. skcomplex/core/interactions/_crossing.py +136 -0
  78. skcomplex/core/interactions/_diffusion.py +99 -0
  79. skcomplex/core/interactions/_encounter.py +201 -0
  80. skcomplex/core/interactions/_euler_lagrange.py +183 -0
  81. skcomplex/core/interactions/_evolution.py +520 -0
  82. skcomplex/core/interactions/_feedback.py +79 -0
  83. skcomplex/core/interactions/_gradient.py +293 -0
  84. skcomplex/core/interactions/_grouping.py +399 -0
  85. skcomplex/core/interactions/_hamiltonian.py +191 -0
  86. skcomplex/core/interactions/_hyperedge.py +96 -0
  87. skcomplex/core/interactions/_imitation.py +357 -0
  88. skcomplex/core/interactions/_impulse.py +133 -0
  89. skcomplex/core/interactions/_interaction.py +58 -0
  90. skcomplex/core/interactions/_jump.py +201 -0
  91. skcomplex/core/interactions/_life_cycle.py +424 -0
  92. skcomplex/core/interactions/_local_rule.py +134 -0
  93. skcomplex/core/interactions/_map.py +239 -0
  94. skcomplex/core/interactions/_matching.py +701 -0
  95. skcomplex/core/interactions/_movement.py +377 -0
  96. skcomplex/core/interactions/_neighbor.py +88 -0
  97. skcomplex/core/interactions/_optimization.py +206 -0
  98. skcomplex/core/interactions/_pair.py +82 -0
  99. skcomplex/core/interactions/_pair_coupling.py +169 -0
  100. skcomplex/core/interactions/_rate.py +240 -0
  101. skcomplex/core/interactions/_reaction.py +466 -0
  102. skcomplex/core/interactions/_reinforcement.py +226 -0
  103. skcomplex/core/interactions/_relaxation.py +103 -0
  104. skcomplex/core/interactions/_sampling.py +177 -0
  105. skcomplex/core/interactions/_satisfiability.py +145 -0
  106. skcomplex/core/interactions/_sign_adjustment.py +222 -0
  107. skcomplex/core/interactions/_topology.py +215 -0
  108. skcomplex/core/interactions/_training.py +184 -0
  109. skcomplex/core/interactions/_transfer.py +669 -0
  110. skcomplex/core/interactions/_transition.py +427 -0
  111. skcomplex/core/laws/__init__.py +60 -0
  112. skcomplex/core/laws/_base.py +194 -0
  113. skcomplex/core/laws/_bilinear.py +91 -0
  114. skcomplex/core/laws/_boundary.py +59 -0
  115. skcomplex/core/laws/_cascade.py +79 -0
  116. skcomplex/core/laws/_crossing.py +87 -0
  117. skcomplex/core/laws/_dissipator.py +79 -0
  118. skcomplex/core/laws/_drive.py +56 -0
  119. skcomplex/core/laws/_emission.py +81 -0
  120. skcomplex/core/laws/_encounter.py +96 -0
  121. skcomplex/core/laws/_equation.py +105 -0
  122. skcomplex/core/laws/_extremal.py +94 -0
  123. skcomplex/core/laws/_flux.py +108 -0
  124. skcomplex/core/laws/_fractional_noise.py +65 -0
  125. skcomplex/core/laws/_generator.py +66 -0
  126. skcomplex/core/laws/_gradient_step.py +89 -0
  127. skcomplex/core/laws/_jump.py +137 -0
  128. skcomplex/core/laws/_local_rule.py +92 -0
  129. skcomplex/core/laws/_match.py +321 -0
  130. skcomplex/core/laws/_noise.py +125 -0
  131. skcomplex/core/laws/_rate.py +82 -0
  132. skcomplex/core/laws/_rule.py +82 -0
  133. skcomplex/core/laws/_sample.py +65 -0
  134. skcomplex/core/laws/_transfer.py +165 -0
  135. skcomplex/core/laws/_transition.py +77 -0
  136. skcomplex/core/laws/_update.py +121 -0
  137. skcomplex/core/laws/utils/__init__.py +142 -0
  138. skcomplex/core/laws/utils/_agents.py +127 -0
  139. skcomplex/core/laws/utils/_components.py +63 -0
  140. skcomplex/core/laws/utils/_conditions.py +198 -0
  141. skcomplex/core/laws/utils/_contractions.py +74 -0
  142. skcomplex/core/laws/utils/_delays.py +170 -0
  143. skcomplex/core/laws/utils/_history.py +167 -0
  144. skcomplex/core/laws/utils/_local_operators.py +68 -0
  145. skcomplex/core/laws/utils/_lookups.py +40 -0
  146. skcomplex/core/laws/utils/_moments.py +122 -0
  147. skcomplex/core/laws/utils/_operators.py +237 -0
  148. skcomplex/core/laws/utils/_phase.py +126 -0
  149. skcomplex/core/laws/utils/_pointwise.py +160 -0
  150. skcomplex/core/laws/utils/_reductions.py +942 -0
  151. skcomplex/core/laws/utils/_signals.py +214 -0
  152. skcomplex/core/laws/utils/_tables.py +4 -0
  153. skcomplex/core/laws/utils/_tensors.py +235 -0
  154. skcomplex/core/spaces/__init__.py +52 -0
  155. skcomplex/core/spaces/_adjacency.py +34 -0
  156. skcomplex/core/spaces/_base.py +218 -0
  157. skcomplex/core/spaces/_box.py +41 -0
  158. skcomplex/core/spaces/_cayley.py +352 -0
  159. skcomplex/core/spaces/_cone.py +65 -0
  160. skcomplex/core/spaces/_continuous.py +93 -0
  161. skcomplex/core/spaces/_continuous_time.py +27 -0
  162. skcomplex/core/spaces/_discrete_time.py +53 -0
  163. skcomplex/core/spaces/_generator.py +51 -0
  164. skcomplex/core/spaces/_lattice.py +194 -0
  165. skcomplex/core/spaces/_lattice_neighborhood.py +50 -0
  166. skcomplex/core/spaces/_memory.py +45 -0
  167. skcomplex/core/spaces/_mesh.py +71 -0
  168. skcomplex/core/spaces/_moore.py +49 -0
  169. skcomplex/core/spaces/_nearest.py +41 -0
  170. skcomplex/core/spaces/_network.py +256 -0
  171. skcomplex/core/spaces/_phase.py +136 -0
  172. skcomplex/core/spaces/_radius.py +40 -0
  173. skcomplex/core/spaces/_static_time.py +34 -0
  174. skcomplex/core/spaces/_triangular.py +37 -0
  175. skcomplex/core/spaces/_von_neumann.py +51 -0
  176. skcomplex/core/specs/__init__.py +25 -0
  177. skcomplex/core/specs/_census_record_spec.py +72 -0
  178. skcomplex/core/specs/_census_spec.py +40 -0
  179. skcomplex/core/specs/_compiled_agents_spec.py +62 -0
  180. skcomplex/core/specs/_compiled_element_spec.py +59 -0
  181. skcomplex/core/specs/_compiled_interaction_spec.py +33 -0
  182. skcomplex/core/specs/_lattice_context_spec.py +40 -0
  183. skcomplex/core/specs/_lattice_state_spec.py +49 -0
  184. skcomplex/core/specs/_node_spec.py +64 -0
  185. skcomplex/core/specs/_operator_view_spec.py +135 -0
  186. skcomplex/core/specs/_scenario_spec.py +45 -0
  187. skcomplex/core/specs/_subsystem_spec.py +24 -0
  188. skcomplex/core/system.py +140 -0
  189. skcomplex/core/types.py +249 -0
  190. skcomplex/engine/__init__.py +5 -0
  191. skcomplex/engine/_utils.py +278 -0
  192. skcomplex/engine/backends/__init__.py +13 -0
  193. skcomplex/engine/backends/_base.py +329 -0
  194. skcomplex/engine/backends/_jax.py +285 -0
  195. skcomplex/engine/backends/_numba.py +601 -0
  196. skcomplex/engine/backends/_numba_components.py +67 -0
  197. skcomplex/engine/backends/_numba_loops.py +163 -0
  198. skcomplex/engine/backends/_numba_neighbours.py +435 -0
  199. skcomplex/engine/backends/_numba_printer.py +1023 -0
  200. skcomplex/engine/backends/_numba_stencils.py +66 -0
  201. skcomplex/engine/backends/_numpy.py +215 -0
  202. skcomplex/engine/compile/__init__.py +27 -0
  203. skcomplex/engine/compile/_base.py +582 -0
  204. skcomplex/engine/compile/_bound_renewal_spec.py +47 -0
  205. skcomplex/engine/compile/_compilation.py +351 -0
  206. skcomplex/engine/compile/_compile.py +100 -0
  207. skcomplex/engine/compile/_complex.py +216 -0
  208. skcomplex/engine/compile/_draw_lowering.py +373 -0
  209. skcomplex/engine/compile/_field_lowering.py +1668 -0
  210. skcomplex/engine/compile/_flows.py +691 -0
  211. skcomplex/engine/compile/_forms.py +48 -0
  212. skcomplex/engine/compile/_laws.py +42 -0
  213. skcomplex/engine/compile/_learning_compiler.py +481 -0
  214. skcomplex/engine/compile/_member_reductions.py +206 -0
  215. skcomplex/engine/compile/_members.py +244 -0
  216. skcomplex/engine/compile/_observables.py +940 -0
  217. skcomplex/engine/compile/_observer.py +185 -0
  218. skcomplex/engine/compile/_pass_compiler.py +1534 -0
  219. skcomplex/engine/compile/_probe.py +78 -0
  220. skcomplex/engine/compile/_renewal_law.py +70 -0
  221. skcomplex/engine/compile/passes/__init__.py +34 -0
  222. skcomplex/engine/compile/passes/_agents.py +111 -0
  223. skcomplex/engine/compile/passes/_agents_problem.py +143 -0
  224. skcomplex/engine/compile/passes/_census.py +808 -0
  225. skcomplex/engine/compile/passes/_check_fractional_noise.py +107 -0
  226. skcomplex/engine/compile/passes/_collect.py +31 -0
  227. skcomplex/engine/compile/passes/_compile_encounters.py +301 -0
  228. skcomplex/engine/compile/passes/_complex.py +198 -0
  229. skcomplex/engine/compile/passes/_conserved_noise.py +224 -0
  230. skcomplex/engine/compile/passes/_core.py +116 -0
  231. skcomplex/engine/compile/passes/_declare_renewals.py +84 -0
  232. skcomplex/engine/compile/passes/_draws.py +29 -0
  233. skcomplex/engine/compile/passes/_encounter_functions.py +60 -0
  234. skcomplex/engine/compile/passes/_encounter_jacobian.py +25 -0
  235. skcomplex/engine/compile/passes/_encounter_problem.py +32 -0
  236. skcomplex/engine/compile/passes/_events.py +204 -0
  237. skcomplex/engine/compile/passes/_expand_flows.py +32 -0
  238. skcomplex/engine/compile/passes/_field_functions.py +647 -0
  239. skcomplex/engine/compile/passes/_field_jacobian.py +38 -0
  240. skcomplex/engine/compile/passes/_field_problem.py +106 -0
  241. skcomplex/engine/compile/passes/_flatten.py +339 -0
  242. skcomplex/engine/compile/passes/_flows_problem.py +29 -0
  243. skcomplex/engine/compile/passes/_form.py +82 -0
  244. skcomplex/engine/compile/passes/_fractional_form.py +172 -0
  245. skcomplex/engine/compile/passes/_fractional_problem.py +91 -0
  246. skcomplex/engine/compile/passes/_functions.py +485 -0
  247. skcomplex/engine/compile/passes/_hilbert_space_error.py +10 -0
  248. skcomplex/engine/compile/passes/_hyperedges.py +598 -0
  249. skcomplex/engine/compile/passes/_jacobian.py +38 -0
  250. skcomplex/engine/compile/passes/_kernels.py +407 -0
  251. skcomplex/engine/compile/passes/_lattices.py +818 -0
  252. skcomplex/engine/compile/passes/_layout.py +667 -0
  253. skcomplex/engine/compile/passes/_lower_fields.py +225 -0
  254. skcomplex/engine/compile/passes/_lower_flows.py +28 -0
  255. skcomplex/engine/compile/passes/_markov.py +329 -0
  256. skcomplex/engine/compile/passes/_mask_requests.py +121 -0
  257. skcomplex/engine/compile/passes/_members.py +30 -0
  258. skcomplex/engine/compile/passes/_noise.py +196 -0
  259. skcomplex/engine/compile/passes/_operator_compiler.py +843 -0
  260. skcomplex/engine/compile/passes/_orders.py +409 -0
  261. skcomplex/engine/compile/passes/_owners.py +90 -0
  262. skcomplex/engine/compile/passes/_particles.py +69 -0
  263. skcomplex/engine/compile/passes/_plan.py +130 -0
  264. skcomplex/engine/compile/passes/_problem.py +802 -0
  265. skcomplex/engine/compile/passes/_reduction_lowering.py +1193 -0
  266. skcomplex/engine/compile/passes/_reductions.py +84 -0
  267. skcomplex/engine/compile/passes/_renewal_problem.py +357 -0
  268. skcomplex/engine/compile/passes/_request_jumps.py +51 -0
  269. skcomplex/engine/compile/passes/_residences.py +140 -0
  270. skcomplex/engine/compile/passes/_rows.py +162 -0
  271. skcomplex/engine/compile/passes/_set_renewals_apart.py +29 -0
  272. skcomplex/engine/compile/passes/_set_rules_apart.py +28 -0
  273. skcomplex/engine/compile/passes/_specs.py +1317 -0
  274. skcomplex/engine/compile/passes/_split_requests.py +44 -0
  275. skcomplex/engine/compile/passes/_topology_functions.py +265 -0
  276. skcomplex/engine/compile/passes/_topology_problem.py +27 -0
  277. skcomplex/engine/compile/passes/_towards.py +66 -0
  278. skcomplex/engine/compile/passes/_unpack_matches.py +29 -0
  279. skcomplex/engine/compile/passes/_unpack_renewals.py +41 -0
  280. skcomplex/engine/problems/__init__.py +61 -0
  281. skcomplex/engine/problems/_base.py +150 -0
  282. skcomplex/engine/problems/_base_problem_spec.py +153 -0
  283. skcomplex/engine/problems/_block_spec.py +48 -0
  284. skcomplex/engine/problems/_born_spec.py +24 -0
  285. skcomplex/engine/problems/_cascade_kernel.py +134 -0
  286. skcomplex/engine/problems/_collision_kernel.py +147 -0
  287. skcomplex/engine/problems/_compiled_delay_spec.py +21 -0
  288. skcomplex/engine/problems/_compiled_request_spec.py +46 -0
  289. skcomplex/engine/problems/_control_problem_spec.py +90 -0
  290. skcomplex/engine/problems/_declarations_spec.py +126 -0
  291. skcomplex/engine/problems/_delayed_state_spec.py +50 -0
  292. skcomplex/engine/problems/_diffusive_limit_spec.py +50 -0
  293. skcomplex/engine/problems/_draw_kernel.py +128 -0
  294. skcomplex/engine/problems/_drive_kernel.py +65 -0
  295. skcomplex/engine/problems/_dynamics_spec.py +28 -0
  296. skcomplex/engine/problems/_edge_row_search.py +78 -0
  297. skcomplex/engine/problems/_edge_search.py +64 -0
  298. skcomplex/engine/problems/_encounter_kernel.py +200 -0
  299. skcomplex/engine/problems/_event_kernel.py +70 -0
  300. skcomplex/engine/problems/_expression_printer.py +410 -0
  301. skcomplex/engine/problems/_extremal_kernel.py +125 -0
  302. skcomplex/engine/problems/_field_operator_kernel.py +105 -0
  303. skcomplex/engine/problems/_finite_volume_kernel.py +423 -0
  304. skcomplex/engine/problems/_flow_term_spec.py +45 -0
  305. skcomplex/engine/problems/_frame_spec.py +105 -0
  306. skcomplex/engine/problems/_jacobian_kernel.py +575 -0
  307. skcomplex/engine/problems/_kernel_spec.py +130 -0
  308. skcomplex/engine/problems/_kinetic_problem_spec.py +23 -0
  309. skcomplex/engine/problems/_law_kernel.py +604 -0
  310. skcomplex/engine/problems/_learning_problem_spec.py +67 -0
  311. skcomplex/engine/problems/_linear_term_spec.py +50 -0
  312. skcomplex/engine/problems/_loop_term_spec.py +44 -0
  313. skcomplex/engine/problems/_lowered_kernels_spec.py +59 -0
  314. skcomplex/engine/problems/_markov_kernel.py +68 -0
  315. skcomplex/engine/problems/_metric_search.py +155 -0
  316. skcomplex/engine/problems/_monte_carlo_kernel.py +213 -0
  317. skcomplex/engine/problems/_neighborhood_kernel.py +594 -0
  318. skcomplex/engine/problems/_noise_term_spec.py +26 -0
  319. skcomplex/engine/problems/_observed_spec.py +22 -0
  320. skcomplex/engine/problems/_operator_kernel.py +102 -0
  321. skcomplex/engine/problems/_operator_lowering.py +323 -0
  322. skcomplex/engine/problems/_operator_problem_spec.py +138 -0
  323. skcomplex/engine/problems/_output_spec.py +78 -0
  324. skcomplex/engine/problems/_pair_search.py +86 -0
  325. skcomplex/engine/problems/_partials_spec.py +27 -0
  326. skcomplex/engine/problems/_partition_spec.py +39 -0
  327. skcomplex/engine/problems/_printed_spec.py +24 -0
  328. skcomplex/engine/problems/_problem_functions_spec.py +102 -0
  329. skcomplex/engine/problems/_problem_spec.py +365 -0
  330. skcomplex/engine/problems/_random_stream.py +49 -0
  331. skcomplex/engine/problems/_record_spec.py +22 -0
  332. skcomplex/engine/problems/_recorded_spec.py +21 -0
  333. skcomplex/engine/problems/_reduction_kernel.py +254 -0
  334. skcomplex/engine/problems/_reduction_schedule_spec.py +97 -0
  335. skcomplex/engine/problems/_reference_spec.py +114 -0
  336. skcomplex/engine/problems/_relation_spec.py +29 -0
  337. skcomplex/engine/problems/_renewal_kernel.py +250 -0
  338. skcomplex/engine/problems/_request_spec.py +27 -0
  339. skcomplex/engine/problems/_rule_kernel.py +227 -0
  340. skcomplex/engine/problems/_set_symbol_spec.py +28 -0
  341. skcomplex/engine/problems/_source_loader.py +113 -0
  342. skcomplex/engine/problems/_static_search.py +42 -0
  343. skcomplex/engine/problems/_steps.py +39 -0
  344. skcomplex/engine/problems/_sweep_spec.py +26 -0
  345. skcomplex/engine/problems/_symmetry_spec.py +29 -0
  346. skcomplex/engine/problems/_too_dense.py +8 -0
  347. skcomplex/engine/problems/_topology_kernel.py +589 -0
  348. skcomplex/engine/problems/_transfer_network.py +4 -0
  349. skcomplex/engine/problems/_transfer_network_spec.py +50 -0
  350. skcomplex/engine/problems/_transfer_state_spec.py +68 -0
  351. skcomplex/engine/runtime/__init__.py +22 -0
  352. skcomplex/engine/runtime/_as_fast_as_possible.py +17 -0
  353. skcomplex/engine/runtime/_base.py +137 -0
  354. skcomplex/engine/runtime/_conservation.py +125 -0
  355. skcomplex/engine/runtime/_invariants.py +100 -0
  356. skcomplex/engine/runtime/_real_time.py +55 -0
  357. skcomplex/engine/runtime/_recorder.py +84 -0
  358. skcomplex/engine/runtime/_simulations.py +665 -0
  359. skcomplex/engine/runtime/_trajectories.py +314 -0
  360. skcomplex/engine/solvers/__init__.py +95 -0
  361. skcomplex/engine/solvers/_base.py +372 -0
  362. skcomplex/engine/solvers/_caputo.py +194 -0
  363. skcomplex/engine/solvers/_collocation.py +334 -0
  364. skcomplex/engine/solvers/_convolution.py +155 -0
  365. skcomplex/engine/solvers/_cosimulation.py +400 -0
  366. skcomplex/engine/solvers/_crank_nicolson.py +32 -0
  367. skcomplex/engine/solvers/_defaults.py +34 -0
  368. skcomplex/engine/solvers/_etdrk4.py +86 -0
  369. skcomplex/engine/solvers/_euler_maruyama.py +161 -0
  370. skcomplex/engine/solvers/_event_locator.py +249 -0
  371. skcomplex/engine/solvers/_external.py +94 -0
  372. skcomplex/engine/solvers/_fractional_abm.py +126 -0
  373. skcomplex/engine/solvers/_fractional_euler_maruyama.py +322 -0
  374. skcomplex/engine/solvers/_gillespie.py +135 -0
  375. skcomplex/engine/solvers/_gradient_descent.py +353 -0
  376. skcomplex/engine/solvers/_grunwald_letnikov.py +83 -0
  377. skcomplex/engine/solvers/_heun.py +89 -0
  378. skcomplex/engine/solvers/_history.py +184 -0
  379. skcomplex/engine/solvers/_horizon_error.py +10 -0
  380. skcomplex/engine/solvers/_imex2.py +40 -0
  381. skcomplex/engine/solvers/_imex_euler.py +35 -0
  382. skcomplex/engine/solvers/_jump_trajectories.py +98 -0
  383. skcomplex/engine/solvers/_kinetics.py +242 -0
  384. skcomplex/engine/solvers/_l1.py +91 -0
  385. skcomplex/engine/solvers/_lammps.py +745 -0
  386. skcomplex/engine/solvers/_lammps_fix_spec.py +41 -0
  387. skcomplex/engine/solvers/_lattice.py +79 -0
  388. skcomplex/engine/solvers/_lindblad.py +70 -0
  389. skcomplex/engine/solvers/_maps.py +105 -0
  390. skcomplex/engine/solvers/_mesa.py +1624 -0
  391. skcomplex/engine/solvers/_milstein.py +93 -0
  392. skcomplex/engine/solvers/_monte_carlo.py +43 -0
  393. skcomplex/engine/solvers/_operator.py +212 -0
  394. skcomplex/engine/solvers/_optimal_control.py +368 -0
  395. skcomplex/engine/solvers/_pontryagin.py +298 -0
  396. skcomplex/engine/solvers/_renewal.py +90 -0
  397. skcomplex/engine/solvers/_renewals.py +190 -0
  398. skcomplex/engine/solvers/_rk4.py +263 -0
  399. skcomplex/engine/solvers/_root.py +176 -0
  400. skcomplex/engine/solvers/_rows.py +49 -0
  401. skcomplex/engine/solvers/_scipy_ode.py +602 -0
  402. skcomplex/engine/solvers/_sde.py +164 -0
  403. skcomplex/engine/solvers/_semi_lagrangian.py +213 -0
  404. skcomplex/engine/solvers/_solver.py +159 -0
  405. skcomplex/engine/solvers/_split.py +394 -0
  406. skcomplex/engine/solvers/_ssprk.py +147 -0
  407. skcomplex/engine/solvers/_strang_splitting.py +178 -0
  408. skcomplex/engine/solvers/_unitary.py +68 -0
  409. skcomplex/engine/solvers/_velocity_verlet.py +171 -0
  410. skcomplex/engine/solvers/_yoshida4.py +242 -0
  411. skcomplex/engine/types.py +90 -0
  412. skcomplex/engine/viz/__init__.py +35 -0
  413. skcomplex/engine/viz/_agents.py +223 -0
  414. skcomplex/engine/viz/_axes.py +146 -0
  415. skcomplex/engine/viz/_base.py +365 -0
  416. skcomplex/engine/viz/_bodies.py +334 -0
  417. skcomplex/engine/viz/_cayley.py +133 -0
  418. skcomplex/engine/viz/_expectation.py +208 -0
  419. skcomplex/engine/viz/_histograms.py +218 -0
  420. skcomplex/engine/viz/_images.py +307 -0
  421. skcomplex/engine/viz/_matrices.py +141 -0
  422. skcomplex/engine/viz/_meshes.py +149 -0
  423. skcomplex/engine/viz/_points.py +238 -0
  424. skcomplex/engine/viz/_rerun.py +527 -0
  425. skcomplex/engine/viz/_rings.py +127 -0
  426. skcomplex/engine/viz/_scalars.py +129 -0
  427. skcomplex/engine/viz/_sites.py +228 -0
  428. skcomplex/errors.py +112 -0
  429. skcomplex/experiments/__init__.py +36 -0
  430. skcomplex/experiments/_base.py +373 -0
  431. skcomplex/experiments/_basin_stability.py +153 -0
  432. skcomplex/experiments/_calibration.py +194 -0
  433. skcomplex/experiments/_experiment.py +327 -0
  434. skcomplex/experiments/_grid.py +36 -0
  435. skcomplex/experiments/_latin_hypercube.py +44 -0
  436. skcomplex/experiments/_morris.py +50 -0
  437. skcomplex/experiments/_one_at_a_time.py +28 -0
  438. skcomplex/experiments/_orbit_diagram.py +146 -0
  439. skcomplex/experiments/_random.py +44 -0
  440. skcomplex/experiments/_results.py +148 -0
  441. skcomplex/experiments/_rows.py +45 -0
  442. skcomplex/experiments/_saltelli.py +50 -0
  443. skcomplex/experiments/_sensitivity.py +122 -0
  444. skcomplex/experiments/_sobol.py +43 -0
  445. skcomplex/experiments/specs/__init__.py +1 -0
  446. skcomplex/experiments/specs/_task_spec.py +78 -0
  447. skcomplex/experiments/types.py +14 -0
  448. skcomplex/models/__init__.py +18 -0
  449. skcomplex/models/_catalog.py +243 -0
  450. skcomplex/models/_model_catalog.py +270 -0
  451. skcomplex/models/_model_entry.py +170 -0
  452. skcomplex/models/_model_listing.py +38 -0
  453. skcomplex/models/biology/__init__.py +1 -0
  454. skcomplex/models/biology/collective_behaviour/__init__.py +48 -0
  455. skcomplex/models/biology/collective_behaviour/_alarm.py +99 -0
  456. skcomplex/models/biology/collective_behaviour/_ant.py +101 -0
  457. skcomplex/models/biology/collective_behaviour/_ant_view.py +24 -0
  458. skcomplex/models/biology/collective_behaviour/_boid.py +104 -0
  459. skcomplex/models/biology/collective_behaviour/_boid_view.py +25 -0
  460. skcomplex/models/biology/collective_behaviour/_branch.py +41 -0
  461. skcomplex/models/biology/collective_behaviour/_decisions.py +149 -0
  462. skcomplex/models/biology/collective_behaviour/_flight.py +52 -0
  463. skcomplex/models/biology/collective_behaviour/_flocking.py +75 -0
  464. skcomplex/models/biology/collective_behaviour/_flocks.py +169 -0
  465. skcomplex/models/biology/collective_behaviour/_foraging.py +232 -0
  466. skcomplex/models/biology/collective_behaviour/_ground.py +67 -0
  467. skcomplex/models/biology/collective_behaviour/_leadership.py +207 -0
  468. skcomplex/models/biology/collective_behaviour/_morse_potential.py +87 -0
  469. skcomplex/models/biology/collective_behaviour/_pheromone.py +55 -0
  470. skcomplex/models/biology/collective_behaviour/_rats.py +41 -0
  471. skcomplex/models/biology/collective_behaviour/_schooling.py +102 -0
  472. skcomplex/models/biology/collective_behaviour/_self_propulsion.py +64 -0
  473. skcomplex/models/biology/collective_behaviour/_shoal_member_view.py +25 -0
  474. skcomplex/models/biology/collective_behaviour/_swimming.py +66 -0
  475. skcomplex/models/biology/collective_behaviour/_trail_choice.py +105 -0
  476. skcomplex/models/biology/collective_behaviour/_trails.py +245 -0
  477. skcomplex/models/biology/collective_behaviour/_walker.py +97 -0
  478. skcomplex/models/biology/collective_behaviour/_walker_view.py +23 -0
  479. skcomplex/models/biology/common/__init__.py +3 -0
  480. skcomplex/models/biology/common/excitable/__init__.py +7 -0
  481. skcomplex/models/biology/common/excitable/_fitzhugh_nagumo.py +121 -0
  482. skcomplex/models/biology/common/kinetics/__init__.py +7 -0
  483. skcomplex/models/biology/common/kinetics/_michaelis_menten.py +137 -0
  484. skcomplex/models/biology/common/networks/__init__.py +9 -0
  485. skcomplex/models/biology/common/networks/_edge_draw.py +95 -0
  486. skcomplex/models/biology/common/networks/_weighted_edge.py +48 -0
  487. skcomplex/models/biology/common/pharmacokinetics/__init__.py +7 -0
  488. skcomplex/models/biology/common/pharmacokinetics/_dosing.py +125 -0
  489. skcomplex/models/biology/common/populations/__init__.py +19 -0
  490. skcomplex/models/biology/common/populations/_exponential_growth.py +66 -0
  491. skcomplex/models/biology/common/populations/_gompertz_growth.py +75 -0
  492. skcomplex/models/biology/common/populations/_growth.py +176 -0
  493. skcomplex/models/biology/common/populations/_logistic_growth.py +92 -0
  494. skcomplex/models/biology/common/populations/_mortality.py +69 -0
  495. skcomplex/models/biology/common/populations/_population.py +41 -0
  496. skcomplex/models/biology/common/populations/_power_law_growth.py +71 -0
  497. skcomplex/models/biology/common/stigmergy/__init__.py +7 -0
  498. skcomplex/models/biology/common/stigmergy/_evaporation.py +95 -0
  499. skcomplex/models/biology/ecology/__init__.py +128 -0
  500. skcomplex/models/biology/ecology/_abundance.py +52 -0
  501. skcomplex/models/biology/ecology/_agent_predation.py +170 -0
  502. skcomplex/models/biology/ecology/_cell_quota.py +163 -0
  503. skcomplex/models/biology/ecology/_clustering.py +96 -0
  504. skcomplex/models/biology/ecology/_communities.py +234 -0
  505. skcomplex/models/biology/ecology/_competition.py +95 -0
  506. skcomplex/models/biology/ecology/_cow.py +49 -0
  507. skcomplex/models/biology/ecology/_cow_view.py +15 -0
  508. skcomplex/models/biology/ecology/_emotion_marks.py +65 -0
  509. skcomplex/models/biology/ecology/_factories.py +322 -0
  510. skcomplex/models/biology/ecology/_forager.py +116 -0
  511. skcomplex/models/biology/ecology/_forager_view.py +25 -0
  512. skcomplex/models/biology/ecology/_fronts.py +128 -0
  513. skcomplex/models/biology/ecology/_generalized_lotka_volterra.py +66 -0
  514. skcomplex/models/biology/ecology/_grass.py +96 -0
  515. skcomplex/models/biology/ecology/_grass_view.py +17 -0
  516. skcomplex/models/biology/ecology/_grazing.py +66 -0
  517. skcomplex/models/biology/ecology/_habitat_patch.py +49 -0
  518. skcomplex/models/biology/ecology/_herding.py +84 -0
  519. skcomplex/models/biology/ecology/_higher_order.py +102 -0
  520. skcomplex/models/biology/ecology/_hopping.py +68 -0
  521. skcomplex/models/biology/ecology/_instability.py +180 -0
  522. skcomplex/models/biology/ecology/_linear_growth.py +70 -0
  523. skcomplex/models/biology/ecology/_meadow.py +102 -0
  524. skcomplex/models/biology/ecology/_microbe.py +47 -0
  525. skcomplex/models/biology/ecology/_microbial_communities.py +90 -0
  526. skcomplex/models/biology/ecology/_mutualism.py +81 -0
  527. skcomplex/models/biology/ecology/_neutral.py +144 -0
  528. skcomplex/models/biology/ecology/_neutral_replacement.py +54 -0
  529. skcomplex/models/biology/ecology/_organism.py +63 -0
  530. skcomplex/models/biology/ecology/_organism_view.py +15 -0
  531. skcomplex/models/biology/ecology/_parasitism.py +78 -0
  532. skcomplex/models/biology/ecology/_pasture.py +83 -0
  533. skcomplex/models/biology/ecology/_pasture_view.py +16 -0
  534. skcomplex/models/biology/ecology/_pioneer_growth.py +101 -0
  535. skcomplex/models/biology/ecology/_plant.py +56 -0
  536. skcomplex/models/biology/ecology/_plant_view.py +16 -0
  537. skcomplex/models/biology/ecology/_predation.py +290 -0
  538. skcomplex/models/biology/ecology/_predation_interaction.py +71 -0
  539. skcomplex/models/biology/ecology/_predator.py +63 -0
  540. skcomplex/models/biology/ecology/_predator_prey_events.py +120 -0
  541. skcomplex/models/biology/ecology/_predator_view.py +17 -0
  542. skcomplex/models/biology/ecology/_prey.py +52 -0
  543. skcomplex/models/biology/ecology/_prey_view.py +15 -0
  544. skcomplex/models/biology/ecology/_rosenzweig_macarthur.py +91 -0
  545. skcomplex/models/biology/ecology/_seasonal_logistic_growth.py +71 -0
  546. skcomplex/models/biology/ecology/_sequential.py +114 -0
  547. skcomplex/models/biology/ecology/_sheep.py +63 -0
  548. skcomplex/models/biology/ecology/_sheep_view.py +17 -0
  549. skcomplex/models/biology/ecology/_speciation.py +71 -0
  550. skcomplex/models/biology/ecology/_stand.py +47 -0
  551. skcomplex/models/biology/ecology/_stigmergic_predator.py +98 -0
  552. skcomplex/models/biology/ecology/_stigmergic_prey.py +54 -0
  553. skcomplex/models/biology/ecology/_stigmergy.py +413 -0
  554. skcomplex/models/biology/ecology/_succession.py +92 -0
  555. skcomplex/models/biology/ecology/_successional_growth.py +88 -0
  556. skcomplex/models/biology/ecology/_triplet.py +55 -0
  557. skcomplex/models/biology/ecology/_wolf.py +63 -0
  558. skcomplex/models/biology/ecology/_wolf_sheep.py +156 -0
  559. skcomplex/models/biology/ecology/_wolf_view.py +17 -0
  560. skcomplex/models/biology/epidemiology/__init__.py +53 -0
  561. skcomplex/models/biology/epidemiology/_active_host.py +61 -0
  562. skcomplex/models/biology/epidemiology/_adaptive.py +316 -0
  563. skcomplex/models/biology/epidemiology/_agents.py +484 -0
  564. skcomplex/models/biology/epidemiology/_carrier.py +66 -0
  565. skcomplex/models/biology/epidemiology/_degree_class.py +65 -0
  566. skcomplex/models/biology/epidemiology/_factories.py +186 -0
  567. skcomplex/models/biology/epidemiology/_host.py +49 -0
  568. skcomplex/models/biology/epidemiology/_immunity_loss.py +84 -0
  569. skcomplex/models/biology/epidemiology/_infection.py +93 -0
  570. skcomplex/models/biology/epidemiology/_networks.py +170 -0
  571. skcomplex/models/biology/epidemiology/_outbreaks.py +216 -0
  572. skcomplex/models/biology/epidemiology/_person.py +103 -0
  573. skcomplex/models/biology/epidemiology/_person_view.py +23 -0
  574. skcomplex/models/biology/epidemiology/_recovery.py +92 -0
  575. skcomplex/models/biology/epidemiology/_recurrent.py +149 -0
  576. skcomplex/models/biology/epidemiology/_spreading.py +144 -0
  577. skcomplex/models/biology/epidemiology/_subpopulation.py +92 -0
  578. skcomplex/models/biology/epidemiology/_traveller.py +65 -0
  579. skcomplex/models/biology/epidemiology/_traveller_view.py +17 -0
  580. skcomplex/models/biology/epidemiology/_vaccination.py +184 -0
  581. skcomplex/models/biology/epidemiology/_walker.py +66 -0
  582. skcomplex/models/biology/epidemiology/_walker_view.py +17 -0
  583. skcomplex/models/biology/evolution/__init__.py +60 -0
  584. skcomplex/models/biology/evolution/_adaptive_climbing.py +106 -0
  585. skcomplex/models/biology/evolution/_catalysis.py +76 -0
  586. skcomplex/models/biology/evolution/_catalytic_link.py +21 -0
  587. skcomplex/models/biology/evolution/_chemical.py +111 -0
  588. skcomplex/models/biology/evolution/_climber.py +125 -0
  589. skcomplex/models/biology/evolution/_climber_view.py +19 -0
  590. skcomplex/models/biology/evolution/_coevolution.py +148 -0
  591. skcomplex/models/biology/evolution/_cyclic_species.py +44 -0
  592. skcomplex/models/biology/evolution/_dependency_field.py +56 -0
  593. skcomplex/models/biology/evolution/_finite_populations.py +287 -0
  594. skcomplex/models/biology/evolution/_games.py +143 -0
  595. skcomplex/models/biology/evolution/_genotype_class.py +42 -0
  596. skcomplex/models/biology/evolution/_individual.py +54 -0
  597. skcomplex/models/biology/evolution/_individual_view.py +16 -0
  598. skcomplex/models/biology/evolution/_locus.py +47 -0
  599. skcomplex/models/biology/evolution/_master_sequence.py +55 -0
  600. skcomplex/models/biology/evolution/_molecule.py +47 -0
  601. skcomplex/models/biology/evolution/_moran_step.py +83 -0
  602. skcomplex/models/biology/evolution/_networks.py +194 -0
  603. skcomplex/models/biology/evolution/_prebiotic.py +169 -0
  604. skcomplex/models/biology/evolution/_replicator.py +109 -0
  605. skcomplex/models/biology/evolution/_strategy.py +42 -0
  606. skcomplex/models/biology/evolution/_substitution.py +113 -0
  607. skcomplex/models/biology/evolution/_substitutions.py +126 -0
  608. skcomplex/models/biology/evolution/_tangled_nature_life_cycle.py +159 -0
  609. skcomplex/models/biology/evolution/_taxon.py +49 -0
  610. skcomplex/models/biology/neuroscience/__init__.py +63 -0
  611. skcomplex/models/biology/neuroscience/_conductances.py +193 -0
  612. skcomplex/models/biology/neuroscience/_delayed_synapse.py +70 -0
  613. skcomplex/models/biology/neuroscience/_excitable.py +178 -0
  614. skcomplex/models/biology/neuroscience/_fitz_hugh_nagumo_neuron.py +46 -0
  615. skcomplex/models/biology/neuroscience/_global_inhibition.py +71 -0
  616. skcomplex/models/biology/neuroscience/_hodgkin_huxley.py +103 -0
  617. skcomplex/models/biology/neuroscience/_inhibitor.py +62 -0
  618. skcomplex/models/biology/neuroscience/_inhibitor_drive.py +61 -0
  619. skcomplex/models/biology/neuroscience/_izhikevich.py +77 -0
  620. skcomplex/models/biology/neuroscience/_leaky_integrate_and_fire.py +80 -0
  621. skcomplex/models/biology/neuroscience/_mutual_inhibition.py +55 -0
  622. skcomplex/models/biology/neuroscience/_networks.py +235 -0
  623. skcomplex/models/biology/neuroscience/_neural_field_site.py +66 -0
  624. skcomplex/models/biology/neuroscience/_neural_fields.py +94 -0
  625. skcomplex/models/biology/neuroscience/_neurons.py +129 -0
  626. skcomplex/models/biology/neuroscience/_polyhomeostatic_neuron.py +93 -0
  627. skcomplex/models/biology/neuroscience/_populations.py +333 -0
  628. skcomplex/models/biology/neuroscience/_pulse_coupling.py +71 -0
  629. skcomplex/models/biology/neuroscience/_rate_unit.py +67 -0
  630. skcomplex/models/biology/neuroscience/_spike_reset.py +95 -0
  631. skcomplex/models/biology/neuroscience/_spiking_neuron.py +67 -0
  632. skcomplex/models/biology/neuroscience/_synapses.py +226 -0
  633. skcomplex/models/biology/neuroscience/_terman_wang.py +113 -0
  634. skcomplex/models/biology/neuroscience/_theta_neuron.py +66 -0
  635. skcomplex/models/biology/neuroscience/_wilson_cowan.py +122 -0
  636. skcomplex/models/biology/neuroscience/types.py +8 -0
  637. skcomplex/models/biology/oncology/__init__.py +212 -0
  638. skcomplex/models/biology/oncology/_androgen_receptor_prostate.py +240 -0
  639. skcomplex/models/biology/oncology/_androgen_suppression.py +109 -0
  640. skcomplex/models/biology/oncology/_angiogenesis.py +306 -0
  641. skcomplex/models/biology/oncology/_angiogenesis_immunotherapy_tumour.py +247 -0
  642. skcomplex/models/biology/oncology/_angiogenic_tumour.py +110 -0
  643. skcomplex/models/biology/oncology/_antiangiogenic.py +227 -0
  644. skcomplex/models/biology/oncology/_bone_marrow_blood.py +196 -0
  645. skcomplex/models/biology/oncology/_cell_cycle.py +85 -0
  646. skcomplex/models/biology/oncology/_cell_kinetics.py +285 -0
  647. skcomplex/models/biology/oncology/_cell_quota_prostate.py +207 -0
  648. skcomplex/models/biology/oncology/_cell_survival.py +72 -0
  649. skcomplex/models/biology/oncology/_checkpoint_tumour.py +161 -0
  650. skcomplex/models/biology/oncology/_chemoimmunotherapy_tumour.py +251 -0
  651. skcomplex/models/biology/oncology/_chemotherapy.py +565 -0
  652. skcomplex/models/biology/oncology/_chemovirotherapy_tumour.py +139 -0
  653. skcomplex/models/biology/oncology/_clonal_tumour.py +134 -0
  654. skcomplex/models/biology/oncology/_combination_therapy.py +989 -0
  655. skcomplex/models/biology/oncology/_delayed_vaccinated_tumour.py +341 -0
  656. skcomplex/models/biology/oncology/_dormant_cell_cycle.py +95 -0
  657. skcomplex/models/biology/oncology/_erythropoiesis.py +129 -0
  658. skcomplex/models/biology/oncology/_exponential_linear_growth.py +66 -0
  659. skcomplex/models/biology/oncology/_gene_viral_therapy.py +480 -0
  660. skcomplex/models/biology/oncology/_glioma_brain.py +165 -0
  661. skcomplex/models/biology/oncology/_growth.py +378 -0
  662. skcomplex/models/biology/oncology/_her2_tumour.py +156 -0
  663. skcomplex/models/biology/oncology/_hormone_therapy.py +985 -0
  664. skcomplex/models/biology/oncology/_immune_competition.py +241 -0
  665. skcomplex/models/biology/oncology/_immunotherapy.py +1001 -0
  666. skcomplex/models/biology/oncology/_intermittent_suppression.py +130 -0
  667. skcomplex/models/biology/oncology/_irradiated_tumour.py +105 -0
  668. skcomplex/models/biology/oncology/_irradiation.py +97 -0
  669. skcomplex/models/biology/oncology/_kirschner_panetta_tumour.py +132 -0
  670. skcomplex/models/biology/oncology/_leukaemia_stem_cells.py +150 -0
  671. skcomplex/models/biology/oncology/_linear_quadratic_survival.py +112 -0
  672. skcomplex/models/biology/oncology/_log_kill.py +81 -0
  673. skcomplex/models/biology/oncology/_metastasis_chemotherapy.py +211 -0
  674. skcomplex/models/biology/oncology/_multidrug_resistance.py +201 -0
  675. skcomplex/models/biology/oncology/_oncolytic_virus.py +68 -0
  676. skcomplex/models/biology/oncology/_oncolytic_virus_dendritic.py +155 -0
  677. skcomplex/models/biology/oncology/_optimal_chemotherapy.py +157 -0
  678. skcomplex/models/biology/oncology/_optimal_immunotherapy.py +137 -0
  679. skcomplex/models/biology/oncology/_optimal_therapy.py +208 -0
  680. skcomplex/models/biology/oncology/_piecewise_linear_prostate.py +147 -0
  681. skcomplex/models/biology/oncology/_radiation_competition.py +104 -0
  682. skcomplex/models/biology/oncology/_radiotherapy.py +311 -0
  683. skcomplex/models/biology/oncology/_resistance_switching.py +148 -0
  684. skcomplex/models/biology/oncology/_resting_hunting_chemotherapy.py +136 -0
  685. skcomplex/models/biology/oncology/_sirna_tgf_beta.py +189 -0
  686. skcomplex/models/biology/oncology/_sprout.py +65 -0
  687. skcomplex/models/biology/oncology/_sprout_view.py +17 -0
  688. skcomplex/models/biology/oncology/_stem_cell_differentiation.py +262 -0
  689. skcomplex/models/biology/oncology/_stem_cells.py +548 -0
  690. skcomplex/models/biology/oncology/_suppressed_tumour.py +338 -0
  691. skcomplex/models/biology/oncology/_tamoxifen_tumour.py +172 -0
  692. skcomplex/models/biology/oncology/_tcr_gene_therapy.py +98 -0
  693. skcomplex/models/biology/oncology/_therapy_switch.py +86 -0
  694. skcomplex/models/biology/oncology/_tissue.py +71 -0
  695. skcomplex/models/biology/oncology/_tumour_cell.py +85 -0
  696. skcomplex/models/biology/oncology/_tumour_cell_view.py +21 -0
  697. skcomplex/models/biology/oncology/_tumour_immune_chemotherapy.py +169 -0
  698. skcomplex/models/biology/oncology/_vaccinated_tumour.py +180 -0
  699. skcomplex/models/biology/oncology/_vascular_support.py +71 -0
  700. skcomplex/models/biology/oncology/_vascularized_spheroid.py +264 -0
  701. skcomplex/models/biology/oncology/_vasculature.py +42 -0
  702. skcomplex/models/biology/oncology/_vessel.py +49 -0
  703. skcomplex/models/biology/oncology/_vessel_view.py +15 -0
  704. skcomplex/models/biology/physiology/__init__.py +46 -0
  705. skcomplex/models/biology/physiology/_adaptivity.py +277 -0
  706. skcomplex/models/biology/physiology/_cardiac.py +167 -0
  707. skcomplex/models/biology/physiology/_chamber.py +71 -0
  708. skcomplex/models/biology/physiology/_circulation.py +97 -0
  709. skcomplex/models/biology/physiology/_coagulation.py +130 -0
  710. skcomplex/models/biology/physiology/_contour_cell.py +61 -0
  711. skcomplex/models/biology/physiology/_contour_uptake.py +61 -0
  712. skcomplex/models/biology/physiology/_exchange.py +165 -0
  713. skcomplex/models/biology/physiology/_exchanging_cell.py +83 -0
  714. skcomplex/models/biology/physiology/_fitz_hugh_nagumo.py +46 -0
  715. skcomplex/models/biology/physiology/_glucose_control.py +136 -0
  716. skcomplex/models/biology/physiology/_mackey_glass.py +81 -0
  717. skcomplex/models/biology/physiology/_pharmacokinetics.py +104 -0
  718. skcomplex/models/biology/physiology/_physiology.py +118 -0
  719. skcomplex/models/biology/physiology/_regulation.py +251 -0
  720. skcomplex/models/biology/physiology/_resistive_flow.py +67 -0
  721. skcomplex/models/biology/physiology/_toxicity.py +164 -0
  722. skcomplex/models/biology/systems_biology/__init__.py +52 -0
  723. skcomplex/models/biology/systems_biology/_boolean.py +141 -0
  724. skcomplex/models/biology/systems_biology/_boolean_function.py +84 -0
  725. skcomplex/models/biology/systems_biology/_boolean_models.py +206 -0
  726. skcomplex/models/biology/systems_biology/_boolean_node.py +41 -0
  727. skcomplex/models/biology/systems_biology/_cascades.py +178 -0
  728. skcomplex/models/biology/systems_biology/_clocks.py +274 -0
  729. skcomplex/models/biology/systems_biology/_generalized_mass_action.py +123 -0
  730. skcomplex/models/biology/systems_biology/_genes.py +296 -0
  731. skcomplex/models/biology/systems_biology/_min_proteins.py +230 -0
  732. skcomplex/models/biology/systems_biology/_networks.py +359 -0
  733. skcomplex/models/biology/systems_biology/_phosphorylation_loop.py +121 -0
  734. skcomplex/models/biology/systems_biology/_probabilistic.py +75 -0
  735. skcomplex/models/biology/systems_biology/_probabilistic_function.py +127 -0
  736. skcomplex/models/biology/systems_biology/_probabilistic_node.py +47 -0
  737. skcomplex/models/biology/systems_biology/_repression.py +104 -0
  738. skcomplex/models/biology/systems_biology/_s_system.py +88 -0
  739. skcomplex/models/biology/systems_biology/_species.py +44 -0
  740. skcomplex/models/biology/systems_biology/_threshold_function.py +63 -0
  741. skcomplex/models/biology/systems_biology/types.py +9 -0
  742. skcomplex/models/chemistry/__init__.py +1 -0
  743. skcomplex/models/chemistry/common/__init__.py +3 -0
  744. skcomplex/models/chemistry/common/kinetics/__init__.py +9 -0
  745. skcomplex/models/chemistry/common/kinetics/_brusselator.py +61 -0
  746. skcomplex/models/chemistry/common/kinetics/_cubic_autocatalysis.py +80 -0
  747. skcomplex/models/chemistry/kinetics/__init__.py +38 -0
  748. skcomplex/models/chemistry/kinetics/_catalyst_pellet.py +60 -0
  749. skcomplex/models/chemistry/kinetics/_cubic_autocatalysis.py +60 -0
  750. skcomplex/models/chemistry/kinetics/_cyclic.py +130 -0
  751. skcomplex/models/chemistry/kinetics/_hodgepodge.py +157 -0
  752. skcomplex/models/chemistry/kinetics/_nanoparticles.py +103 -0
  753. skcomplex/models/chemistry/kinetics/_oregonator.py +76 -0
  754. skcomplex/models/chemistry/kinetics/_oscillators.py +244 -0
  755. skcomplex/models/chemistry/kinetics/_pulsed_electrode.py +107 -0
  756. skcomplex/models/chemistry/kinetics/_reactions.py +332 -0
  757. skcomplex/models/chemistry/kinetics/_reactors.py +144 -0
  758. skcomplex/models/chemistry/pattern_formation/__init__.py +15 -0
  759. skcomplex/models/chemistry/pattern_formation/_brusselator.py +62 -0
  760. skcomplex/models/chemistry/pattern_formation/_gray_scott.py +68 -0
  761. skcomplex/models/chemistry/pattern_formation/_reaction_diffusion.py +268 -0
  762. skcomplex/models/chemistry/pattern_formation/_schnakenberg.py +67 -0
  763. skcomplex/models/computer_science/__init__.py +1 -0
  764. skcomplex/models/computer_science/automata/__init__.py +56 -0
  765. skcomplex/models/computer_science/automata/_automata.py +229 -0
  766. skcomplex/models/computer_science/automata/_automaton.py +202 -0
  767. skcomplex/models/computer_science/automata/_binary_cell.py +41 -0
  768. skcomplex/models/computer_science/automata/_codes.py +73 -0
  769. skcomplex/models/computer_science/automata/_diffusion_cell.py +47 -0
  770. skcomplex/models/computer_science/automata/_group_automata.py +449 -0
  771. skcomplex/models/computer_science/automata/_groups.py +132 -0
  772. skcomplex/models/computer_science/automata/_linear_automaton.py +128 -0
  773. skcomplex/models/computer_science/automata/_noisy_elementary_cell.py +46 -0
  774. skcomplex/models/computer_science/automata/_pascal_cell.py +41 -0
  775. skcomplex/models/computer_science/automata/_subshift.py +192 -0
  776. skcomplex/models/computer_science/automata/_variants.py +292 -0
  777. skcomplex/models/computer_science/evolutionary_computation/__init__.py +27 -0
  778. skcomplex/models/computer_science/evolutionary_computation/_annealed_candidate.py +39 -0
  779. skcomplex/models/computer_science/evolutionary_computation/_bit_string.py +55 -0
  780. skcomplex/models/computer_science/evolutionary_computation/_bit_string_view.py +13 -0
  781. skcomplex/models/computer_science/evolutionary_computation/_genetic_algorithms.py +92 -0
  782. skcomplex/models/computer_science/evolutionary_computation/_landscapes.py +82 -0
  783. skcomplex/models/computer_science/evolutionary_computation/_optimisers.py +217 -0
  784. skcomplex/models/computer_science/evolutionary_computation/_reproduction.py +129 -0
  785. skcomplex/models/computer_science/evolutionary_computation/_room_cleaning.py +170 -0
  786. skcomplex/models/computer_science/evolutionary_computation/_running_best.py +30 -0
  787. skcomplex/models/computer_science/evolutionary_computation/_running_best_update.py +58 -0
  788. skcomplex/models/computer_science/evolutionary_computation/_search_candidate.py +32 -0
  789. skcomplex/models/computer_science/evolutionary_computation/_strategy.py +54 -0
  790. skcomplex/models/computer_science/evolutionary_computation/_strategy_view.py +14 -0
  791. skcomplex/models/computer_science/neural_networks/__init__.py +34 -0
  792. skcomplex/models/computer_science/neural_networks/_binary_weight.py +32 -0
  793. skcomplex/models/computer_science/neural_networks/_diluted.py +159 -0
  794. skcomplex/models/computer_science/neural_networks/_echo_state.py +173 -0
  795. skcomplex/models/computer_science/neural_networks/_elman.py +160 -0
  796. skcomplex/models/computer_science/neural_networks/_hidden_unit.py +51 -0
  797. skcomplex/models/computer_science/neural_networks/_hopfield.py +134 -0
  798. skcomplex/models/computer_science/neural_networks/_hopfield_update.py +51 -0
  799. skcomplex/models/computer_science/neural_networks/_input_coupling.py +63 -0
  800. skcomplex/models/computer_science/neural_networks/_input_unit.py +39 -0
  801. skcomplex/models/computer_science/neural_networks/_neuron_view.py +14 -0
  802. skcomplex/models/computer_science/neural_networks/_output_unit.py +51 -0
  803. skcomplex/models/computer_science/neural_networks/_perceptron.py +72 -0
  804. skcomplex/models/computer_science/neural_networks/_readout_coupling.py +69 -0
  805. skcomplex/models/computer_science/neural_networks/_recurrence_coupling.py +66 -0
  806. skcomplex/models/economics/__init__.py +1 -0
  807. skcomplex/models/economics/common/__init__.py +3 -0
  808. skcomplex/models/economics/common/forecasting/__init__.py +7 -0
  809. skcomplex/models/economics/common/forecasting/_heuristics.py +51 -0
  810. skcomplex/models/economics/common/resources/__init__.py +7 -0
  811. skcomplex/models/economics/common/resources/_regrowth.py +70 -0
  812. skcomplex/models/economics/econophysics/__init__.py +58 -0
  813. skcomplex/models/economics/econophysics/_crowd_avoidance.py +80 -0
  814. skcomplex/models/economics/econophysics/_debt_exchange.py +74 -0
  815. skcomplex/models/economics/econophysics/_diner.py +59 -0
  816. skcomplex/models/economics/econophysics/_diner_view.py +17 -0
  817. skcomplex/models/economics/econophysics/_el_farol.py +114 -0
  818. skcomplex/models/economics/econophysics/_exchange.py +82 -0
  819. skcomplex/models/economics/econophysics/_game_state_spec.py +26 -0
  820. skcomplex/models/economics/econophysics/_kinetic.py +80 -0
  821. skcomplex/models/economics/econophysics/_kolkata.py +87 -0
  822. skcomplex/models/economics/econophysics/_minority.py +123 -0
  823. skcomplex/models/economics/econophysics/_minority_game.py +161 -0
  824. skcomplex/models/economics/econophysics/_minority_player.py +79 -0
  825. skcomplex/models/economics/econophysics/_minority_player_view.py +22 -0
  826. skcomplex/models/economics/econophysics/_patron.py +105 -0
  827. skcomplex/models/economics/econophysics/_patron_view.py +18 -0
  828. skcomplex/models/economics/econophysics/_predictor_pool.py +181 -0
  829. skcomplex/models/economics/econophysics/_predictor_pool_view.py +14 -0
  830. skcomplex/models/economics/econophysics/_restaurants.py +93 -0
  831. skcomplex/models/economics/econophysics/_saving_exchange.py +73 -0
  832. skcomplex/models/economics/econophysics/_saving_trader.py +47 -0
  833. skcomplex/models/economics/econophysics/_saving_trader_view.py +12 -0
  834. skcomplex/models/economics/econophysics/_wealth_exchange.py +114 -0
  835. skcomplex/models/economics/econophysics/_welfare.py +210 -0
  836. skcomplex/models/economics/econophysics/_welfare_policy.py +99 -0
  837. skcomplex/models/economics/finance/__init__.py +41 -0
  838. skcomplex/models/economics/finance/_arbitrage.py +139 -0
  839. skcomplex/models/economics/finance/_asset.py +42 -0
  840. skcomplex/models/economics/finance/_assets.py +44 -0
  841. skcomplex/models/economics/finance/_book.py +115 -0
  842. skcomplex/models/economics/finance/_contagion.py +116 -0
  843. skcomplex/models/economics/finance/_correlated_assets.py +69 -0
  844. skcomplex/models/economics/finance/_debt_rank_cascade.py +86 -0
  845. skcomplex/models/economics/finance/_geometric_brownian_motion.py +89 -0
  846. skcomplex/models/economics/finance/_gibrat_firm.py +82 -0
  847. skcomplex/models/economics/finance/_gibrat_firm_view.py +18 -0
  848. skcomplex/models/economics/finance/_growth_processes.py +195 -0
  849. skcomplex/models/economics/finance/_interbank.py +76 -0
  850. skcomplex/models/economics/finance/_interbank_view.py +14 -0
  851. skcomplex/models/economics/finance/_kesten_firm.py +88 -0
  852. skcomplex/models/economics/finance/_kesten_firm_view.py +16 -0
  853. skcomplex/models/economics/finance/_order_book.py +164 -0
  854. skcomplex/models/economics/finance/_reflecting_floor.py +66 -0
  855. skcomplex/models/economics/finance/_stock_trader.py +205 -0
  856. skcomplex/models/economics/finance/_stock_trader_view.py +24 -0
  857. skcomplex/models/economics/finance/_wealth.py +143 -0
  858. skcomplex/models/economics/innovation/__init__.py +23 -0
  859. skcomplex/models/economics/innovation/_adoption.py +233 -0
  860. skcomplex/models/economics/innovation/_bass.py +124 -0
  861. skcomplex/models/economics/innovation/_diversity.py +104 -0
  862. skcomplex/models/economics/innovation/_household_view.py +20 -0
  863. skcomplex/models/economics/innovation/_invention.py +140 -0
  864. skcomplex/models/economics/innovation/_part.py +64 -0
  865. skcomplex/models/economics/innovation/_part_view.py +12 -0
  866. skcomplex/models/economics/innovation/_redesign.py +88 -0
  867. skcomplex/models/economics/innovation/_technology.py +203 -0
  868. skcomplex/models/economics/innovation/_technology_view.py +14 -0
  869. skcomplex/models/economics/macroeconomics/__init__.py +70 -0
  870. skcomplex/models/economics/macroeconomics/_banking.py +148 -0
  871. skcomplex/models/economics/macroeconomics/_business.py +221 -0
  872. skcomplex/models/economics/macroeconomics/_business_view.py +24 -0
  873. skcomplex/models/economics/macroeconomics/_capital.py +122 -0
  874. skcomplex/models/economics/macroeconomics/_central_bank.py +80 -0
  875. skcomplex/models/economics/macroeconomics/_central_bank_view.py +13 -0
  876. skcomplex/models/economics/macroeconomics/_circuit.py +93 -0
  877. skcomplex/models/economics/macroeconomics/_commons.py +77 -0
  878. skcomplex/models/economics/macroeconomics/_credit.py +219 -0
  879. skcomplex/models/economics/macroeconomics/_credit_market.py +83 -0
  880. skcomplex/models/economics/macroeconomics/_depositor.py +114 -0
  881. skcomplex/models/economics/macroeconomics/_depositor_view.py +19 -0
  882. skcomplex/models/economics/macroeconomics/_economy.py +42 -0
  883. skcomplex/models/economics/macroeconomics/_estate.py +88 -0
  884. skcomplex/models/economics/macroeconomics/_firm.py +184 -0
  885. skcomplex/models/economics/macroeconomics/_firm_view.py +27 -0
  886. skcomplex/models/economics/macroeconomics/_firms.py +208 -0
  887. skcomplex/models/economics/macroeconomics/_firms_element.py +67 -0
  888. skcomplex/models/economics/macroeconomics/_food_market.py +84 -0
  889. skcomplex/models/economics/macroeconomics/_growth.py +109 -0
  890. skcomplex/models/economics/macroeconomics/_households.py +52 -0
  891. skcomplex/models/economics/macroeconomics/_income.py +59 -0
  892. skcomplex/models/economics/macroeconomics/_investing_firm_view.py +21 -0
  893. skcomplex/models/economics/macroeconomics/_labour_market.py +73 -0
  894. skcomplex/models/economics/macroeconomics/_lender.py +160 -0
  895. skcomplex/models/economics/macroeconomics/_lender_view.py +18 -0
  896. skcomplex/models/economics/macroeconomics/_metaphoria.py +257 -0
  897. skcomplex/models/economics/macroeconomics/_monetary.py +140 -0
  898. skcomplex/models/economics/macroeconomics/_monetary_bank.py +57 -0
  899. skcomplex/models/economics/macroeconomics/_optimal_growth.py +173 -0
  900. skcomplex/models/economics/macroeconomics/_people_spec.py +26 -0
  901. skcomplex/models/economics/macroeconomics/_plot.py +69 -0
  902. skcomplex/models/economics/macroeconomics/_plot_view.py +15 -0
  903. skcomplex/models/economics/macroeconomics/_policy_switch.py +78 -0
  904. skcomplex/models/economics/macroeconomics/_reserve_bank.py +118 -0
  905. skcomplex/models/economics/macroeconomics/_reserve_bank_view.py +14 -0
  906. skcomplex/models/economics/macroeconomics/_settler.py +291 -0
  907. skcomplex/models/economics/macroeconomics/_settler_view.py +56 -0
  908. skcomplex/models/economics/macroeconomics/_solow_growth.py +70 -0
  909. skcomplex/models/economics/macroeconomics/_trade.py +289 -0
  910. skcomplex/models/economics/markets/__init__.py +128 -0
  911. skcomplex/models/economics/markets/_auction_ledger.py +81 -0
  912. skcomplex/models/economics/markets/_barter.py +232 -0
  913. skcomplex/models/economics/markets/_barter_networks.py +169 -0
  914. skcomplex/models/economics/markets/_barter_trader.py +136 -0
  915. skcomplex/models/economics/markets/_barter_trader_view.py +16 -0
  916. skcomplex/models/economics/markets/_bilateral_barter.py +150 -0
  917. skcomplex/models/economics/markets/_brewery.py +67 -0
  918. skcomplex/models/economics/markets/_brock_hommes.py +115 -0
  919. skcomplex/models/economics/markets/_car.py +75 -0
  920. skcomplex/models/economics/markets/_car_view.py +14 -0
  921. skcomplex/models/economics/markets/_car_wash_operation.py +141 -0
  922. skcomplex/models/economics/markets/_cobweb.py +109 -0
  923. skcomplex/models/economics/markets/_commodities.py +286 -0
  924. skcomplex/models/economics/markets/_consumer_view.py +22 -0
  925. skcomplex/models/economics/markets/_cournot_adjustment.py +65 -0
  926. skcomplex/models/economics/markets/_cournot_best_response.py +88 -0
  927. skcomplex/models/economics/markets/_customer.py +147 -0
  928. skcomplex/models/economics/markets/_customer_view.py +16 -0
  929. skcomplex/models/economics/markets/_double_auction.py +141 -0
  930. skcomplex/models/economics/markets/_duopolist.py +54 -0
  931. skcomplex/models/economics/markets/_duopolist_view.py +13 -0
  932. skcomplex/models/economics/markets/_duopoly.py +85 -0
  933. skcomplex/models/economics/markets/_echelon.py +132 -0
  934. skcomplex/models/economics/markets/_employer.py +102 -0
  935. skcomplex/models/economics/markets/_employer_view.py +20 -0
  936. skcomplex/models/economics/markets/_exchange.py +171 -0
  937. skcomplex/models/economics/markets/_exchange_interaction.py +134 -0
  938. skcomplex/models/economics/markets/_factory.py +105 -0
  939. skcomplex/models/economics/markets/_fair_food.py +205 -0
  940. skcomplex/models/economics/markets/_forager.py +64 -0
  941. skcomplex/models/economics/markets/_forager_view.py +14 -0
  942. skcomplex/models/economics/markets/_goods_trader.py +68 -0
  943. skcomplex/models/economics/markets/_goods_traders.py +139 -0
  944. skcomplex/models/economics/markets/_heuristic_pricing.py +122 -0
  945. skcomplex/models/economics/markets/_heuristic_trader.py +108 -0
  946. skcomplex/models/economics/markets/_heuristic_trader_view.py +14 -0
  947. skcomplex/models/economics/markets/_inventory.py +212 -0
  948. skcomplex/models/economics/markets/_jobseeker.py +144 -0
  949. skcomplex/models/economics/markets/_jobseeker_view.py +26 -0
  950. skcomplex/models/economics/markets/_labour.py +188 -0
  951. skcomplex/models/economics/markets/_market.py +39 -0
  952. skcomplex/models/economics/markets/_market_state_spec.py +25 -0
  953. skcomplex/models/economics/markets/_oligopoly.py +167 -0
  954. skcomplex/models/economics/markets/_patch_map_spec.py +22 -0
  955. skcomplex/models/economics/markets/_perishables.py +150 -0
  956. skcomplex/models/economics/markets/_price_point.py +95 -0
  957. skcomplex/models/economics/markets/_prices.py +151 -0
  958. skcomplex/models/economics/markets/_pricing_firm.py +48 -0
  959. skcomplex/models/economics/markets/_pricing_firm_view.py +14 -0
  960. skcomplex/models/economics/markets/_pricing_game_spec.py +81 -0
  961. skcomplex/models/economics/markets/_produce.py +94 -0
  962. skcomplex/models/economics/markets/_product.py +97 -0
  963. skcomplex/models/economics/markets/_product_view.py +13 -0
  964. skcomplex/models/economics/markets/_queues.py +101 -0
  965. skcomplex/models/economics/markets/_resident.py +119 -0
  966. skcomplex/models/economics/markets/_resident_view.py +20 -0
  967. skcomplex/models/economics/markets/_retail_demand.py +52 -0
  968. skcomplex/models/economics/markets/_retailer.py +115 -0
  969. skcomplex/models/economics/markets/_shopper.py +115 -0
  970. skcomplex/models/economics/markets/_shopper_view.py +15 -0
  971. skcomplex/models/economics/markets/_shops.py +199 -0
  972. skcomplex/models/economics/markets/_stall.py +74 -0
  973. skcomplex/models/economics/markets/_stall_view.py +14 -0
  974. skcomplex/models/economics/markets/_store.py +171 -0
  975. skcomplex/models/economics/markets/_store_view.py +27 -0
  976. skcomplex/models/economics/markets/_sugar_patch.py +61 -0
  977. skcomplex/models/economics/markets/_sugar_patch_view.py +14 -0
  978. skcomplex/models/economics/markets/_sugarscape.py +250 -0
  979. skcomplex/models/economics/markets/_supply_chains.py +217 -0
  980. skcomplex/models/economics/markets/_supply_link.py +74 -0
  981. skcomplex/models/economics/markets/_till.py +79 -0
  982. skcomplex/models/economics/markets/_till_view.py +15 -0
  983. skcomplex/models/economics/markets/_washer.py +78 -0
  984. skcomplex/models/economics/markets/_zero_intelligence_buyer.py +99 -0
  985. skcomplex/models/economics/markets/_zero_intelligence_buyer_view.py +20 -0
  986. skcomplex/models/economics/markets/_zero_intelligence_seller.py +100 -0
  987. skcomplex/models/economics/markets/_zero_intelligence_seller_view.py +20 -0
  988. skcomplex/models/economics/resources/__init__.py +50 -0
  989. skcomplex/models/economics/resources/_bid_rent.py +104 -0
  990. skcomplex/models/economics/resources/_commons.py +218 -0
  991. skcomplex/models/economics/resources/_cow.py +69 -0
  992. skcomplex/models/economics/resources/_cow_view.py +13 -0
  993. skcomplex/models/economics/resources/_extraction.py +230 -0
  994. skcomplex/models/economics/resources/_farmer.py +93 -0
  995. skcomplex/models/economics/resources/_farmer_view.py +12 -0
  996. skcomplex/models/economics/resources/_fisheries.py +384 -0
  997. skcomplex/models/economics/resources/_fishery.py +91 -0
  998. skcomplex/models/economics/resources/_food.py +370 -0
  999. skcomplex/models/economics/resources/_grazing.py +148 -0
  1000. skcomplex/models/economics/resources/_harvest.py +69 -0
  1001. skcomplex/models/economics/resources/_harvesting.py +51 -0
  1002. skcomplex/models/economics/resources/_herder.py +78 -0
  1003. skcomplex/models/economics/resources/_herder_view.py +19 -0
  1004. skcomplex/models/economics/resources/_land_cell.py +39 -0
  1005. skcomplex/models/economics/resources/_land_use.py +73 -0
  1006. skcomplex/models/economics/resources/_oil_economy.py +85 -0
  1007. skcomplex/models/economics/resources/_optimal_harvesting.py +180 -0
  1008. skcomplex/models/economics/resources/_pasture.py +98 -0
  1009. skcomplex/models/economics/resources/_pasture_view.py +15 -0
  1010. skcomplex/models/economics/resources/_plantations.py +359 -0
  1011. skcomplex/models/economics/resources/_quota_regulator.py +84 -0
  1012. skcomplex/models/economics/resources/_stock.py +67 -0
  1013. skcomplex/models/engineering/__init__.py +1 -0
  1014. skcomplex/models/engineering/circuits/__init__.py +23 -0
  1015. skcomplex/models/engineering/circuits/_chua_circuit.py +48 -0
  1016. skcomplex/models/engineering/circuits/_circuit.py +47 -0
  1017. skcomplex/models/engineering/circuits/_circuits.py +387 -0
  1018. skcomplex/models/engineering/circuits/_harvesters.py +150 -0
  1019. skcomplex/models/engineering/circuits/_kicked_circuit.py +43 -0
  1020. skcomplex/models/engineering/circuits/_memristor_circuit.py +48 -0
  1021. skcomplex/models/engineering/circuits/_mixed_mode_chua_circuit.py +54 -0
  1022. skcomplex/models/engineering/circuits/_multiscroll_chua_circuit.py +58 -0
  1023. skcomplex/models/engineering/circuits/_tunnel_diode_circuit.py +45 -0
  1024. skcomplex/models/engineering/common/__init__.py +6 -0
  1025. skcomplex/models/engineering/common/mechanics/__init__.py +7 -0
  1026. skcomplex/models/engineering/common/mechanics/_spring_damper.py +121 -0
  1027. skcomplex/models/engineering/control/__init__.py +23 -0
  1028. skcomplex/models/engineering/control/_cart_pendulum.py +119 -0
  1029. skcomplex/models/engineering/control/_control.py +266 -0
  1030. skcomplex/models/engineering/control/_controlled_process.py +72 -0
  1031. skcomplex/models/engineering/control/_driven_oscillator.py +79 -0
  1032. skcomplex/models/engineering/control/_integrator.py +39 -0
  1033. skcomplex/models/engineering/control/_pid.py +106 -0
  1034. skcomplex/models/engineering/control/_regulation.py +170 -0
  1035. skcomplex/models/engineering/control/_room.py +51 -0
  1036. skcomplex/models/engineering/control/_satellite.py +56 -0
  1037. skcomplex/models/engineering/control/_state_feedback.py +82 -0
  1038. skcomplex/models/engineering/control/_swinging_pendulum.py +60 -0
  1039. skcomplex/models/engineering/power_systems/__init__.py +11 -0
  1040. skcomplex/models/engineering/power_systems/_electromechanics.py +224 -0
  1041. skcomplex/models/engineering/power_systems/_faraday_disk.py +93 -0
  1042. skcomplex/models/engineering/power_systems/_grid_node.py +39 -0
  1043. skcomplex/models/engineering/power_systems/_grids.py +89 -0
  1044. skcomplex/models/engineering/power_systems/_rail_segment.py +80 -0
  1045. skcomplex/models/engineering/power_systems/_regenerative_car.py +55 -0
  1046. skcomplex/models/engineering/power_systems/_transmission_line.py +48 -0
  1047. skcomplex/models/engineering/processes/__init__.py +13 -0
  1048. skcomplex/models/engineering/processes/_irrigation_scheme.py +112 -0
  1049. skcomplex/models/engineering/processes/_processes.py +115 -0
  1050. skcomplex/models/engineering/processes/_relief_pipeline.py +79 -0
  1051. skcomplex/models/engineering/processes/_rice_mill.py +112 -0
  1052. skcomplex/models/engineering/processes/_stage.py +34 -0
  1053. skcomplex/models/engineering/processes/_systems.py +316 -0
  1054. skcomplex/models/engineering/processes/_tub.py +42 -0
  1055. skcomplex/models/engineering/processes/_waste_system.py +101 -0
  1056. skcomplex/models/engineering/robotics/__init__.py +12 -0
  1057. skcomplex/models/engineering/robotics/_light_sensitive_robot.py +125 -0
  1058. skcomplex/models/engineering/robotics/_robots.py +177 -0
  1059. skcomplex/models/engineering/robotics/_swarm_robot.py +211 -0
  1060. skcomplex/models/engineering/robotics/_swarm_robot_view.py +23 -0
  1061. skcomplex/models/engineering/traffic/__init__.py +43 -0
  1062. skcomplex/models/engineering/traffic/_arrival.py +117 -0
  1063. skcomplex/models/engineering/traffic/_cab.py +170 -0
  1064. skcomplex/models/engineering/traffic/_cab_view.py +21 -0
  1065. skcomplex/models/engineering/traffic/_car.py +31 -0
  1066. skcomplex/models/engineering/traffic/_car_following.py +245 -0
  1067. skcomplex/models/engineering/traffic/_careless_braking.py +87 -0
  1068. skcomplex/models/engineering/traffic/_continuum.py +429 -0
  1069. skcomplex/models/engineering/traffic/_delayed_following.py +65 -0
  1070. skcomplex/models/engineering/traffic/_driver.py +140 -0
  1071. skcomplex/models/engineering/traffic/_driver_view.py +18 -0
  1072. skcomplex/models/engineering/traffic/_drivers.py +133 -0
  1073. skcomplex/models/engineering/traffic/_gas_kinetic_traffic.py +96 -0
  1074. skcomplex/models/engineering/traffic/_intelligent_driver.py +90 -0
  1075. skcomplex/models/engineering/traffic/_kerner_konhauser.py +42 -0
  1076. skcomplex/models/engineering/traffic/_langevin.py +170 -0
  1077. skcomplex/models/engineering/traffic/_langevin_driving.py +95 -0
  1078. skcomplex/models/engineering/traffic/_lead_car.py +40 -0
  1079. skcomplex/models/engineering/traffic/_lighthill_whitham_richards.py +30 -0
  1080. skcomplex/models/engineering/traffic/_motorist.py +118 -0
  1081. skcomplex/models/engineering/traffic/_motorist_view.py +18 -0
  1082. skcomplex/models/engineering/traffic/_optimal_velocity.py +72 -0
  1083. skcomplex/models/engineering/traffic/_payne.py +38 -0
  1084. skcomplex/models/engineering/traffic/_rider.py +72 -0
  1085. skcomplex/models/engineering/traffic/_rider_view.py +16 -0
  1086. skcomplex/models/engineering/traffic/_ridesharing.py +179 -0
  1087. skcomplex/models/engineering/traffic/_traffic.py +143 -0
  1088. skcomplex/models/engineering/traffic/_traffic_moments.py +57 -0
  1089. skcomplex/models/mathematics/__init__.py +1 -0
  1090. skcomplex/models/mathematics/common/__init__.py +3 -0
  1091. skcomplex/models/mathematics/common/flows/__init__.py +7 -0
  1092. skcomplex/models/mathematics/common/flows/_lorenz.py +90 -0
  1093. skcomplex/models/mathematics/dynamical_systems/__init__.py +90 -0
  1094. skcomplex/models/mathematics/dynamical_systems/_baker_map.py +59 -0
  1095. skcomplex/models/mathematics/dynamical_systems/_blow_up.py +64 -0
  1096. skcomplex/models/mathematics/dynamical_systems/_cat_map.py +44 -0
  1097. skcomplex/models/mathematics/dynamical_systems/_chaotic_ensembles.py +186 -0
  1098. skcomplex/models/mathematics/dynamical_systems/_circle_map.py +49 -0
  1099. skcomplex/models/mathematics/dynamical_systems/_cubic_walk.py +72 -0
  1100. skcomplex/models/mathematics/dynamical_systems/_cusp.py +64 -0
  1101. skcomplex/models/mathematics/dynamical_systems/_doubling_map.py +65 -0
  1102. skcomplex/models/mathematics/dynamical_systems/_driven_flows.py +158 -0
  1103. skcomplex/models/mathematics/dynamical_systems/_flows.py +179 -0
  1104. skcomplex/models/mathematics/dynamical_systems/_henon_map.py +54 -0
  1105. skcomplex/models/mathematics/dynamical_systems/_hopf.py +77 -0
  1106. skcomplex/models/mathematics/dynamical_systems/_intermittency_map.py +44 -0
  1107. skcomplex/models/mathematics/dynamical_systems/_jerk.py +72 -0
  1108. skcomplex/models/mathematics/dynamical_systems/_koopman.py +118 -0
  1109. skcomplex/models/mathematics/dynamical_systems/_logistic_map.py +44 -0
  1110. skcomplex/models/mathematics/dynamical_systems/_maps.py +465 -0
  1111. skcomplex/models/mathematics/dynamical_systems/_newton_map.py +44 -0
  1112. skcomplex/models/mathematics/dynamical_systems/_normal_forms.py +154 -0
  1113. skcomplex/models/mathematics/dynamical_systems/_rossler.py +83 -0
  1114. skcomplex/models/mathematics/dynamical_systems/_saddle_node.py +59 -0
  1115. skcomplex/models/mathematics/dynamical_systems/_skew_tent_map.py +63 -0
  1116. skcomplex/models/mathematics/dynamical_systems/_standard_map.py +52 -0
  1117. skcomplex/models/mathematics/dynamical_systems/_subcritical_forms.py +160 -0
  1118. skcomplex/models/mathematics/dynamical_systems/_takens_bogdanov.py +74 -0
  1119. skcomplex/models/mathematics/dynamical_systems/_tent_map.py +44 -0
  1120. skcomplex/models/mathematics/dynamical_systems/_towel_map.py +59 -0
  1121. skcomplex/models/mathematics/fractals/__init__.py +61 -0
  1122. skcomplex/models/mathematics/fractals/_affine_spec.py +100 -0
  1123. skcomplex/models/mathematics/fractals/_cantor_element.py +92 -0
  1124. skcomplex/models/mathematics/fractals/_chaos_game.py +140 -0
  1125. skcomplex/models/mathematics/fractals/_geometry_spec.py +84 -0
  1126. skcomplex/models/mathematics/fractals/_geometry_visual.py +190 -0
  1127. skcomplex/models/mathematics/fractals/_group_spec.py +24 -0
  1128. skcomplex/models/mathematics/fractals/_koch_element.py +43 -0
  1129. skcomplex/models/mathematics/fractals/_module_spec.py +47 -0
  1130. skcomplex/models/mathematics/fractals/_patch_element.py +89 -0
  1131. skcomplex/models/mathematics/fractals/_patch_kernel.py +200 -0
  1132. skcomplex/models/mathematics/fractals/_patch_structure_spec.py +108 -0
  1133. skcomplex/models/mathematics/fractals/_production_law.py +105 -0
  1134. skcomplex/models/mathematics/fractals/_prototile_spec.py +53 -0
  1135. skcomplex/models/mathematics/fractals/_quadratic.py +191 -0
  1136. skcomplex/models/mathematics/fractals/_random_affine_map.py +100 -0
  1137. skcomplex/models/mathematics/fractals/_rewriting_compiler.py +300 -0
  1138. skcomplex/models/mathematics/fractals/_rewriting_error.py +10 -0
  1139. skcomplex/models/mathematics/fractals/_rewriting_loops.py +180 -0
  1140. skcomplex/models/mathematics/fractals/_rewriting_problem_spec.py +30 -0
  1141. skcomplex/models/mathematics/fractals/_rewriting_solver.py +125 -0
  1142. skcomplex/models/mathematics/fractals/_sierpinski_element.py +110 -0
  1143. skcomplex/models/mathematics/fractals/_substitution.py +130 -0
  1144. skcomplex/models/mathematics/fractals/_substitution_law.py +76 -0
  1145. skcomplex/models/mathematics/fractals/_successor_spec.py +23 -0
  1146. skcomplex/models/mathematics/fractals/_word_element.py +94 -0
  1147. skcomplex/models/mathematics/fractals/_word_kernel.py +526 -0
  1148. skcomplex/models/mathematics/fractals/_word_structure_spec.py +110 -0
  1149. skcomplex/models/mathematics/fractals/_words.py +38 -0
  1150. skcomplex/models/mathematics/fractals/types.py +12 -0
  1151. skcomplex/models/mathematics/fractional_dynamics/__init__.py +29 -0
  1152. skcomplex/models/mathematics/fractional_dynamics/_fractional.py +338 -0
  1153. skcomplex/models/mathematics/fractional_dynamics/_oscillator.py +71 -0
  1154. skcomplex/models/mathematics/fractional_dynamics/_relaxation.py +59 -0
  1155. skcomplex/models/mathematics/fractional_dynamics/_van_der_pol.py +66 -0
  1156. skcomplex/models/mathematics/networks/__init__.py +61 -0
  1157. skcomplex/models/mathematics/networks/_copying_vertex.py +50 -0
  1158. skcomplex/models/mathematics/networks/_ensemble_node.py +48 -0
  1159. skcomplex/models/mathematics/networks/_ensembles.py +195 -0
  1160. skcomplex/models/mathematics/networks/_failing.py +58 -0
  1161. skcomplex/models/mathematics/networks/_giant_component.py +52 -0
  1162. skcomplex/models/mathematics/networks/_growth.py +223 -0
  1163. skcomplex/models/mathematics/networks/_hypergraphs.py +131 -0
  1164. skcomplex/models/mathematics/networks/_link.py +21 -0
  1165. skcomplex/models/mathematics/networks/_network_measures.py +59 -0
  1166. skcomplex/models/mathematics/networks/_network_node.py +86 -0
  1167. skcomplex/models/mathematics/networks/_network_walker.py +49 -0
  1168. skcomplex/models/mathematics/networks/_network_walker_view.py +12 -0
  1169. skcomplex/models/mathematics/networks/_node_content.py +47 -0
  1170. skcomplex/models/mathematics/networks/_node_rank.py +57 -0
  1171. skcomplex/models/mathematics/networks/_processes.py +148 -0
  1172. skcomplex/models/mathematics/networks/_regulated_link.py +47 -0
  1173. skcomplex/models/mathematics/networks/_regulated_node.py +43 -0
  1174. skcomplex/models/mathematics/networks/_simplex.py +46 -0
  1175. skcomplex/models/mathematics/networks/_simplex_ageing.py +46 -0
  1176. skcomplex/models/mathematics/networks/_size_biased_move.py +44 -0
  1177. skcomplex/models/mathematics/networks/_structure.py +170 -0
  1178. skcomplex/models/mathematics/networks/_triad_vertex.py +64 -0
  1179. skcomplex/models/mathematics/networks/_triadic.py +114 -0
  1180. skcomplex/models/mathematics/networks/_triadic_regulation.py +65 -0
  1181. skcomplex/models/mathematics/networks/_vertex.py +52 -0
  1182. skcomplex/models/mathematics/networks/_walker_density.py +51 -0
  1183. skcomplex/models/mathematics/stochastic_processes/__init__.py +62 -0
  1184. skcomplex/models/mathematics/stochastic_processes/_ageing_walker.py +68 -0
  1185. skcomplex/models/mathematics/stochastic_processes/_ageing_walker_view.py +15 -0
  1186. skcomplex/models/mathematics/stochastic_processes/_bernoulli_trial.py +61 -0
  1187. skcomplex/models/mathematics/stochastic_processes/_bernoulli_trial_view.py +14 -0
  1188. skcomplex/models/mathematics/stochastic_processes/_branching.py +103 -0
  1189. skcomplex/models/mathematics/stochastic_processes/_counting.py +88 -0
  1190. skcomplex/models/mathematics/stochastic_processes/_fragment.py +91 -0
  1191. skcomplex/models/mathematics/stochastic_processes/_fragment_view.py +13 -0
  1192. skcomplex/models/mathematics/stochastic_processes/_hidden_markov_source.py +46 -0
  1193. skcomplex/models/mathematics/stochastic_processes/_individual_view.py +13 -0
  1194. skcomplex/models/mathematics/stochastic_processes/_intermittency.py +115 -0
  1195. skcomplex/models/mathematics/stochastic_processes/_markov_source.py +41 -0
  1196. skcomplex/models/mathematics/stochastic_processes/_memory_walker.py +57 -0
  1197. skcomplex/models/mathematics/stochastic_processes/_persistent_walker.py +52 -0
  1198. skcomplex/models/mathematics/stochastic_processes/_poisson_counter.py +47 -0
  1199. skcomplex/models/mathematics/stochastic_processes/_queues.py +117 -0
  1200. skcomplex/models/mathematics/stochastic_processes/_random_walker.py +52 -0
  1201. skcomplex/models/mathematics/stochastic_processes/_reducing.py +104 -0
  1202. skcomplex/models/mathematics/stochastic_processes/_reducing_ball.py +63 -0
  1203. skcomplex/models/mathematics/stochastic_processes/_reducing_ball_view.py +14 -0
  1204. skcomplex/models/mathematics/stochastic_processes/_reducing_jump.py +44 -0
  1205. skcomplex/models/mathematics/stochastic_processes/_sources.py +90 -0
  1206. skcomplex/models/mathematics/stochastic_processes/_urns.py +112 -0
  1207. skcomplex/models/mathematics/stochastic_processes/_walks.py +280 -0
  1208. skcomplex/models/mathematics/stochastic_processes/_weakening_particle.py +57 -0
  1209. skcomplex/models/mathematics/stochastic_processes/types.py +8 -0
  1210. skcomplex/models/physics/__init__.py +1 -0
  1211. skcomplex/models/physics/active_matter/__init__.py +95 -0
  1212. skcomplex/models/physics/active_matter/_active_particle.py +88 -0
  1213. skcomplex/models/physics/active_matter/_alignment.py +192 -0
  1214. skcomplex/models/physics/active_matter/_angular_alignment.py +98 -0
  1215. skcomplex/models/physics/active_matter/_angular_diffusion.py +67 -0
  1216. skcomplex/models/physics/active_matter/_binary_collisions.py +126 -0
  1217. skcomplex/models/physics/active_matter/_chemotaxis.py +173 -0
  1218. skcomplex/models/physics/active_matter/_cohesive_particle.py +132 -0
  1219. skcomplex/models/physics/active_matter/_collective.py +327 -0
  1220. skcomplex/models/physics/active_matter/_collisions.py +127 -0
  1221. skcomplex/models/physics/active_matter/_contractile_gel_site.py +81 -0
  1222. skcomplex/models/physics/active_matter/_cucker_smale_alignment.py +89 -0
  1223. skcomplex/models/physics/active_matter/_depot_particle.py +103 -0
  1224. skcomplex/models/physics/active_matter/_flocker.py +46 -0
  1225. skcomplex/models/physics/active_matter/_flocker_view.py +20 -0
  1226. skcomplex/models/physics/active_matter/_flocks.py +258 -0
  1227. skcomplex/models/physics/active_matter/_gels.py +141 -0
  1228. skcomplex/models/physics/active_matter/_heading_alignment.py +73 -0
  1229. skcomplex/models/physics/active_matter/_kinetic_flocks.py +111 -0
  1230. skcomplex/models/physics/active_matter/_landau_de_gennes_energy.py +107 -0
  1231. skcomplex/models/physics/active_matter/_model_b.py +170 -0
  1232. skcomplex/models/physics/active_matter/_nematic_density_site.py +78 -0
  1233. skcomplex/models/physics/active_matter/_nematic_gel_site.py +115 -0
  1234. skcomplex/models/physics/active_matter/_nematic_particle.py +61 -0
  1235. skcomplex/models/physics/active_matter/_nematics.py +323 -0
  1236. skcomplex/models/physics/active_matter/_nonreciprocal.py +214 -0
  1237. skcomplex/models/physics/active_matter/_ornstein_uhlenbeck_particle.py +87 -0
  1238. skcomplex/models/physics/active_matter/_particles.py +323 -0
  1239. skcomplex/models/physics/active_matter/_phoretic_attraction.py +80 -0
  1240. skcomplex/models/physics/active_matter/_polar_fluid.py +119 -0
  1241. skcomplex/models/physics/active_matter/_polar_gel_site.py +120 -0
  1242. skcomplex/models/physics/active_matter/_propulsion_step.py +64 -0
  1243. skcomplex/models/physics/active_matter/_self_propulsion.py +73 -0
  1244. skcomplex/models/physics/active_matter/_tumbler.py +100 -0
  1245. skcomplex/models/physics/active_matter/_tumbler_view.py +23 -0
  1246. skcomplex/models/physics/active_matter/_vicsek_particle.py +61 -0
  1247. skcomplex/models/physics/celestial_mechanics/__init__.py +19 -0
  1248. skcomplex/models/physics/celestial_mechanics/_dipoles.py +160 -0
  1249. skcomplex/models/physics/celestial_mechanics/_kepler_body.py +76 -0
  1250. skcomplex/models/physics/celestial_mechanics/_orbits.py +332 -0
  1251. skcomplex/models/physics/celestial_mechanics/_rotating_frame_body.py +72 -0
  1252. skcomplex/models/physics/celestial_mechanics/_sitnikov_body.py +54 -0
  1253. skcomplex/models/physics/celestial_mechanics/types.py +6 -0
  1254. skcomplex/models/physics/climate/__init__.py +60 -0
  1255. skcomplex/models/physics/climate/_carbon_cycle.py +169 -0
  1256. skcomplex/models/physics/climate/_climate_anomaly.py +55 -0
  1257. skcomplex/models/physics/climate/_daisyworld.py +158 -0
  1258. skcomplex/models/physics/climate/_delayed_oscillator.py +68 -0
  1259. skcomplex/models/physics/climate/_early_warning.py +102 -0
  1260. skcomplex/models/physics/climate/_energy_balance.py +207 -0
  1261. skcomplex/models/physics/climate/_geodynamo.py +86 -0
  1262. skcomplex/models/physics/climate/_ice_ages.py +179 -0
  1263. skcomplex/models/physics/climate/_ice_albedo_climate.py +100 -0
  1264. skcomplex/models/physics/climate/_latitude_band.py +156 -0
  1265. skcomplex/models/physics/climate/_lorenz84.py +91 -0
  1266. skcomplex/models/physics/climate/_lorenz96.py +67 -0
  1267. skcomplex/models/physics/climate/_low_order.py +162 -0
  1268. skcomplex/models/physics/climate/_net_energy.py +210 -0
  1269. skcomplex/models/physics/climate/_ramped_fold.py +92 -0
  1270. skcomplex/models/physics/climate/_saltzman_maasch.py +123 -0
  1271. skcomplex/models/physics/climate/_soil.py +116 -0
  1272. skcomplex/models/physics/climate/_stochastic_energy_balance.py +124 -0
  1273. skcomplex/models/physics/climate/_tipping.py +141 -0
  1274. skcomplex/models/physics/climate/_tipping_types.py +159 -0
  1275. skcomplex/models/physics/climate/_van_der_pol_ice_ages.py +101 -0
  1276. skcomplex/models/physics/climate/_variability.py +103 -0
  1277. skcomplex/models/physics/common/__init__.py +6 -0
  1278. skcomplex/models/physics/common/fields/__init__.py +14 -0
  1279. skcomplex/models/physics/common/fields/_landau_energy.py +76 -0
  1280. skcomplex/models/physics/common/fields/_phase_field.py +43 -0
  1281. skcomplex/models/physics/common/fields/_swift_hohenberg_energy.py +74 -0
  1282. skcomplex/models/physics/common/fields/_transports.py +119 -0
  1283. skcomplex/models/physics/common/mechanics/__init__.py +5 -0
  1284. skcomplex/models/physics/common/mechanics/_reflection.py +139 -0
  1285. skcomplex/models/physics/common/oscillators/__init__.py +13 -0
  1286. skcomplex/models/physics/common/oscillators/_kuramoto_coupling.py +140 -0
  1287. skcomplex/models/physics/common/oscillators/_phase_oscillator.py +68 -0
  1288. skcomplex/models/physics/common/oscillators/_sited_oscillator.py +55 -0
  1289. skcomplex/models/physics/common/oscillators/_stuart_landau.py +106 -0
  1290. skcomplex/models/physics/common/particles/__init__.py +28 -0
  1291. skcomplex/models/physics/common/particles/_constant_force.py +65 -0
  1292. skcomplex/models/physics/common/particles/_damping.py +72 -0
  1293. skcomplex/models/physics/common/particles/_gravity.py +74 -0
  1294. skcomplex/models/physics/common/particles/_harmonic_potential.py +77 -0
  1295. skcomplex/models/physics/common/particles/_lammps.py +47 -0
  1296. skcomplex/models/physics/common/particles/_langevin_thermostat.py +103 -0
  1297. skcomplex/models/physics/common/particles/_lennard_jones.py +87 -0
  1298. skcomplex/models/physics/common/particles/_mass_point.py +57 -0
  1299. skcomplex/models/physics/common/particles/_potential_energy.py +56 -0
  1300. skcomplex/models/physics/common/particles/_soft_sphere.py +82 -0
  1301. skcomplex/models/physics/common/particles/_spring.py +78 -0
  1302. skcomplex/models/physics/common/particles/_utils.py +25 -0
  1303. skcomplex/models/physics/common/quantum/__init__.py +18 -0
  1304. skcomplex/models/physics/common/quantum/_mode.py +46 -0
  1305. skcomplex/models/physics/common/quantum/_quantum.py +127 -0
  1306. skcomplex/models/physics/common/quantum/_qubit.py +61 -0
  1307. skcomplex/models/physics/common/quantum/_site.py +49 -0
  1308. skcomplex/models/physics/common/quantum/_spin.py +92 -0
  1309. skcomplex/models/physics/common/spins/__init__.py +15 -0
  1310. skcomplex/models/physics/common/spins/_ising_sampling.py +75 -0
  1311. skcomplex/models/physics/common/spins/_potts_sampling.py +73 -0
  1312. skcomplex/models/physics/common/spins/_spin_sampling.py +100 -0
  1313. skcomplex/models/physics/common/spins/_thermal_sampling.py +105 -0
  1314. skcomplex/models/physics/common/spins/_xy_sampling.py +67 -0
  1315. skcomplex/models/physics/cosmology/__init__.py +8 -0
  1316. skcomplex/models/physics/cosmology/_expansion.py +148 -0
  1317. skcomplex/models/physics/criticality/__init__.py +29 -0
  1318. skcomplex/models/physics/criticality/_absorbing.py +210 -0
  1319. skcomplex/models/physics/criticality/_avalanche.py +69 -0
  1320. skcomplex/models/physics/criticality/_crackling_noise.py +129 -0
  1321. skcomplex/models/physics/criticality/_criticality.py +235 -0
  1322. skcomplex/models/physics/criticality/_evolutionary_learning.py +231 -0
  1323. skcomplex/models/physics/criticality/_fire.py +70 -0
  1324. skcomplex/models/physics/criticality/_forest.py +55 -0
  1325. skcomplex/models/physics/criticality/_learning.py +175 -0
  1326. skcomplex/models/physics/criticality/_sandpile_cell.py +47 -0
  1327. skcomplex/models/physics/fluids/__init__.py +49 -0
  1328. skcomplex/models/physics/fluids/_bhatnagar_gross_krook.py +54 -0
  1329. skcomplex/models/physics/fluids/_boussinesq.py +62 -0
  1330. skcomplex/models/physics/fluids/_burgers.py +39 -0
  1331. skcomplex/models/physics/fluids/_carleman_gas.py +61 -0
  1332. skcomplex/models/physics/fluids/_flows.py +436 -0
  1333. skcomplex/models/physics/fluids/_kinetic_equations.py +327 -0
  1334. skcomplex/models/physics/fluids/_kinetics.py +147 -0
  1335. skcomplex/models/physics/fluids/_kuramoto_sivashinsky.py +41 -0
  1336. skcomplex/models/physics/fluids/_lattice_gases.py +217 -0
  1337. skcomplex/models/physics/fluids/_marangoni.py +136 -0
  1338. skcomplex/models/physics/fluids/_shallow_water.py +55 -0
  1339. skcomplex/models/physics/fluids/_vorticity.py +56 -0
  1340. skcomplex/models/physics/fluids/_wave_number.py +50 -0
  1341. skcomplex/models/physics/heat/__init__.py +13 -0
  1342. skcomplex/models/physics/heat/_cooling.py +96 -0
  1343. skcomplex/models/physics/heat/_heat.py +182 -0
  1344. skcomplex/models/physics/mechanics/__init__.py +93 -0
  1345. skcomplex/models/physics/mechanics/_ballistic_pendulum.py +80 -0
  1346. skcomplex/models/physics/mechanics/_bouncing_ball.py +51 -0
  1347. skcomplex/models/physics/mechanics/_cart_pendulum.py +92 -0
  1348. skcomplex/models/physics/mechanics/_cart_pendulum_interaction.py +57 -0
  1349. skcomplex/models/physics/mechanics/_clock_pendulum.py +94 -0
  1350. skcomplex/models/physics/mechanics/_clock_pendulum_interaction.py +60 -0
  1351. skcomplex/models/physics/mechanics/_disc_billiard.py +90 -0
  1352. skcomplex/models/physics/mechanics/_double_pendulum.py +95 -0
  1353. skcomplex/models/physics/mechanics/_double_pendulum_interaction.py +53 -0
  1354. skcomplex/models/physics/mechanics/_elastic_collision.py +78 -0
  1355. skcomplex/models/physics/mechanics/_gyroscope.py +105 -0
  1356. skcomplex/models/physics/mechanics/_gyroscope_interaction.py +57 -0
  1357. skcomplex/models/physics/mechanics/_hanging_ball.py +65 -0
  1358. skcomplex/models/physics/mechanics/_magnet.py +70 -0
  1359. skcomplex/models/physics/mechanics/_mechanics.py +426 -0
  1360. skcomplex/models/physics/mechanics/_parametric_pendulum.py +75 -0
  1361. skcomplex/models/physics/mechanics/_parametric_pendulum_interaction.py +56 -0
  1362. skcomplex/models/physics/mechanics/_pendulum.py +73 -0
  1363. skcomplex/models/physics/mechanics/_pendulum_interaction.py +52 -0
  1364. skcomplex/models/physics/mechanics/_pendulum_spring.py +68 -0
  1365. skcomplex/models/physics/mechanics/_pendulums.py +547 -0
  1366. skcomplex/models/physics/mechanics/_rotating_ball.py +66 -0
  1367. skcomplex/models/physics/mechanics/_rotating_swing.py +100 -0
  1368. skcomplex/models/physics/mechanics/_rotating_swing_interaction.py +70 -0
  1369. skcomplex/models/physics/mechanics/_rotations.py +244 -0
  1370. skcomplex/models/physics/mechanics/_springs.py +176 -0
  1371. skcomplex/models/physics/mechanics/_support_spring.py +65 -0
  1372. skcomplex/models/physics/mechanics/_wells.py +102 -0
  1373. skcomplex/models/physics/nonlinear_oscillators/__init__.py +26 -0
  1374. skcomplex/models/physics/nonlinear_oscillators/_adler_phase.py +73 -0
  1375. skcomplex/models/physics/nonlinear_oscillators/_billiards.py +137 -0
  1376. skcomplex/models/physics/nonlinear_oscillators/_duffing.py +78 -0
  1377. skcomplex/models/physics/nonlinear_oscillators/_henon_heiles.py +57 -0
  1378. skcomplex/models/physics/nonlinear_oscillators/_mushroom_billiard.py +96 -0
  1379. skcomplex/models/physics/nonlinear_oscillators/_oscillators.py +313 -0
  1380. skcomplex/models/physics/nonlinear_oscillators/_sinai_billiard.py +101 -0
  1381. skcomplex/models/physics/nonlinear_oscillators/_van_der_pol.py +92 -0
  1382. skcomplex/models/physics/oceanography/__init__.py +12 -0
  1383. skcomplex/models/physics/oceanography/_gyres.py +145 -0
  1384. skcomplex/models/physics/oceanography/_quasi_geostrophic_site.py +66 -0
  1385. skcomplex/models/physics/oceanography/_thermohaline.py +133 -0
  1386. skcomplex/models/physics/pattern_formation/__init__.py +18 -0
  1387. skcomplex/models/physics/pattern_formation/_conserved.py +168 -0
  1388. skcomplex/models/physics/pattern_formation/_ginzburg_landau.py +83 -0
  1389. skcomplex/models/physics/pattern_formation/_ordering.py +183 -0
  1390. skcomplex/models/physics/pattern_formation/_pattern_field.py +37 -0
  1391. skcomplex/models/physics/pattern_formation/_patterns.py +135 -0
  1392. skcomplex/models/physics/seismology/__init__.py +11 -0
  1393. skcomplex/models/physics/seismology/_faults.py +118 -0
  1394. skcomplex/models/physics/seismology/_spring_blocks.py +175 -0
  1395. skcomplex/models/physics/soft_matter/__init__.py +76 -0
  1396. skcomplex/models/physics/soft_matter/_anomalous.py +331 -0
  1397. skcomplex/models/physics/soft_matter/_brownian.py +137 -0
  1398. skcomplex/models/physics/soft_matter/_brownian_particle.py +58 -0
  1399. skcomplex/models/physics/soft_matter/_colored_noise.py +137 -0
  1400. skcomplex/models/physics/soft_matter/_continuous_time_walker.py +62 -0
  1401. skcomplex/models/physics/soft_matter/_diffusion.py +418 -0
  1402. skcomplex/models/physics/soft_matter/_double_well.py +57 -0
  1403. skcomplex/models/physics/soft_matter/_flashing_sawtooth.py +82 -0
  1404. skcomplex/models/physics/soft_matter/_fractional_walker.py +54 -0
  1405. skcomplex/models/physics/soft_matter/_friction.py +214 -0
  1406. skcomplex/models/physics/soft_matter/_levy_flier.py +54 -0
  1407. skcomplex/models/physics/soft_matter/_levy_walker.py +67 -0
  1408. skcomplex/models/physics/soft_matter/_modulated_particle.py +76 -0
  1409. skcomplex/models/physics/soft_matter/_optical_trap.py +93 -0
  1410. skcomplex/models/physics/soft_matter/_ratchets.py +163 -0
  1411. skcomplex/models/physics/soft_matter/_scaled_walker.py +57 -0
  1412. skcomplex/models/physics/soft_matter/_speckle_field.py +81 -0
  1413. skcomplex/models/physics/soft_matter/_thermal_noise.py +52 -0
  1414. skcomplex/models/physics/soft_matter/_tilted_washboard.py +70 -0
  1415. skcomplex/models/physics/soft_matter/_transient_walker.py +61 -0
  1416. skcomplex/models/physics/soft_matter/_traps.py +166 -0
  1417. skcomplex/models/physics/soft_matter/_wall_particle.py +72 -0
  1418. skcomplex/models/physics/statistical_mechanics/__init__.py +114 -0
  1419. skcomplex/models/physics/statistical_mechanics/_absorbing_processes.py +156 -0
  1420. skcomplex/models/physics/statistical_mechanics/_boltzmann_average.py +44 -0
  1421. skcomplex/models/physics/statistical_mechanics/_boltzmann_sum.py +83 -0
  1422. skcomplex/models/physics/statistical_mechanics/_bond_sampling.py +46 -0
  1423. skcomplex/models/physics/statistical_mechanics/_bond_spin.py +76 -0
  1424. skcomplex/models/physics/statistical_mechanics/_contact_site.py +85 -0
  1425. skcomplex/models/physics/statistical_mechanics/_dephasing.py +59 -0
  1426. skcomplex/models/physics/statistical_mechanics/_disk.py +36 -0
  1427. skcomplex/models/physics/statistical_mechanics/_driven_particles.py +250 -0
  1428. skcomplex/models/physics/statistical_mechanics/_energy_level.py +30 -0
  1429. skcomplex/models/physics/statistical_mechanics/_exclusion_hops.py +76 -0
  1430. skcomplex/models/physics/statistical_mechanics/_exclusion_site.py +61 -0
  1431. skcomplex/models/physics/statistical_mechanics/_fully_connected_spins.py +232 -0
  1432. skcomplex/models/physics/statistical_mechanics/_gases.py +156 -0
  1433. skcomplex/models/physics/statistical_mechanics/_graph_spins.py +93 -0
  1434. skcomplex/models/physics/statistical_mechanics/_ising_spin.py +63 -0
  1435. skcomplex/models/physics/statistical_mechanics/_kinetic_temperature.py +66 -0
  1436. skcomplex/models/physics/statistical_mechanics/_master_equations.py +171 -0
  1437. skcomplex/models/physics/statistical_mechanics/_mattis_spin.py +79 -0
  1438. skcomplex/models/physics/statistical_mechanics/_maxwell_boltzmann.py +96 -0
  1439. skcomplex/models/physics/statistical_mechanics/_microstate.py +102 -0
  1440. skcomplex/models/physics/statistical_mechanics/_order_parameter.py +90 -0
  1441. skcomplex/models/physics/statistical_mechanics/_particle_site.py +41 -0
  1442. skcomplex/models/physics/statistical_mechanics/_percolation.py +60 -0
  1443. skcomplex/models/physics/statistical_mechanics/_percolation_site.py +73 -0
  1444. skcomplex/models/physics/statistical_mechanics/_potts_spin.py +58 -0
  1445. skcomplex/models/physics/statistical_mechanics/_processes.py +355 -0
  1446. skcomplex/models/physics/statistical_mechanics/_q2r_spin.py +51 -0
  1447. skcomplex/models/physics/statistical_mechanics/_quantum_spins.py +153 -0
  1448. skcomplex/models/physics/statistical_mechanics/_random_energy.py +68 -0
  1449. skcomplex/models/physics/statistical_mechanics/_reservoir.py +81 -0
  1450. skcomplex/models/physics/statistical_mechanics/_spin_glasses.py +203 -0
  1451. skcomplex/models/physics/statistical_mechanics/_spins.py +200 -0
  1452. skcomplex/models/physics/statistical_mechanics/_susceptibility.py +112 -0
  1453. skcomplex/models/physics/statistical_mechanics/_traps.py +135 -0
  1454. skcomplex/models/physics/statistical_mechanics/_tree_node.py +48 -0
  1455. skcomplex/models/physics/statistical_mechanics/_urns.py +107 -0
  1456. skcomplex/models/physics/statistical_mechanics/_walker.py +81 -0
  1457. skcomplex/models/physics/statistical_mechanics/_walker_view.py +20 -0
  1458. skcomplex/models/physics/statistical_mechanics/_xxz_exchange.py +67 -0
  1459. skcomplex/models/physics/statistical_mechanics/_xy_spin.py +58 -0
  1460. skcomplex/models/physics/statistical_mechanics/_zeeman_field.py +56 -0
  1461. skcomplex/models/physics/statistical_mechanics/_zero_range_hop.py +86 -0
  1462. skcomplex/models/physics/statistical_mechanics/_zero_range_hops.py +81 -0
  1463. skcomplex/models/physics/statistical_mechanics/_zone.py +78 -0
  1464. skcomplex/models/physics/synchronization/__init__.py +64 -0
  1465. skcomplex/models/physics/synchronization/_aggregate_averaging.py +63 -0
  1466. skcomplex/models/physics/synchronization/_amplitude_death.py +278 -0
  1467. skcomplex/models/physics/synchronization/_chaos.py +152 -0
  1468. skcomplex/models/physics/synchronization/_diffusive_coupling.py +69 -0
  1469. skcomplex/models/physics/synchronization/_edge_coupling.py +50 -0
  1470. skcomplex/models/physics/synchronization/_hypergraphs.py +166 -0
  1471. skcomplex/models/physics/synchronization/_integrate_and_fire_oscillator.py +80 -0
  1472. skcomplex/models/physics/synchronization/_kuramoto.py +423 -0
  1473. skcomplex/models/physics/synchronization/_link.py +46 -0
  1474. skcomplex/models/physics/synchronization/_logistic_coupling.py +78 -0
  1475. skcomplex/models/physics/synchronization/_logistic_node.py +59 -0
  1476. skcomplex/models/physics/synchronization/_logistic_unit.py +43 -0
  1477. skcomplex/models/physics/synchronization/_networks.py +184 -0
  1478. skcomplex/models/physics/synchronization/_pulses.py +138 -0
  1479. skcomplex/models/physics/synchronization/_rossler_oscillator.py +95 -0
  1480. skcomplex/models/physics/synchronization/_swarmalator.py +48 -0
  1481. skcomplex/models/physics/synchronization/_swarmalators.py +182 -0
  1482. skcomplex/models/physics/synchronization/_utils.py +29 -0
  1483. skcomplex/models/physics/synchronization/_winfree_mean_field.py +62 -0
  1484. skcomplex/models/physics/waves/__init__.py +23 -0
  1485. skcomplex/models/physics/waves/_charged.py +203 -0
  1486. skcomplex/models/physics/waves/_driven_anchor.py +63 -0
  1487. skcomplex/models/physics/waves/_lattice_hamiltonian.py +60 -0
  1488. skcomplex/models/physics/waves/_position_dephasing.py +64 -0
  1489. skcomplex/models/physics/waves/_quantum.py +125 -0
  1490. skcomplex/models/physics/waves/_strings.py +169 -0
  1491. skcomplex/models/physics/waves/_wave_function.py +79 -0
  1492. skcomplex/models/physics/waves/_wave_string.py +52 -0
  1493. skcomplex/models/social/__init__.py +1 -0
  1494. skcomplex/models/social/cooperation/__init__.py +34 -0
  1495. skcomplex/models/social/cooperation/_contributor.py +62 -0
  1496. skcomplex/models/social/cooperation/_dilemma.py +56 -0
  1497. skcomplex/models/social/cooperation/_hyperedge_goods.py +54 -0
  1498. skcomplex/models/social/cooperation/_hypergraph_games.py +249 -0
  1499. skcomplex/models/social/cooperation/_prisoner.py +56 -0
  1500. skcomplex/models/social/cooperation/_prisoners_dilemma.py +126 -0
  1501. skcomplex/models/social/cooperation/_public_goods.py +54 -0
  1502. skcomplex/models/social/cooperation/_simplicial_dilemma.py +119 -0
  1503. skcomplex/models/social/cooperation/_spatial_games.py +159 -0
  1504. skcomplex/models/social/cooperation/_strategist.py +57 -0
  1505. skcomplex/models/social/cooperation/_strategist_view.py +14 -0
  1506. skcomplex/models/social/cooperation/_tournament.py +126 -0
  1507. skcomplex/models/social/cooperation/_tournaments.py +87 -0
  1508. skcomplex/models/social/crowds/__init__.py +46 -0
  1509. skcomplex/models/social/crowds/_criminal_contagion.py +108 -0
  1510. skcomplex/models/social/crowds/_criminality.py +223 -0
  1511. skcomplex/models/social/crowds/_crowding.py +115 -0
  1512. skcomplex/models/social/crowds/_deterrence.py +101 -0
  1513. skcomplex/models/social/crowds/_evacuation.py +196 -0
  1514. skcomplex/models/social/crowds/_guidance.py +69 -0
  1515. skcomplex/models/social/crowds/_motivation.py +67 -0
  1516. skcomplex/models/social/crowds/_pedestrians.py +85 -0
  1517. skcomplex/models/social/crowds/_recruitment.py +90 -0
  1518. skcomplex/models/social/crowds/_security_agents.py +48 -0
  1519. skcomplex/models/social/crowds/_social_repulsion.py +86 -0
  1520. skcomplex/models/social/crowds/_walking.py +186 -0
  1521. skcomplex/models/social/crowds/_walls.py +69 -0
  1522. skcomplex/models/social/language/__init__.py +13 -0
  1523. skcomplex/models/social/language/_language.py +30 -0
  1524. skcomplex/models/social/language/_least_effort.py +69 -0
  1525. skcomplex/models/social/language/_word.py +39 -0
  1526. skcomplex/models/social/language/_word_frequencies.py +48 -0
  1527. skcomplex/models/social/opinion_dynamics/__init__.py +142 -0
  1528. skcomplex/models/social/opinion_dynamics/_adopter.py +61 -0
  1529. skcomplex/models/social/opinion_dynamics/_adopter_view.py +14 -0
  1530. skcomplex/models/social/opinion_dynamics/_adoption.py +83 -0
  1531. skcomplex/models/social/opinion_dynamics/_axelrod.py +160 -0
  1532. skcomplex/models/social/opinion_dynamics/_believer.py +71 -0
  1533. skcomplex/models/social/opinion_dynamics/_believer_view.py +16 -0
  1534. skcomplex/models/social/opinion_dynamics/_bounded_confidence.py +126 -0
  1535. skcomplex/models/social/opinion_dynamics/_citizen.py +49 -0
  1536. skcomplex/models/social/opinion_dynamics/_citizen_view.py +12 -0
  1537. skcomplex/models/social/opinion_dynamics/_club_member.py +78 -0
  1538. skcomplex/models/social/opinion_dynamics/_coevolution.py +187 -0
  1539. skcomplex/models/social/opinion_dynamics/_coevolving_voter.py +63 -0
  1540. skcomplex/models/social/opinion_dynamics/_cognition.py +73 -0
  1541. skcomplex/models/social/opinion_dynamics/_complex_agent.py +58 -0
  1542. skcomplex/models/social/opinion_dynamics/_complex_agent_view.py +13 -0
  1543. skcomplex/models/social/opinion_dynamics/_confidence_coupling.py +76 -0
  1544. skcomplex/models/social/opinion_dynamics/_confident.py +50 -0
  1545. skcomplex/models/social/opinion_dynamics/_conventions.py +44 -0
  1546. skcomplex/models/social/opinion_dynamics/_conversations.py +116 -0
  1547. skcomplex/models/social/opinion_dynamics/_cultural_influence.py +93 -0
  1548. skcomplex/models/social/opinion_dynamics/_diffusion.py +205 -0
  1549. skcomplex/models/social/opinion_dynamics/_discussant.py +60 -0
  1550. skcomplex/models/social/opinion_dynamics/_discussant_view.py +14 -0
  1551. skcomplex/models/social/opinion_dynamics/_discussions.py +51 -0
  1552. skcomplex/models/social/opinion_dynamics/_encounters.py +48 -0
  1553. skcomplex/models/social/opinion_dynamics/_hypergraph_consensus.py +106 -0
  1554. skcomplex/models/social/opinion_dynamics/_influencee.py +70 -0
  1555. skcomplex/models/social/opinion_dynamics/_influencee_view.py +16 -0
  1556. skcomplex/models/social/opinion_dynamics/_kinetic_opinion.py +287 -0
  1557. skcomplex/models/social/opinion_dynamics/_majority_voter.py +43 -0
  1558. skcomplex/models/social/opinion_dynamics/_namer.py +53 -0
  1559. skcomplex/models/social/opinion_dynamics/_namer_view.py +13 -0
  1560. skcomplex/models/social/opinion_dynamics/_naming_games.py +68 -0
  1561. skcomplex/models/social/opinion_dynamics/_opinion.py +39 -0
  1562. skcomplex/models/social/opinion_dynamics/_persuader.py +52 -0
  1563. skcomplex/models/social/opinion_dynamics/_persuader_view.py +12 -0
  1564. skcomplex/models/social/opinion_dynamics/_persuasion.py +247 -0
  1565. skcomplex/models/social/opinion_dynamics/_random_pairs.py +53 -0
  1566. skcomplex/models/social/opinion_dynamics/_schedule.py +39 -0
  1567. skcomplex/models/social/opinion_dynamics/_separation.py +71 -0
  1568. skcomplex/models/social/opinion_dynamics/_social_impact.py +60 -0
  1569. skcomplex/models/social/opinion_dynamics/_standardization.py +212 -0
  1570. skcomplex/models/social/opinion_dynamics/_thinker.py +61 -0
  1571. skcomplex/models/social/opinion_dynamics/_thinker_view.py +15 -0
  1572. skcomplex/models/social/opinion_dynamics/_three_body_consensus.py +71 -0
  1573. skcomplex/models/social/opinion_dynamics/_tie.py +21 -0
  1574. skcomplex/models/social/opinion_dynamics/_variant_voter.py +67 -0
  1575. skcomplex/models/social/opinion_dynamics/_variant_voter_view.py +14 -0
  1576. skcomplex/models/social/opinion_dynamics/_variant_voting.py +63 -0
  1577. skcomplex/models/social/opinion_dynamics/_village.py +61 -0
  1578. skcomplex/models/social/opinion_dynamics/_village_view.py +14 -0
  1579. skcomplex/models/social/opinion_dynamics/_voter.py +49 -0
  1580. skcomplex/models/social/opinion_dynamics/_voter_imitation.py +48 -0
  1581. skcomplex/models/social/opinion_dynamics/_voter_view.py +12 -0
  1582. skcomplex/models/social/opinion_dynamics/_voters.py +197 -0
  1583. skcomplex/models/social/organizations/__init__.py +68 -0
  1584. skcomplex/models/social/organizations/_arms_race.py +34 -0
  1585. skcomplex/models/social/organizations/_burden.py +38 -0
  1586. skcomplex/models/social/organizations/_city_resident.py +41 -0
  1587. skcomplex/models/social/organizations/_contender_view.py +14 -0
  1588. skcomplex/models/social/organizations/_contest.py +32 -0
  1589. skcomplex/models/social/organizations/_daily_movements.py +144 -0
  1590. skcomplex/models/social/organizations/_eater.py +282 -0
  1591. skcomplex/models/social/organizations/_eater_view.py +24 -0
  1592. skcomplex/models/social/organizations/_employee.py +173 -0
  1593. skcomplex/models/social/organizations/_employee_view.py +35 -0
  1594. skcomplex/models/social/organizations/_employment.py +127 -0
  1595. skcomplex/models/social/organizations/_execution.py +79 -0
  1596. skcomplex/models/social/organizations/_gravity_contact.py +69 -0
  1597. skcomplex/models/social/organizations/_hierarchies.py +174 -0
  1598. skcomplex/models/social/organizations/_obesity.py +131 -0
  1599. skcomplex/models/social/organizations/_premises.py +75 -0
  1600. skcomplex/models/social/organizations/_premises_view.py +16 -0
  1601. skcomplex/models/social/organizations/_queues.py +52 -0
  1602. skcomplex/models/social/organizations/_restaurant.py +59 -0
  1603. skcomplex/models/social/organizations/_restaurant_view.py +14 -0
  1604. skcomplex/models/social/organizations/_sabotage.py +183 -0
  1605. skcomplex/models/social/organizations/_supervisor.py +25 -0
  1606. skcomplex/models/social/organizations/_task.py +65 -0
  1607. skcomplex/models/social/organizations/_task_view.py +15 -0
  1608. skcomplex/models/social/organizations/_trafficking.py +184 -0
  1609. skcomplex/models/social/organizations/_traps.py +322 -0
  1610. skcomplex/models/social/organizations/_traveller.py +55 -0
  1611. skcomplex/models/social/organizations/_traveller_view.py +13 -0
  1612. skcomplex/models/social/organizations/_urban_scaling.py +72 -0
  1613. skcomplex/models/social/segregation/__init__.py +21 -0
  1614. skcomplex/models/social/segregation/_block_moves.py +127 -0
  1615. skcomplex/models/social/segregation/_blocks.py +111 -0
  1616. skcomplex/models/social/segregation/_dweller.py +70 -0
  1617. skcomplex/models/social/segregation/_dweller_view.py +16 -0
  1618. skcomplex/models/social/segregation/_relocation.py +60 -0
  1619. skcomplex/models/social/segregation/_resident.py +55 -0
  1620. skcomplex/models/social/segregation/_resident_view.py +13 -0
  1621. skcomplex/models/social/segregation/_schelling.py +75 -0
  1622. skcomplex/models/social/spreading/__init__.py +37 -0
  1623. skcomplex/models/social/spreading/_cascades.py +118 -0
  1624. skcomplex/models/social/spreading/_exposure.py +166 -0
  1625. skcomplex/models/social/spreading/_growing_word.py +55 -0
  1626. skcomplex/models/social/spreading/_growing_word_view.py +13 -0
  1627. skcomplex/models/social/spreading/_growth.py +52 -0
  1628. skcomplex/models/social/spreading/_infective.py +55 -0
  1629. skcomplex/models/social/spreading/_listeners.py +41 -0
  1630. skcomplex/models/social/spreading/_participant.py +50 -0
  1631. skcomplex/models/social/spreading/_rumour_contacts.py +81 -0
  1632. skcomplex/models/social/spreading/_rumours.py +57 -0
  1633. skcomplex/models/social/spreading/_simplicial.py +120 -0
  1634. skcomplex/models/social/spreading/_simplicial_infection.py +64 -0
  1635. skcomplex/models/social/spreading/_threshold_activation.py +50 -0
  1636. skcomplex/models/social/spreading/_threshold_node_view.py +13 -0
  1637. skcomplex/models/social/spreading/_writing.py +86 -0
  1638. skcomplex/models/types.py +10 -0
  1639. skcomplex/specs/__init__.py +198 -0
  1640. skcomplex/specs/_accelerated_spec.py +46 -0
  1641. skcomplex/specs/_agent_snapshot_spec.py +34 -0
  1642. skcomplex/specs/_agent_state_spec.py +26 -0
  1643. skcomplex/specs/_arguments_spec.py +60 -0
  1644. skcomplex/specs/_axis_spec.py +59 -0
  1645. skcomplex/specs/_base_record_spec.py +16 -0
  1646. skcomplex/specs/_base_spec.py +73 -0
  1647. skcomplex/specs/_base_structure_spec.py +173 -0
  1648. skcomplex/specs/_batch_matching_spec.py +23 -0
  1649. skcomplex/specs/_breakpoints_spec.py +58 -0
  1650. skcomplex/specs/_call_spec.py +64 -0
  1651. skcomplex/specs/_capacity_rows_spec.py +120 -0
  1652. skcomplex/specs/_cardinality_spec.py +58 -0
  1653. skcomplex/specs/_cascade_record_spec.py +36 -0
  1654. skcomplex/specs/_clamp_spec.py +54 -0
  1655. skcomplex/specs/_clause_spec.py +42 -0
  1656. skcomplex/specs/_compiled_flow_spec.py +20 -0
  1657. skcomplex/specs/_composed_rule_spec.py +33 -0
  1658. skcomplex/specs/_continuous_matching_spec.py +48 -0
  1659. skcomplex/specs/_control_solution_spec.py +54 -0
  1660. skcomplex/specs/_control_spec.py +21 -0
  1661. skcomplex/specs/_covariance_adaptation_spec.py +25 -0
  1662. skcomplex/specs/_dataset_spec.py +85 -0
  1663. skcomplex/specs/_delay_spec.py +27 -0
  1664. skcomplex/specs/_dialect_spec.py +207 -0
  1665. skcomplex/specs/_differential_evolution_spec.py +33 -0
  1666. skcomplex/specs/_direction_spec.py +44 -0
  1667. skcomplex/specs/_draw_spec.py +273 -0
  1668. skcomplex/specs/_entry_spec.py +403 -0
  1669. skcomplex/specs/_event_record_spec.py +37 -0
  1670. skcomplex/specs/_evolution_strategy_spec.py +25 -0
  1671. skcomplex/specs/_extremal_record_spec.py +32 -0
  1672. skcomplex/specs/_fractional_rows_spec.py +33 -0
  1673. skcomplex/specs/_fractional_state_spec.py +30 -0
  1674. skcomplex/specs/_held_reduction_spec.py +29 -0
  1675. skcomplex/specs/_hilbert_spec.py +75 -0
  1676. skcomplex/specs/_hyperedge_reduction_spec.py +38 -0
  1677. skcomplex/specs/_issue_spec.py +52 -0
  1678. skcomplex/specs/_iterative_matching_spec.py +39 -0
  1679. skcomplex/specs/_jump_channels_spec.py +40 -0
  1680. skcomplex/specs/_jump_path_spec.py +29 -0
  1681. skcomplex/specs/_layer_spec.py +47 -0
  1682. skcomplex/specs/_layout_spec.py +158 -0
  1683. skcomplex/specs/_local_operator_spec.py +72 -0
  1684. skcomplex/specs/_lookup_spec.py +33 -0
  1685. skcomplex/specs/_loop_spec.py +17 -0
  1686. skcomplex/specs/_lowered_functions_spec.py +71 -0
  1687. skcomplex/specs/_match_spec.py +37 -0
  1688. skcomplex/specs/_matrix_law_spec.py +31 -0
  1689. skcomplex/specs/_move_spec.py +69 -0
  1690. skcomplex/specs/_neighbor_read_spec.py +83 -0
  1691. skcomplex/specs/_neighbor_reduction_spec.py +39 -0
  1692. skcomplex/specs/_network_rows_spec.py +124 -0
  1693. skcomplex/specs/_network_snapshot_spec.py +61 -0
  1694. skcomplex/specs/_noise_process_spec.py +41 -0
  1695. skcomplex/specs/_objective_spec.py +39 -0
  1696. skcomplex/specs/_observable_spec.py +79 -0
  1697. skcomplex/specs/_operator_spec.py +170 -0
  1698. skcomplex/specs/_orders_spec.py +16 -0
  1699. skcomplex/specs/_outer_totalistic_spec.py +38 -0
  1700. skcomplex/specs/_owners_spec.py +28 -0
  1701. skcomplex/specs/_pair_read_spec.py +38 -0
  1702. skcomplex/specs/_parameter_spec.py +81 -0
  1703. skcomplex/specs/_parameters_spec.py +26 -0
  1704. skcomplex/specs/_particle_swarm_spec.py +33 -0
  1705. skcomplex/specs/_partner_spec.py +98 -0
  1706. skcomplex/specs/_partner_switch_spec.py +39 -0
  1707. skcomplex/specs/_phase_spec.py +61 -0
  1708. skcomplex/specs/_phases_schedule_spec.py +59 -0
  1709. skcomplex/specs/_plan_spec.py +18 -0
  1710. skcomplex/specs/_planned_partition_spec.py +30 -0
  1711. skcomplex/specs/_queue_spec.py +46 -0
  1712. skcomplex/specs/_radius_spec.py +66 -0
  1713. skcomplex/specs/_random_search_spec.py +51 -0
  1714. skcomplex/specs/_read_spec.py +45 -0
  1715. skcomplex/specs/_reduction_spec.py +48 -0
  1716. skcomplex/specs/_renewal_record_spec.py +49 -0
  1717. skcomplex/specs/_requirement_spec.py +32 -0
  1718. skcomplex/specs/_role_spec.py +54 -0
  1719. skcomplex/specs/_run_result_spec.py +52 -0
  1720. skcomplex/specs/_run_state_spec.py +41 -0
  1721. skcomplex/specs/_sampled_draw_spec.py +32 -0
  1722. skcomplex/specs/_sampler_spec.py +57 -0
  1723. skcomplex/specs/_samples_spec.py +29 -0
  1724. skcomplex/specs/_schedule_spec.py +17 -0
  1725. skcomplex/specs/_sector_spec.py +31 -0
  1726. skcomplex/specs/_segment_spec.py +21 -0
  1727. skcomplex/specs/_series_spec.py +29 -0
  1728. skcomplex/specs/_signature_spec.py +55 -0
  1729. skcomplex/specs/_snapshots_spec.py +56 -0
  1730. skcomplex/specs/_stable_matching_spec.py +58 -0
  1731. skcomplex/specs/_state_spec.py +138 -0
  1732. skcomplex/specs/_step_spec.py +39 -0
  1733. skcomplex/specs/_structure_state_spec.py +30 -0
  1734. skcomplex/specs/_support_spec.py +76 -0
  1735. skcomplex/specs/_symmetry_spec.py +59 -0
  1736. skcomplex/specs/_table_spec.py +42 -0
  1737. skcomplex/specs/_table_values_spec.py +36 -0
  1738. skcomplex/specs/_tensor_spec.py +197 -0
  1739. skcomplex/specs/_topology_request_spec.py +97 -0
  1740. skcomplex/specs/_totalistic_spec.py +37 -0
  1741. skcomplex/specs/_unknown_spec.py +22 -0
  1742. skcomplex/specs/_validation_report_spec.py +62 -0
  1743. skcomplex/specs/_variable_spec.py +124 -0
  1744. skcomplex/specs/_visual_spec.py +30 -0
  1745. skcomplex/specs/_weight_spec.py +16 -0
  1746. skcomplex/specs/_wiener_block_spec.py +31 -0
  1747. skcomplex/specs/_wiener_process_spec.py +54 -0
  1748. skcomplex/types.py +140 -0
@@ -0,0 +1,105 @@
1
+ """Define equation laws, implicit relations in which the highest time derivatives of states appear."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+
7
+ from sage.all__sagemath_symbolics import SR, Expression
8
+
9
+ from ...errors import ValidationError
10
+ from ...specs import RequirementSpec
11
+ from ..spaces import ContinuousTime, StaticTime
12
+ from ._base import BaseLaw
13
+
14
+
15
+ class EquationLaw(BaseLaw):
16
+ """Implicit relation in which the highest time derivatives of states appear, such as Newton's second law.
17
+
18
+ The states are Sage functions of time, such as `function('theta')(t)`, and their derivatives are Sage derivatives,
19
+ `theta.diff(t, 2)`. The compiler solves all equations of a system jointly for the highest derivatives, which must
20
+ appear linearly, and adds the rate laws on the same states to the solution. An equation may name the state whose
21
+ equation it is, its `target`, and the equations of one target, from any element or interaction, add into one
22
+ before the solve, so a term of it may hold no highest derivative, such as the part a coupling Lagrangian adds to
23
+ the Euler-Lagrange equation of a coordinate.
24
+
25
+ Args:
26
+ lhs:
27
+ The left side, or a Sage relation `lhs == rhs`.
28
+
29
+ rhs:
30
+ The right side, or `None` when `lhs` is a relation.
31
+
32
+ target:
33
+ The state whose equation this is, so that the equations of one target add, or `None` for an equation of
34
+ its own.
35
+
36
+ label:
37
+ The name of the law, or the empty string for a law without one.
38
+
39
+ Attributes:
40
+ lhs_:
41
+ The left side.
42
+
43
+ rhs_:
44
+ The right side.
45
+
46
+ Examples:
47
+ >>> from sage.all__sagemath_symbolics import function, sin, var
48
+ >>> from skcomplex.core.laws import EquationLaw
49
+ >>> t, g, l = var('t g l')
50
+ >>> theta = function('theta')(t)
51
+ >>> EquationLaw(l * theta.diff(t, 2) == -g * sin(theta)).check().prepare().rhs_
52
+ -g*sin(theta(t))
53
+ """
54
+
55
+ def __init__(self, lhs: object, rhs: object = None, *, target: object = None, label: str = '') -> None:
56
+ super().__init__(label)
57
+ self.lhs = lhs
58
+ self.rhs = rhs
59
+ self.target = target
60
+
61
+ def _get_targets(self) -> tuple[object, ...]:
62
+ """Return no states, since the compiler finds the states whose derivatives the equation solves for."""
63
+ return ()
64
+
65
+ def _get_requirements(self) -> RequirementSpec:
66
+ """Return what the law requires of a system: continuous or static time."""
67
+ return RequirementSpec(time=(ContinuousTime, StaticTime))
68
+
69
+ def _get_sides(self) -> tuple[Expression, Expression]:
70
+ """Return the two sides of the equation as expressions, splitting a relation given as the left side."""
71
+ if self.rhs is None and isinstance(self.lhs, Expression):
72
+ return self.lhs.lhs(), self.lhs.rhs()
73
+ return SR(self.lhs), SR(self.rhs)
74
+
75
+ def _check(self) -> None:
76
+ """Raise an error for a function as a side, or an equation without a right side that is not a relation."""
77
+ if any(callable(item) and not isinstance(item, Expression) for item in (self.lhs, self.rhs)):
78
+ error_msg = (
79
+ 'Equations are solved symbolically, so a side of an equation cannot be a function. Use a `RateLaw` of '
80
+ 'the highest derivative with a function as its value.'
81
+ )
82
+ raise ValidationError(error_msg)
83
+ if self.rhs is None and not (isinstance(self.lhs, Expression) and self.lhs.is_relational()):
84
+ error_msg = 'An equation takes a left and a right side, or one relation `lhs == rhs`.'
85
+ raise ValidationError(error_msg)
86
+
87
+ def _prepare(self, context: str | None = None) -> None:
88
+ """Set `lhs_` and `rhs_`, the two sides, besides the attributes of every law.
89
+
90
+ Args:
91
+ context:
92
+ The path of the element or interaction that returns the law, or `None`.
93
+ """
94
+ super()._prepare(context)
95
+ self.lhs_, self.rhs_ = self._get_sides()
96
+
97
+ def _run(self, inputs: object) -> None:
98
+ """Set `value_` to the residual `lhs - rhs` at given values of the symbols it reads.
99
+
100
+ Args:
101
+ inputs:
102
+ A mapping from the name of every symbol the law reads to its value.
103
+ """
104
+ lhs, rhs = self._get_sides()
105
+ self.value_ = self._evaluate(lhs - rhs, inputs)
@@ -0,0 +1,94 @@
1
+ """Define extremal laws, which update the site with the smallest or largest value of a state and its neighbours."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+ from collections.abc import Callable
7
+
8
+ from sage.all__sagemath_symbolics import Expression
9
+
10
+ from ...errors import ValidationError
11
+ from ...specs import RequirementSpec
12
+ from ..spaces import BaseNeighborhood, DiscreteTime, LatticeSpace, NetworkSpace
13
+ from ._base import BaseLaw
14
+
15
+ EXTREMA = ('min', 'max')
16
+
17
+
18
+ class ExtremalLaw(BaseLaw):
19
+ """Rule applied to the site with the smallest or largest value of a key state and to its neighbours.
20
+
21
+ Every application finds the extremal site, with ties broken by the random stream of the simulation, gathers the
22
+ site and its neighbours without duplicates, the site first, and calls `f(*values, random, **parameters)` with one
23
+ array per target and a uniform random array of the same length. Every application is recorded as an event.
24
+
25
+ Args:
26
+ targets:
27
+ The symbol of a lattice state, or a tuple of them that the rule updates together.
28
+
29
+ over:
30
+ The neighbourhood of the extremal site that the rule also updates.
31
+
32
+ rule:
33
+ The function `f(*values, random, **parameters)`.
34
+
35
+ key:
36
+ The lattice state whose extremum is searched, or `None` for the first target.
37
+
38
+ extremum:
39
+ `'min'` for the smallest value or `'max'` for the largest.
40
+
41
+ repeat:
42
+ The number of applications per step.
43
+
44
+ label:
45
+ The name of the events, or the empty string for the path of the element.
46
+
47
+ Examples:
48
+ >>> from sage.all__sagemath_symbolics import var
49
+ >>> from skcomplex.core.laws import ExtremalLaw
50
+ >>> from skcomplex.core.spaces import BoxNeighborhood
51
+ >>> law = ExtremalLaw(var('fitness'), BoxNeighborhood(), lambda values, *, random: random).check()
52
+ >>> law.extremum, law.repeat
53
+ ('min', 1)
54
+ """
55
+
56
+ def __init__(
57
+ self,
58
+ targets: Expression | tuple[Expression, ...],
59
+ over: BaseNeighborhood,
60
+ rule: Callable[..., object],
61
+ *,
62
+ key: Expression | None = None,
63
+ extremum: str = 'min',
64
+ repeat: int = 1,
65
+ label: str = '',
66
+ ) -> None:
67
+ super().__init__(label)
68
+ self.targets = targets
69
+ self.over = over
70
+ self.rule = rule
71
+ self.key = key
72
+ self.extremum = extremum
73
+ self.repeat = repeat
74
+
75
+ def _get_targets(self) -> tuple[object, ...]:
76
+ """Return the lattice states the rule updates."""
77
+ return self.targets if isinstance(self.targets, tuple) else (self.targets,)
78
+
79
+ def _get_key(self) -> object:
80
+ """Return the lattice state whose extremum is searched."""
81
+ return self._get_targets()[0] if self.key is None else self.key
82
+
83
+ def _get_requirements(self) -> RequirementSpec:
84
+ """Return what the law requires of a system: discrete time on a lattice or a network."""
85
+ return RequirementSpec(time=(DiscreteTime,), space=(LatticeSpace, NetworkSpace))
86
+
87
+ def _check(self) -> None:
88
+ """Raise an error for an unknown extremum or fewer than one application per step."""
89
+ if self.extremum not in EXTREMA:
90
+ error_msg = f'Unknown extremum {self.extremum!r}. Use one of {", ".join(EXTREMA)}.'
91
+ raise ValidationError(error_msg)
92
+ if int(self.repeat) < 1:
93
+ error_msg = f'An extremal law applies at least once per step, but its repeat is {self.repeat}.'
94
+ raise ValidationError(error_msg)
@@ -0,0 +1,108 @@
1
+ """Define flux laws, the fluxes of the conserved states of finite-volume fields."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+
7
+ from ...errors import ValidationError
8
+ from ...specs import RequirementSpec
9
+ from ..spaces import ContinuousTime, LatticeSpace, MeshSpace
10
+ from ..types import Target
11
+ from ._base import BaseLaw
12
+
13
+ LIMITERS = ('minmod', 'van-leer', None)
14
+ RIEMANN_SOLVERS = ('rusanov', 'godunov')
15
+
16
+
17
+ class FluxLaw(BaseLaw):
18
+ """Flux of a conserved state of a finite-volume field, `du/dt + divergence(flux) = 0`.
19
+
20
+ The flux is a symbolic expression of the field's states for one dimension, or one expression per dimension. The
21
+ states of a field with fluxes form a system of conservation laws, whose wave speeds come from the eigenvalues of
22
+ the flux Jacobians. Rate laws on the same states add sources.
23
+
24
+ Args:
25
+ target:
26
+ The symbol of the conserved state.
27
+
28
+ flux:
29
+ The flux, an expression or one expression per dimension.
30
+
31
+ limiter:
32
+ The slope limiter of the MUSCL reconstruction, `'minmod'`, `'van-leer'`, or `None` for first order.
33
+
34
+ riemann:
35
+ The numerical flux, `'rusanov'` or `'godunov'`, the exact solver for one state.
36
+
37
+ speed:
38
+ A function `f(t, values)` of the mapping from the name of every conserved state and parameter of the flux
39
+ to its array over the cells, which returns the wave speed of the Rusanov flux, or one function per
40
+ dimension. `None` takes the speeds from the eigenvalues of the flux Jacobians.
41
+
42
+ label:
43
+ The name of the law, or the empty string for a law without one.
44
+
45
+ Examples:
46
+ >>> from sage.all__sagemath_symbolics import var
47
+ >>> from skcomplex.core.laws import FluxLaw
48
+ >>> u = var('u')
49
+ >>> FluxLaw(u, u**2 / 2, riemann='godunov').check().prepare().run({'u': 2.0}).value_
50
+ 2.0
51
+ """
52
+
53
+ def __init__(
54
+ self,
55
+ target: Target,
56
+ flux: object,
57
+ *,
58
+ limiter: str | None = 'minmod',
59
+ riemann: str = 'rusanov',
60
+ speed: object = None,
61
+ label: str = '',
62
+ ) -> None:
63
+ super().__init__(label)
64
+ self.target = target
65
+ self.flux = flux
66
+ self.limiter = limiter
67
+ self.riemann = riemann
68
+ self.speed = speed
69
+
70
+ def _get_targets(self) -> tuple[object, ...]:
71
+ """Return the conserved state."""
72
+ return (self.target,)
73
+
74
+ def _get_requirements(self) -> RequirementSpec:
75
+ """Return what the law requires of a system: continuous time on a lattice or a mesh."""
76
+ return RequirementSpec(time=(ContinuousTime,), space=(LatticeSpace, MeshSpace))
77
+
78
+ def _check(self) -> None:
79
+ """Raise an error for an unknown limiter or numerical flux, or for a flux or a speed it cannot take."""
80
+ self._check_array('flux')
81
+ if self._is_function(self.flux):
82
+ error_msg = (
83
+ f'The {self.riemann} flux of a FluxLaw is a function, but a flux is symbolic only: the wave speeds and '
84
+ 'the critical points of the Godunov flux come from its derivative. Give an expression with `speed=` '
85
+ 'for a wave speed that is a function, or a function as a RateLaw.'
86
+ )
87
+ raise ValidationError(error_msg)
88
+ if self.speed is not None and self.riemann != 'rusanov':
89
+ error_msg = (
90
+ f"A FluxLaw with the {self.riemann} flux takes no `speed`, because the Godunov flux is exact and "
91
+ "symbolic only. Use riemann='rusanov'."
92
+ )
93
+ raise ValidationError(error_msg)
94
+ if self.limiter not in LIMITERS:
95
+ error_msg = f"Unknown limiter {self.limiter!r}. Use 'minmod', 'van-leer', or None."
96
+ raise ValidationError(error_msg)
97
+ if self.riemann not in RIEMANN_SOLVERS:
98
+ error_msg = f"Unknown numerical flux {self.riemann!r}. Use 'rusanov' or 'godunov'."
99
+ raise ValidationError(error_msg)
100
+
101
+ def _run(self, inputs: object) -> None:
102
+ """Set `value_` to the flux at given values of the symbols it reads.
103
+
104
+ Args:
105
+ inputs:
106
+ A mapping from the name of every symbol the law reads to its value.
107
+ """
108
+ self.value_ = self._evaluate(self.flux, inputs)
@@ -0,0 +1,65 @@
1
+ """Define fractional noise laws, amplitudes of the fractional Brownian motions that drive states."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+
7
+ from ...errors import ValidationError
8
+ from ..types import Target
9
+ from ._noise import NoiseLaw
10
+
11
+
12
+ class FractionalNoiseLaw(NoiseLaw):
13
+ """Amplitude of a fractional Brownian motion of a Hurst index that drives the highest time derivative of a state.
14
+
15
+ The increments are fractional Gaussian noise, correlated over the whole run. A Hurst index of 1/2 gives the
16
+ process of a `NoiseLaw`, below 1/2 the increments anticorrelate, and above 1/2 they correlate. For other indices
17
+ than 1/2 the amplitude must not depend on any state.
18
+
19
+ Args:
20
+ target:
21
+ The symbol of a scalar state, or the column of symbols of a vector state.
22
+
23
+ value:
24
+ A symbolic expression of parameters and time. A vector target gets one fractional Brownian motion per
25
+ component.
26
+
27
+ order:
28
+ The order of the derivative the noise drives, checked against the state's order, or `None` to use it.
29
+
30
+ hurst:
31
+ The Hurst index `0 < H < 1`, a number or a parameter.
32
+
33
+ convention:
34
+ The stochastic calculus of the law, `'ito'`, `'stratonovich'`, or `'anti-ito'`, as for `NoiseLaw`.
35
+
36
+ label:
37
+ The name of the law, or the empty string for a law without one.
38
+
39
+ Examples:
40
+ >>> from sage.all__sagemath_symbolics import var
41
+ >>> from skcomplex.core.laws import FractionalNoiseLaw
42
+ >>> x, D = var('x'), var('D')
43
+ >>> FractionalNoiseLaw(x, 2 * D, hurst=0.7).check().hurst
44
+ 0.7
45
+ """
46
+
47
+ def __init__(
48
+ self,
49
+ target: Target,
50
+ value: object,
51
+ order: int | None = None,
52
+ *,
53
+ hurst: object,
54
+ convention: str = 'ito',
55
+ label: str = '',
56
+ ) -> None:
57
+ super().__init__(target, value, order, convention=convention, label=label)
58
+ self.hurst = hurst
59
+
60
+ def _check(self) -> None:
61
+ """Raise an error for an invalid noise or a numeric Hurst index outside `(0, 1)`."""
62
+ super()._check()
63
+ if isinstance(self.hurst, int | float) and not 0 < self.hurst < 1:
64
+ error_msg = f'The Hurst index of the noise of {self.target} is {self.hurst}. Give a number in (0, 1).'
65
+ raise ValidationError(error_msg)
@@ -0,0 +1,66 @@
1
+ """Define generator laws, the Hermitian operators that add up to the generator of a linear evolution."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+
7
+ from sage.all__sagemath_symbolics import Expression
8
+
9
+ from ...errors import ValidationError
10
+ from ...specs import RequirementSpec
11
+ from ..spaces import ContinuousTime
12
+ from ._base import BaseLaw
13
+ from .utils import has_operator
14
+
15
+
16
+ class GeneratorLaw(BaseLaw):
17
+ """Hermitian operator that adds to the generator `H` of the linear evolution `dx/dt = -i H x` on a tensor product.
18
+
19
+ Args:
20
+ operator:
21
+ The Hermitian operator, an expression of local operators of the namespaces the law receives.
22
+
23
+ label:
24
+ The name of the law, or the empty string for a law without one.
25
+
26
+ Examples:
27
+ >>> from sage.all__sagemath_symbolics import SR, var
28
+ >>> from skcomplex.core.laws import GeneratorLaw
29
+ >>> from skcomplex.core.laws.utils import local_operator
30
+ >>> z = local_operator(SR.symbol('q'), SR.symbol('z'))
31
+ >>> GeneratorLaw(var('h') * z).check().prepare().run({'h': 0.5}).value_
32
+ 0.5*local_operator(q, z)
33
+ """
34
+
35
+ def __init__(self, operator: object, *, label: str = '') -> None:
36
+ super().__init__(label)
37
+ self.operator = operator
38
+
39
+ def _get_targets(self) -> tuple[object, ...]:
40
+ """Return no states, since the generator changes the operator state of the whole system."""
41
+ return ()
42
+
43
+ def _get_requirements(self) -> RequirementSpec:
44
+ """Return what the law requires of a system: continuous time."""
45
+ return RequirementSpec(time=(ContinuousTime,))
46
+
47
+ def _check(self) -> None:
48
+ """Raise an error for a function as the operator, or an operator without local operators."""
49
+ if callable(self.operator) and not isinstance(self.operator, Expression):
50
+ error_msg = (
51
+ 'Generators need symbolic operators, so a generator cannot be a function. Give the coefficient '
52
+ 'as a `series` of time, or use a `RateLaw` with a function on the states of a classical system.'
53
+ )
54
+ raise ValidationError(error_msg)
55
+ if not has_operator(self.operator):
56
+ error_msg = f'A generator takes an operator built from local operators, but got {self.operator!r}.'
57
+ raise ValidationError(error_msg)
58
+
59
+ def _run(self, inputs: object) -> None:
60
+ """Set `value_` to the operator with its coefficients at given values of the symbols they read.
61
+
62
+ Args:
63
+ inputs:
64
+ A mapping from the name of every symbol the law reads to its value.
65
+ """
66
+ self.value_ = self._evaluate(self.operator, inputs)
@@ -0,0 +1,89 @@
1
+ """Define gradient-step laws, optimizer steps on the adaptive parameters of a nested system once per epoch."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+ from collections.abc import Sequence
7
+
8
+ from ...specs import DatasetSpec, ObservableSpec, RequirementSpec
9
+ from ..spaces import DiscreteTime
10
+ from ._base import BaseLaw
11
+
12
+
13
+ class GradientStepLaw(BaseLaw):
14
+ """Optimizer steps on adaptive parameters of a nested system, on the gradient of a loss over unrolled runs.
15
+
16
+ One step of the discrete time that holds the law is one epoch. In an epoch the sequences of the dataset are shuffled
17
+ and split into batches, and for every batch the nested system runs from its initial states over every sequence,
18
+ the loss is averaged over the steps and sequences with the step weights, and the optimizer changes the trained
19
+ parameters by the gradient of that mean. The gradient is exact, by automatic differentiation of the unrolled runs.
20
+ The law records the mean batch loss of the epoch and every metric over the whole dataset at the end of the epoch.
21
+
22
+ Args:
23
+ trained:
24
+ The dotted paths of the adaptive parameters of the nested system that the law trains, such as
25
+ `readout.W`.
26
+
27
+ loss:
28
+ The observable of the nested system whose weighted mean over the steps of a batch is minimized.
29
+
30
+ data:
31
+ The sequences of the parameters of the nested system that set its inputs and targets at every step.
32
+
33
+ optimizer:
34
+ The name of the optimizer, `'sgd'`, `'momentum'`, `'rmsprop'`, or `'adam'`.
35
+
36
+ batch_size:
37
+ The number of sequences of a batch. The last batch of an epoch holds the rest.
38
+
39
+ truncation:
40
+ The number of inner steps the gradient flows back through the inner states, or `None` for the whole run.
41
+
42
+ metrics:
43
+ The observables of the nested system recorded at the end of every epoch, as weighted means over every
44
+ sequence.
45
+
46
+ label:
47
+ The name of the law, or the empty string for a law without one.
48
+
49
+ Examples:
50
+ >>> import numpy as np
51
+ >>> from skcomplex.core.laws import GradientStepLaw
52
+ >>> from skcomplex.specs import DatasetSpec, ObservableSpec
53
+ >>> data = DatasetSpec({'inputs.x': np.zeros((4, 3, 1))})
54
+ >>> law = GradientStepLaw(['readout.W'], ObservableSpec('error', 0.0), data, 'adam', 2).check()
55
+ >>> law.prepare('training').targets_
56
+ ()
57
+ """
58
+
59
+ def __init__(
60
+ self,
61
+ trained: Sequence[str],
62
+ loss: ObservableSpec,
63
+ data: DatasetSpec,
64
+ optimizer: str,
65
+ batch_size: int,
66
+ *,
67
+ truncation: int | None = None,
68
+ metrics: Sequence[ObservableSpec] = (),
69
+ label: str = '',
70
+ ) -> None:
71
+ super().__init__(label)
72
+ self.trained = trained
73
+ self.loss = loss
74
+ self.data = data
75
+ self.optimizer = optimizer
76
+ self.batch_size = batch_size
77
+ self.truncation = truncation
78
+ self.metrics = metrics
79
+
80
+ def _get_targets(self) -> tuple[object, ...]:
81
+ """Return no state, since the law changes parameters of a nested system."""
82
+ return ()
83
+
84
+ def _get_requirements(self) -> RequirementSpec:
85
+ """Return what the law requires of a system: discrete time, one step per epoch."""
86
+ return RequirementSpec(time=(DiscreteTime,))
87
+
88
+ def _check(self) -> None:
89
+ """Accept the arguments, which the interaction that returns the law validates."""
@@ -0,0 +1,137 @@
1
+ """Define jump laws, random events that change states."""
2
+
3
+ # Author: Georgios Douzas <gdouzas@icloud.com>
4
+ # License: MIT
5
+
6
+ from collections.abc import Mapping
7
+
8
+ from sage.all__sagemath_symbolics import SR, Expression
9
+
10
+ from ...errors import ValidationError
11
+ from ...specs import CallSpec, RequirementSpec
12
+ from ..spaces import ContinuousTime
13
+ from ._base import BaseLaw
14
+
15
+
16
+ class JumpLaw(BaseLaw):
17
+ """Random event that changes states, on an exponential clock of a given rate or on a clock of drawn waiting times.
18
+
19
+ With a `rate`, the event fires at the times of a Poisson process of that propensity and changes states by fixed
20
+ increments, as in continuous-time Markov chains. With a `waiting` time instead, it fires after a waiting time drawn
21
+ anew at every firing, and applies its `reset`, as in renewal processes such as the jumps of a random walk. Every
22
+ member of a group then fires on its own clock, and the trajectory records every firing and counts them in
23
+ `<label>.renewals`. Jumps combine with rate and noise laws, which evolve the states between firings.
24
+
25
+ Args:
26
+ rate:
27
+ The propensity of the event, a symbolic expression, a `Call`, or a callable `f(t, values)`, or `None` with a
28
+ waiting time.
29
+
30
+ changes:
31
+ A mapping from the symbol of a scalar state to its increment when the event fires. In a law of a group, a
32
+ target may also be a member offset read `shift_member(namespace.n, k)`.
33
+
34
+ waiting:
35
+ The waiting time until the next firing, usually a draw from a distribution with nonnegative support, such
36
+ as `draw('wait', 'pareto', b=alpha)`, or `None` for the exponential clock of `rate`.
37
+
38
+ reset:
39
+ With a waiting time, a mapping from state symbol to its new value, which may hold draws, or `None`.
40
+
41
+ label:
42
+ With a waiting time, the name of the firings in the trajectory, or the empty string for the path of the
43
+ element.
44
+
45
+ Examples:
46
+ >>> from sage.all__sagemath_symbolics import var
47
+ >>> from skcomplex.core.laws import JumpLaw
48
+ >>> from skcomplex.core.laws.utils import draw
49
+ >>> s, i = var('s'), var('i')
50
+ >>> JumpLaw(0.1 * s * i, {s: -1, i: 1}).check().prepare().targets_
51
+ (s, i)
52
+ >>> n = var('n')
53
+ >>> JumpLaw(waiting=draw('wait', 'expon'), reset={n: 0}).check().prepare().targets_
54
+ (n,)
55
+ """
56
+
57
+ def __init__(
58
+ self,
59
+ rate: object = None,
60
+ changes: Mapping[Expression, object] | None = None,
61
+ waiting: object = None,
62
+ reset: Mapping[Expression, object] | None = None,
63
+ *,
64
+ label: str = '',
65
+ ) -> None:
66
+ super().__init__(label)
67
+ self.rate = rate
68
+ self.changes = changes
69
+ self.waiting = waiting
70
+ self.reset = reset
71
+
72
+ def _get_targets(self) -> tuple[object, ...]:
73
+ """Return the states the jump changes: the states of its increments, or of its reset."""
74
+ return tuple(self.changes or {}) if self.waiting is None else tuple(self.reset or {})
75
+
76
+ def _get_requirements(self) -> RequirementSpec:
77
+ """Return what the law requires of a system: continuous time."""
78
+ return RequirementSpec(time=(ContinuousTime,))
79
+
80
+ def _check_clock(self) -> None:
81
+ """Raise an error for a jump with both or neither clock, or with an option of the clock it does not use."""
82
+ if (self.rate is None) == (self.waiting is None):
83
+ error_msg = 'A jump fires at a rate or after a waiting time. Give exactly one of them.'
84
+ raise ValidationError(error_msg)
85
+ if self.waiting is not None and self.changes:
86
+ given, fix = 'changes', 'Give the new values of the states as `reset`.'
87
+ elif self.waiting is None and (self.reset is not None or self.label):
88
+ given = 'a reset' if self.reset is not None else 'a label'
89
+ fix = 'Give the increments of the states as `changes`, or a waiting time instead of the rate.'
90
+ else:
91
+ return
92
+ clock = 'a waiting-time clock' if self.waiting is not None else 'an exponential clock'
93
+ error_msg = (
94
+ f'A jump on {clock} takes {given}, but changes belong to the exponential clock of a rate, and resets and '
95
+ f'labels to the waiting-time clock. {fix}'
96
+ )
97
+ raise ValidationError(error_msg)
98
+
99
+ def _check_reset(self) -> None:
100
+ """Raise an error for a function in the reset of a renewal, whose values lower with its symbolic draws."""
101
+ if isinstance(self.waiting, CallSpec):
102
+ error_msg = 'The waiting time of a jump takes a function `f(rng, size=, t=, **values)`, not a `CallSpec`.'
103
+ raise ValidationError(error_msg)
104
+ if any(self._is_function(value) for value in (self.reset or {}).values()):
105
+ error_msg = (
106
+ 'The reset of a jump on a waiting-time clock takes symbolic values, because they share draws with the '
107
+ 'waiting time. Give symbols, or a function as the `waiting` time.'
108
+ )
109
+ raise ValidationError(error_msg)
110
+
111
+ def _check_changes(self) -> None:
112
+ """Raise an error for an increment that holds a symbol."""
113
+ for state, increment in (self.changes or {}).items():
114
+ if not self._is_function(increment) and not SR(increment).is_numeric():
115
+ error_msg = (
116
+ f'The jump of {state} has the increment {increment}, which holds a symbol. Give the increment as a '
117
+ 'number or as a function `f(t, values)` of time and the values of the states and parameters.'
118
+ )
119
+ raise ValidationError(error_msg)
120
+
121
+ def _check(self) -> None:
122
+ """Raise an error for a jump with an invalid clock, a rate that is a NumPy array, or a symbolic increment."""
123
+ self._check_clock()
124
+ self._check_reset()
125
+ self._check_array('rate')
126
+ self._check_array('waiting')
127
+ self._check_changes()
128
+
129
+ def _run(self, inputs: object) -> None:
130
+ """Set `value_` to the increments of the jump, or its reset at given values of the symbols it reads.
131
+
132
+ Args:
133
+ inputs:
134
+ A mapping from the name of every symbol the law reads to its value.
135
+ """
136
+ changes = dict(self.changes or {}) if self.waiting is None else dict(self.reset or {})
137
+ self.value_ = self._evaluate(changes, inputs)