mathematicskit 0.4.0__tar.gz → 0.5.0__tar.gz

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 (515) hide show
  1. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/PKG-INFO +77 -29
  2. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/README.md +76 -28
  3. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/__init__.py +1 -1
  4. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/integrators/__init__.py +32 -0
  5. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/integrators/adaptive.py +2 -2
  6. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/integrators/fixed_step.py +96 -6
  7. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/integrators/implicit.py +3 -3
  8. mathematicskit-0.5.0/mathematicskit/integrators/multistep.py +111 -0
  9. mathematicskit-0.5.0/mathematicskit/integrators/stability.py +163 -0
  10. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/__init__.py +28 -2
  11. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/core/base.py +71 -0
  12. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/__init__.py +11 -0
  13. mathematicskit-0.5.0/mathematicskit/numerical_analysis/systems/floating_point.py +296 -0
  14. mathematicskit-0.5.0/mathematicskit/numerical_analysis/systems/nonlinear_systems.py +287 -0
  15. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/stability.py +14 -56
  16. mathematicskit-0.5.0/mathematicskit/ode_dynamics/visualizers/__init__.py +11 -0
  17. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/visualizers/plots.py +49 -2
  18. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit.egg-info/PKG-INFO +77 -29
  19. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit.egg-info/SOURCES.txt +5 -190
  20. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/__init__.py +0 -0
  21. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_actions.py +0 -39
  22. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_codes.py +0 -39
  23. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_finite_fields.py +0 -88
  24. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_groups.py +0 -123
  25. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_homomorphisms.py +0 -39
  26. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_polynomial_ring.py +0 -92
  27. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_structure.py +0 -105
  28. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_subgroups.py +0 -94
  29. mathematicskit-0.4.0/mathematicskit/abstract_algebra/tests/test_visualizers.py +0 -15
  30. mathematicskit-0.4.0/mathematicskit/calculus/tests/__init__.py +0 -0
  31. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_autodiff.py +0 -51
  32. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_dual_numbers.py +0 -48
  33. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_exhaustion.py +0 -38
  34. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_finite_differences.py +0 -67
  35. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_quadrature.py +0 -61
  36. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_quadrature_rules.py +0 -90
  37. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_taylor_series.py +0 -60
  38. mathematicskit-0.4.0/mathematicskit/calculus/tests/test_visualizers.py +0 -23
  39. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/__init__.py +0 -0
  40. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_counting.py +0 -56
  41. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_designs.py +0 -36
  42. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_extremal.py +0 -63
  43. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_inclusion_exclusion.py +0 -44
  44. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_matching.py +0 -30
  45. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_necklaces.py +0 -23
  46. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_partitions.py +0 -46
  47. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_pascals_triangle.py +0 -24
  48. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_sequences.py +0 -50
  49. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_special_numbers.py +0 -56
  50. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_trees.py +0 -24
  51. mathematicskit-0.4.0/mathematicskit/combinatorics/tests/test_visualizers.py +0 -26
  52. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/__init__.py +0 -0
  53. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_conformal_maps.py +0 -88
  54. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_contours.py +0 -60
  55. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_domain_coloring.py +0 -44
  56. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_holomorphic.py +0 -30
  57. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_laurent.py +0 -43
  58. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_residues.py +0 -68
  59. mathematicskit-0.4.0/mathematicskit/complex_analysis/tests/test_visualizers.py +0 -29
  60. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/__init__.py +0 -0
  61. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_box_counting.py +0 -56
  62. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_cellular_automata.py +0 -74
  63. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_curves.py +0 -76
  64. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_ifs.py +0 -54
  65. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_lsystems.py +0 -35
  66. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_lyapunov.py +0 -42
  67. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_mandelbrot_julia.py +0 -62
  68. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_maps_and_dla.py +0 -51
  69. mathematicskit-0.4.0/mathematicskit/fractals_chaos/tests/test_visualizers.py +0 -41
  70. mathematicskit-0.4.0/mathematicskit/geometry/tests/__init__.py +0 -0
  71. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_algorithms.py +0 -96
  72. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_convex_hull.py +0 -48
  73. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_curves.py +0 -55
  74. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_intersections.py +0 -48
  75. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_measurement.py +0 -70
  76. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_polygon.py +0 -46
  77. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_surfaces.py +0 -45
  78. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_triangulation.py +0 -44
  79. mathematicskit-0.4.0/mathematicskit/geometry/tests/test_visualizers.py +0 -38
  80. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/__init__.py +0 -0
  81. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_coloring.py +0 -58
  82. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_generators.py +0 -34
  83. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_graph.py +0 -54
  84. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_max_flow.py +0 -83
  85. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_new_algorithms.py +0 -174
  86. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_shortest_paths.py +0 -56
  87. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_spanning_tree.py +0 -46
  88. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_spectral.py +0 -50
  89. mathematicskit-0.4.0/mathematicskit/graph_theory/tests/test_visualizers.py +0 -37
  90. mathematicskit-0.4.0/mathematicskit/integrators/tests/__init__.py +0 -0
  91. mathematicskit-0.4.0/mathematicskit/integrators/tests/test_integrators.py +0 -314
  92. mathematicskit-0.4.0/mathematicskit/linalg/tests/__init__.py +0 -0
  93. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_cholesky.py +0 -50
  94. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_classical.py +0 -105
  95. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_eigen.py +0 -59
  96. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_iterative.py +0 -67
  97. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_lu.py +0 -67
  98. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_qr.py +0 -54
  99. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_stability.py +0 -46
  100. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_stationary_and_spectral.py +0 -106
  101. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_svd.py +0 -42
  102. mathematicskit-0.4.0/mathematicskit/linalg/tests/test_visualizers.py +0 -30
  103. mathematicskit-0.4.0/mathematicskit/number_theory/tests/__init__.py +0 -0
  104. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_continued_fractions.py +0 -75
  105. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_crt.py +0 -35
  106. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_diophantine.py +0 -54
  107. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_factorization.py +0 -48
  108. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_gcd_lcm.py +0 -35
  109. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_modular_arithmetic.py +0 -53
  110. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_primality.py +0 -81
  111. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_prime_distribution.py +0 -50
  112. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_quadratic_residues.py +0 -66
  113. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_sums_of_squares.py +0 -53
  114. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_totient.py +0 -54
  115. mathematicskit-0.4.0/mathematicskit/number_theory/tests/test_visualizers.py +0 -21
  116. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/__init__.py +0 -0
  117. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_acceleration.py +0 -31
  118. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_approximation.py +0 -98
  119. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_chebyshev.py +0 -37
  120. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_error_analysis.py +0 -40
  121. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_interpolation.py +0 -109
  122. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_polynomials.py +0 -71
  123. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_regression.py +0 -52
  124. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_root_finding.py +0 -137
  125. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_splines.py +0 -61
  126. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_summation.py +0 -38
  127. mathematicskit-0.4.0/mathematicskit/numerical_analysis/tests/test_visualizers.py +0 -38
  128. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/__init__.py +0 -0
  129. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_bifurcations.py +0 -50
  130. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_chaotic_flows.py +0 -59
  131. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_chemical_oscillators.py +0 -30
  132. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_epidemics.py +0 -43
  133. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_excitable.py +0 -37
  134. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_limit_cycles.py +0 -50
  135. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_logistic_map.py +0 -45
  136. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_phase_portrait.py +0 -39
  137. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_poincare.py +0 -43
  138. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_population.py +0 -53
  139. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_stability.py +0 -106
  140. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_synchronization.py +0 -48
  141. mathematicskit-0.4.0/mathematicskit/ode_dynamics/tests/test_visualizers.py +0 -41
  142. mathematicskit-0.4.0/mathematicskit/ode_dynamics/visualizers/__init__.py +0 -5
  143. mathematicskit-0.4.0/mathematicskit/optimization/tests/__init__.py +0 -0
  144. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_comparison.py +0 -36
  145. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_conjugate_gradient.py +0 -50
  146. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_constrained.py +0 -77
  147. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_direct_search.py +0 -28
  148. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_dynamic_programming.py +0 -45
  149. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_frank_wolfe.py +0 -45
  150. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_game_theory.py +0 -42
  151. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_gradient_descent.py +0 -63
  152. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_least_squares.py +0 -40
  153. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_linear_programming.py +0 -71
  154. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_momentum.py +0 -61
  155. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_newton_quasi_newton.py +0 -54
  156. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_scalar_search.py +0 -38
  157. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_stochastic.py +0 -30
  158. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_test_functions.py +0 -69
  159. mathematicskit-0.4.0/mathematicskit/optimization/tests/test_visualizers.py +0 -27
  160. mathematicskit-0.4.0/mathematicskit/pde/tests/__init__.py +0 -0
  161. mathematicskit-0.4.0/mathematicskit/pde/tests/test_fem_multigrid_shocks.py +0 -140
  162. mathematicskit-0.4.0/mathematicskit/pde/tests/test_heat.py +0 -176
  163. mathematicskit-0.4.0/mathematicskit/pde/tests/test_operators_and_stability.py +0 -129
  164. mathematicskit-0.4.0/mathematicskit/pde/tests/test_poisson_and_spectral.py +0 -178
  165. mathematicskit-0.4.0/mathematicskit/pde/tests/test_visualizers.py +0 -38
  166. mathematicskit-0.4.0/mathematicskit/pde/tests/test_wave_and_advection.py +0 -109
  167. mathematicskit-0.4.0/mathematicskit/probability/tests/__init__.py +0 -0
  168. mathematicskit-0.4.0/mathematicskit/probability/tests/test_classical_problems.py +0 -90
  169. mathematicskit-0.4.0/mathematicskit/probability/tests/test_continuous.py +0 -74
  170. mathematicskit-0.4.0/mathematicskit/probability/tests/test_discrete.py +0 -66
  171. mathematicskit-0.4.0/mathematicskit/probability/tests/test_limit_theorems.py +0 -37
  172. mathematicskit-0.4.0/mathematicskit/probability/tests/test_markov_chain.py +0 -68
  173. mathematicskit-0.4.0/mathematicskit/probability/tests/test_monte_carlo.py +0 -45
  174. mathematicskit-0.4.0/mathematicskit/probability/tests/test_stochastic_processes.py +0 -113
  175. mathematicskit-0.4.0/mathematicskit/probability/tests/test_visualizers.py +0 -36
  176. mathematicskit-0.4.0/mathematicskit/special_functions/tests/__init__.py +0 -0
  177. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_airy.py +0 -49
  178. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_bessel.py +0 -43
  179. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_convolution.py +0 -64
  180. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_elliptic.py +0 -74
  181. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_error_functions.py +0 -65
  182. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_filters.py +0 -77
  183. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_fourier_transform.py +0 -54
  184. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_gamma_beta.py +0 -71
  185. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_hypergeometric.py +0 -66
  186. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_lambert_w.py +0 -47
  187. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_laplace_transform.py +0 -91
  188. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_mathieu.py +0 -56
  189. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_orthogonal_polynomials.py +0 -60
  190. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_visualizers.py +0 -51
  191. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_wavelets.py +0 -93
  192. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_z_transform.py +0 -74
  193. mathematicskit-0.4.0/mathematicskit/special_functions/tests/test_zeta.py +0 -44
  194. mathematicskit-0.4.0/mathematicskit/statistics/tests/__init__.py +0 -0
  195. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_bootstrap.py +0 -41
  196. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_confidence_intervals.py +0 -63
  197. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_correlation.py +0 -45
  198. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_descriptive.py +0 -43
  199. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_effect_size.py +0 -23
  200. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_hypothesis_tests.py +0 -99
  201. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_jackknife.py +0 -28
  202. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_likelihood.py +0 -58
  203. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_multiple_testing.py +0 -43
  204. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_nonparametric.py +0 -74
  205. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_regression.py +0 -57
  206. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_shrinkage.py +0 -36
  207. mathematicskit-0.4.0/mathematicskit/statistics/tests/test_visualizers.py +0 -32
  208. mathematicskit-0.4.0/mathematicskit/tests/__init__.py +0 -0
  209. mathematicskit-0.4.0/mathematicskit/tests/test_package.py +0 -33
  210. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/LICENSE +0 -0
  211. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/_jit.py +0 -0
  212. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/__init__.py +0 -0
  213. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/core/base.py +0 -0
  214. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/__init__.py +0 -0
  215. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/actions.py +0 -0
  216. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/codes.py +0 -0
  217. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/finite_fields.py +0 -0
  218. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/groups.py +0 -0
  219. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/homomorphisms.py +0 -0
  220. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/polynomial_ring.py +0 -0
  221. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/structure.py +0 -0
  222. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/subgroups.py +0 -0
  223. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/utils/__init__.py +0 -0
  224. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/utils/checks.py +0 -0
  225. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/visualizers/__init__.py +0 -0
  226. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/visualizers/plots.py +0 -0
  227. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/__init__.py +0 -0
  228. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/core/__init__.py +0 -0
  229. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/core/base.py +0 -0
  230. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/__init__.py +0 -0
  231. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/autodiff.py +0 -0
  232. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/dual_numbers.py +0 -0
  233. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/exhaustion.py +0 -0
  234. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/finite_differences.py +0 -0
  235. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/quadrature.py +0 -0
  236. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/taylor_series.py +0 -0
  237. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/utils/__init__.py +0 -0
  238. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/utils/series_utils.py +0 -0
  239. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/visualizers/__init__.py +0 -0
  240. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/calculus/visualizers/plots.py +0 -0
  241. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/__init__.py +0 -0
  242. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/core/__init__.py +0 -0
  243. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/core/base.py +0 -0
  244. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/__init__.py +0 -0
  245. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/counting.py +0 -0
  246. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/designs.py +0 -0
  247. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/extremal.py +0 -0
  248. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/inclusion_exclusion.py +0 -0
  249. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/matching.py +0 -0
  250. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/necklaces.py +0 -0
  251. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/partitions.py +0 -0
  252. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/pascals_triangle.py +0 -0
  253. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/sequences.py +0 -0
  254. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/special_numbers.py +0 -0
  255. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/trees.py +0 -0
  256. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/utils/__init__.py +0 -0
  257. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/utils/bell_number.py +0 -0
  258. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/visualizers/__init__.py +0 -0
  259. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/combinatorics/visualizers/plots.py +0 -0
  260. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/__init__.py +0 -0
  261. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/core/__init__.py +0 -0
  262. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/core/base.py +0 -0
  263. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/__init__.py +0 -0
  264. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/conformal_maps.py +0 -0
  265. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/contours.py +0 -0
  266. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/domain_coloring.py +0 -0
  267. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/holomorphic.py +0 -0
  268. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/laurent.py +0 -0
  269. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/systems/residues.py +0 -0
  270. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/utils/__init__.py +0 -0
  271. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/utils/grids.py +0 -0
  272. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/visualizers/__init__.py +0 -0
  273. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/complex_analysis/visualizers/plots.py +0 -0
  274. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/constants.py +0 -0
  275. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/__init__.py +0 -0
  276. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/core/__init__.py +0 -0
  277. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/core/base.py +0 -0
  278. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/__init__.py +0 -0
  279. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/box_counting.py +0 -0
  280. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/cellular_automata.py +0 -0
  281. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/curves.py +0 -0
  282. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/dla.py +0 -0
  283. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/ifs.py +0 -0
  284. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/lsystems.py +0 -0
  285. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/lyapunov.py +0 -0
  286. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/mandelbrot_julia.py +0 -0
  287. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/maps.py +0 -0
  288. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/utils/__init__.py +0 -0
  289. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/utils/ifs_utils.py +0 -0
  290. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/visualizers/__init__.py +0 -0
  291. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/visualizers/plots.py +0 -0
  292. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/__init__.py +0 -0
  293. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/core/__init__.py +0 -0
  294. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/core/base.py +0 -0
  295. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/__init__.py +0 -0
  296. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/bezier.py +0 -0
  297. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/convex_hull.py +0 -0
  298. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/curves.py +0 -0
  299. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/distances.py +0 -0
  300. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/enclosing.py +0 -0
  301. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/intersections.py +0 -0
  302. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/polygon.py +0 -0
  303. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/polyhedra.py +0 -0
  304. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/proximity.py +0 -0
  305. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/simplification.py +0 -0
  306. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/surfaces.py +0 -0
  307. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/triangulation.py +0 -0
  308. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/utils/__init__.py +0 -0
  309. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/utils/curves_library.py +0 -0
  310. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/visualizers/__init__.py +0 -0
  311. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/geometry/visualizers/plots.py +0 -0
  312. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/__init__.py +0 -0
  313. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/core/__init__.py +0 -0
  314. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/core/base.py +0 -0
  315. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/__init__.py +0 -0
  316. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/assignment.py +0 -0
  317. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/coloring.py +0 -0
  318. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/components.py +0 -0
  319. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/enumeration.py +0 -0
  320. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/extremal.py +0 -0
  321. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/hamiltonian.py +0 -0
  322. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/matching.py +0 -0
  323. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/max_flow.py +0 -0
  324. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/ranking.py +0 -0
  325. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/search.py +0 -0
  326. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/shortest_paths.py +0 -0
  327. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/spanning_tree.py +0 -0
  328. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/spectral.py +0 -0
  329. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/utils/__init__.py +0 -0
  330. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/utils/generators.py +0 -0
  331. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/visualizers/__init__.py +0 -0
  332. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/graph_theory/visualizers/plots.py +0 -0
  333. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/integrators/bvp.py +0 -0
  334. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/__init__.py +0 -0
  335. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/core/__init__.py +0 -0
  336. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/core/base.py +0 -0
  337. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/__init__.py +0 -0
  338. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/cholesky.py +0 -0
  339. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/cramer.py +0 -0
  340. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/eigen.py +0 -0
  341. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/gershgorin.py +0 -0
  342. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/iterative.py +0 -0
  343. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/lanczos.py +0 -0
  344. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/lu.py +0 -0
  345. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/matrix_polynomial.py +0 -0
  346. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/pseudoinverse.py +0 -0
  347. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/qr.py +0 -0
  348. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/schur.py +0 -0
  349. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/stability.py +0 -0
  350. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/stationary.py +0 -0
  351. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/svd.py +0 -0
  352. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/utils/__init__.py +0 -0
  353. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/utils/matrix_utils.py +0 -0
  354. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/visualizers/__init__.py +0 -0
  355. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/linalg/visualizers/plots.py +0 -0
  356. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/__init__.py +0 -0
  357. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/core/__init__.py +0 -0
  358. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/core/base.py +0 -0
  359. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/__init__.py +0 -0
  360. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/continued_fractions.py +0 -0
  361. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/crt.py +0 -0
  362. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/diophantine.py +0 -0
  363. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/factorization.py +0 -0
  364. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/modular_arithmetic.py +0 -0
  365. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/primality.py +0 -0
  366. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/prime_distribution.py +0 -0
  367. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/quadratic_residues.py +0 -0
  368. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/sums_of_squares.py +0 -0
  369. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/totient.py +0 -0
  370. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/zeta.py +0 -0
  371. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/utils/__init__.py +0 -0
  372. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/utils/gcd_lcm.py +0 -0
  373. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/visualizers/__init__.py +0 -0
  374. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/number_theory/visualizers/plots.py +0 -0
  375. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/core/__init__.py +0 -0
  376. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/acceleration.py +0 -0
  377. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/approximation.py +0 -0
  378. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/chebyshev.py +0 -0
  379. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/interpolation.py +0 -0
  380. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/polynomials.py +0 -0
  381. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/regression.py +0 -0
  382. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/root_finding.py +0 -0
  383. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/splines.py +0 -0
  384. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/summation.py +0 -0
  385. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/utils/__init__.py +0 -0
  386. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/utils/error_analysis.py +0 -0
  387. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/visualizers/__init__.py +0 -0
  388. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/visualizers/plots.py +0 -0
  389. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/__init__.py +0 -0
  390. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/core/__init__.py +0 -0
  391. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/core/base.py +0 -0
  392. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/__init__.py +0 -0
  393. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/bifurcations.py +0 -0
  394. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/chaotic_flows.py +0 -0
  395. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/chemical_oscillators.py +0 -0
  396. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/epidemics.py +0 -0
  397. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/excitable.py +0 -0
  398. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/limit_cycles.py +0 -0
  399. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/logistic_map.py +0 -0
  400. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/phase_portrait.py +0 -0
  401. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/poincare.py +0 -0
  402. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/population.py +0 -0
  403. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/synchronization.py +0 -0
  404. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/utils/__init__.py +0 -0
  405. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/utils/period_estimation.py +0 -0
  406. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/__init__.py +0 -0
  407. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/core/__init__.py +0 -0
  408. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/core/base.py +0 -0
  409. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/__init__.py +0 -0
  410. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/conjugate_gradient.py +0 -0
  411. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/constrained.py +0 -0
  412. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/direct_search.py +0 -0
  413. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/dynamic_programming.py +0 -0
  414. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/frank_wolfe.py +0 -0
  415. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/game_theory.py +0 -0
  416. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/gradient_descent.py +0 -0
  417. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/least_squares.py +0 -0
  418. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/linear_programming.py +0 -0
  419. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/momentum.py +0 -0
  420. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/newton_quasi_newton.py +0 -0
  421. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/scalar_search.py +0 -0
  422. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/stochastic.py +0 -0
  423. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/__init__.py +0 -0
  424. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/comparison.py +0 -0
  425. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/line_search.py +0 -0
  426. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/test_functions.py +0 -0
  427. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/visualizers/__init__.py +0 -0
  428. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/optimization/visualizers/plots.py +0 -0
  429. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/__init__.py +0 -0
  430. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/core/__init__.py +0 -0
  431. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/core/base.py +0 -0
  432. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/__init__.py +0 -0
  433. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/advection.py +0 -0
  434. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/conservation_laws.py +0 -0
  435. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/finite_elements.py +0 -0
  436. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/heat.py +0 -0
  437. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/multigrid.py +0 -0
  438. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/poisson.py +0 -0
  439. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/spectral.py +0 -0
  440. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/stability.py +0 -0
  441. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/systems/wave.py +0 -0
  442. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/utils/__init__.py +0 -0
  443. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/utils/operators.py +0 -0
  444. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/visualizers/__init__.py +0 -0
  445. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/pde/visualizers/plots.py +0 -0
  446. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/__init__.py +0 -0
  447. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/core/__init__.py +0 -0
  448. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/core/base.py +0 -0
  449. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/__init__.py +0 -0
  450. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/bayes.py +0 -0
  451. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/branching.py +0 -0
  452. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/buffon.py +0 -0
  453. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/continuous.py +0 -0
  454. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/continuous_time_markov.py +0 -0
  455. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/discrete.py +0 -0
  456. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/inequalities.py +0 -0
  457. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/limit_theorems.py +0 -0
  458. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/markov_chain.py +0 -0
  459. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/monte_carlo.py +0 -0
  460. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/queueing.py +0 -0
  461. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/st_petersburg.py +0 -0
  462. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/systems/stochastic_processes.py +0 -0
  463. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/utils/__init__.py +0 -0
  464. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/utils/diagnostics.py +0 -0
  465. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/visualizers/__init__.py +0 -0
  466. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/probability/visualizers/plots.py +0 -0
  467. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/py.typed +0 -0
  468. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/__init__.py +0 -0
  469. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/core/__init__.py +0 -0
  470. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/core/base.py +0 -0
  471. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/__init__.py +0 -0
  472. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/airy.py +0 -0
  473. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/bessel.py +0 -0
  474. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/convolution.py +0 -0
  475. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/elliptic.py +0 -0
  476. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/error_functions.py +0 -0
  477. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/filters.py +0 -0
  478. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/fourier_transform.py +0 -0
  479. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/gamma_beta.py +0 -0
  480. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/hypergeometric.py +0 -0
  481. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/lambert_w.py +0 -0
  482. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/laplace_transform.py +0 -0
  483. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/mathieu.py +0 -0
  484. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/orthogonal_polynomials.py +0 -0
  485. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/wavelets.py +0 -0
  486. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/z_transform.py +0 -0
  487. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/zeta.py +0 -0
  488. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/utils/__init__.py +0 -0
  489. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/utils/orthogonality.py +0 -0
  490. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/visualizers/__init__.py +0 -0
  491. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/special_functions/visualizers/plots.py +0 -0
  492. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/__init__.py +0 -0
  493. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/core/__init__.py +0 -0
  494. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/core/base.py +0 -0
  495. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/__init__.py +0 -0
  496. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/bootstrap.py +0 -0
  497. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/confidence_intervals.py +0 -0
  498. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/correlation.py +0 -0
  499. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/descriptive.py +0 -0
  500. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/hypothesis_tests.py +0 -0
  501. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/jackknife.py +0 -0
  502. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/likelihood.py +0 -0
  503. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/multiple_testing.py +0 -0
  504. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/nonparametric.py +0 -0
  505. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/regression.py +0 -0
  506. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/shrinkage.py +0 -0
  507. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/utils/__init__.py +0 -0
  508. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/utils/effect_size.py +0 -0
  509. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/visualizers/__init__.py +0 -0
  510. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit/statistics/visualizers/plots.py +0 -0
  511. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit.egg-info/dependency_links.txt +0 -0
  512. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit.egg-info/requires.txt +0 -0
  513. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/mathematicskit.egg-info/top_level.txt +0 -0
  514. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/pyproject.toml +0 -0
  515. {mathematicskit-0.4.0 → mathematicskit-0.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mathematicskit
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Unified computational mathematics toolkit: numerical analysis, linear algebra, calculus, dynamical systems, partial differential equations, optimization, probability, statistics, number theory, combinatorics, complex analysis, graph theory, abstract algebra, geometry, special functions, and fractals/chaos -- built on numpy/scipy, hand-rolling algorithms only where no library equivalent exists.
5
5
  Author-email: Charles Poli <cpoli374@gmail.com>
6
6
  Maintainer-email: Charles Poli <cpoli374@gmail.com>
@@ -58,20 +58,20 @@ Dynamic: license-file
58
58
  | | |
59
59
  |:--|:-:|
60
60
  | Package | [![PyPI version](https://img.shields.io/pypi/v/mathematicskit)](https://pypi.org/project/mathematicskit/) [![Python versions](https://img.shields.io/pypi/pyversions/mathematicskit)](https://pypi.org/project/mathematicskit/) |
61
- | Quality | [![License](https://img.shields.io/github/license/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/blob/main/LICENSE) [![CI](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml/badge.svg)](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml) [![Coverage](https://img.shields.io/codecov/c/github/cpoli/mathematicskit)](https://codecov.io/gh/cpoli/mathematicskit) [![Coverage (manual)](https://img.shields.io/badge/coverage-96%25-brightgreen)](#coverage) |
61
+ | Quality | [![License](https://img.shields.io/github/license/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/blob/main/LICENSE) [![CI](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml/badge.svg)](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml) [![Coverage](https://img.shields.io/codecov/c/github/cpoli/mathematicskit)](https://codecov.io/gh/cpoli/mathematicskit) [![Coverage (manual)](https://img.shields.io/badge/coverage-99%25-brightgreen)](#coverage) |
62
62
  | Documentation | [![Docs](https://img.shields.io/badge/docs-cpoli.github.io%2Fmathematicskit-blue)](https://cpoli.github.io/mathematicskit/) |
63
63
  | Code style | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) |
64
64
  | Downloads | [![Downloads](https://static.pepy.tech/badge/mathematicskit)](https://pepy.tech/project/mathematicskit) [![Downloads/Month](https://static.pepy.tech/badge/mathematicskit/month)](https://pepy.tech/project/mathematicskit) |
65
65
  | Community | [![GitHub Stars](https://img.shields.io/github/stars/cpoli/mathematicskit?style=social)](https://github.com/cpoli/mathematicskit) [![GitHub Forks](https://img.shields.io/github/forks/cpoli/mathematicskit?style=social)](https://github.com/cpoli/mathematicskit) [![Contributors](https://img.shields.io/github/contributors/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/graphs/contributors) [![Last Commit](https://img.shields.io/github/last-commit/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/commits/main) |
66
- | Try it online | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/cpoli/mathematicskit/main?labpath=notebooks%2Fquickstart.ipynb) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
66
+ | Try it online | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
67
67
 
68
68
  **See how the algorithms of computational mathematics actually work.**
69
69
  mathematicskit is a Python toolkit for learning and teaching numerical
70
- methods, dynamical systems, and discrete mathematics. Every iterative method
71
- keeps its iterates, every result is an inspectable dataclass, every domain
72
- ships plotting helpers, and each domain's docs walk through the field's
73
- breakthroughs in historical order, each one linked to runnable code that
74
- reproduces it.
70
+ methods, dynamical systems, and discrete mathematics. No black boxes: every
71
+ iterative method shows its work, every result is an inspectable dataclass,
72
+ every domain ships plotting helpers, and each domain's docs walk through the
73
+ field's breakthroughs in historical order, each one linked to runnable code
74
+ that reproduces it.
75
75
 
76
76
  ![Mandelbrot set, Newton vs. bisection convergence, and the logistic-map bifurcation diagram, all drawn with mathematicskit](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_hero.png)
77
77
 
@@ -123,36 +123,85 @@ ax.legend()
123
123
  ```
124
124
 
125
125
  The [quickstart notebook](https://github.com/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) tours six domains in
126
- ten minutes. Open it in Colab or Binder using the badges above.
126
+ ten minutes. Open it in Colab using the badge above.
127
127
 
128
128
  ## Subpackages
129
129
 
130
130
  Domain subpackages, each with runnable examples linked below:
131
131
 
132
- - [`mathematicskit.numerical_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/numerical_analysis/) -- root finding (bisection, Newton-Raphson, secant, fixed-point, hand-rolled for their convergence history), Lagrange/Newton (hand-rolled) plus scipy-backed cubic-spline interpolation, numpy-backed Chebyshev nodes, `numpy.linalg.lstsq`-based polynomial regression, and `numpy.linalg.cond`-based error/condition-number analysis.
132
+ - [`mathematicskit.numerical_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/numerical_analysis/) -- root finding (bisection, Newton-Raphson, secant, fixed-point, hand-rolled for their convergence history), Newton's and Broyden's methods for nonlinear systems, Lagrange/Newton (hand-rolled) plus scipy-backed cubic-spline interpolation, numpy-backed Chebyshev nodes, `numpy.linalg.lstsq`-based polynomial regression, floating-point arithmetic (IEEE 754 bit fields, machine epsilon, catastrophic cancellation), and `numpy.linalg.cond`-based error/condition-number analysis.
133
+
134
+ ![Runge's phenomenon, its Chebyshev-node cure, and Bernstein polynomial approximation](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_numerical_analysis.png)
135
+
133
136
  - [`mathematicskit.linalg`](https://cpoli.github.io/mathematicskit/api/gallery/linalg/) -- LU/QR/Cholesky decompositions and eigenvalue computation via `scipy.linalg`/`numpy.linalg`, power/inverse iteration (hand-rolled), SVD, conjugate gradient and GMRES via `scipy.sparse.linalg`, and least-squares stability (normal equations vs. QR vs. `numpy.linalg.lstsq`).
137
+
138
+ ![SVD low-rank approximations, Gershgorin discs, and conjugate-gradient vs. GMRES residuals](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_linalg.png)
139
+
134
140
  - [`mathematicskit.calculus`](https://cpoli.github.io/mathematicskit/api/gallery/calculus/) -- finite-difference derivatives with Richardson extrapolation (hand-rolled), `scipy.integrate`-backed trapezoidal/Simpson/Gauss-Legendre/adaptive quadrature, forward-mode (dual numbers) and reverse-mode (backpropagation) automatic differentiation (hand-rolled), and Taylor/Maclaurin series.
141
+
142
+ ![A midpoint Riemann sum, Taylor polynomials of sin, and adaptive quadrature sample points](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_calculus.png)
143
+
135
144
  - [`mathematicskit.ode_dynamics`](https://cpoli.github.io/mathematicskit/api/gallery/ode_dynamics/) -- Jacobian-linearization fixed-point stability (node/saddle/spiral/center), phase portraits, the logistic map's Feigenbaum route to chaos, saddle-node/pitchfork/Hopf bifurcation normal forms, the Van der Pol limit cycle, and Poincare sections of the driven Duffing oscillator.
145
+
146
+ ![Pendulum phase portrait, the Lorenz attractor, and a Poincaré section of the Duffing oscillator](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_ode_dynamics.png)
147
+
136
148
  - [`mathematicskit.pde`](https://cpoli.github.io/mathematicskit/api/gallery/pde/) -- the heat equation in 1D and 2D by the method of lines on `mathematicskit.integrators` and by the theta-method family (FTCS, Crank-Nicolson, backward Euler via `scipy.sparse.linalg.splu`); the wave equation with symplectic leapfrog stepping against d'Alembert's solution; upwind, Lax-Friedrichs and Lax-Wendroff advection; Poisson/Laplace problems solved with `scipy.sparse.linalg.spsolve` or `mathematicskit.linalg`'s CG/Jacobi/Gauss-Seidel/SOR; CFL checks and von Neumann amplification factors; and Fourier (`numpy.fft`) and Chebyshev spectral methods.
149
+
150
+ ![2D heat equation, wave-equation space-time diagram, and a Burgers shock](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_pde.png)
151
+
137
152
  - [`mathematicskit.fractals_chaos`](https://cpoli.github.io/mathematicskit/api/gallery/fractals_chaos/) -- Lyapunov exponent estimation, box-counting fractal dimension, Numba-accelerated Mandelbrot/Julia set generation, iterated function systems (Barnsley fern, Sierpinski triangle/carpet), and cellular automata (Wolfram rules, Conway's Game of Life).
153
+
154
+ ![Barnsley's fern, a Julia set, and Wolfram's rule 30](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_fractals_chaos.png)
155
+
138
156
  - [`mathematicskit.optimization`](https://cpoli.github.io/mathematicskit/api/gallery/optimization/) -- gradient descent and nonlinear conjugate gradient (hand-rolled, iterate-path-exposing), Newton's method and BFGS via `scipy.optimize.minimize`, Lagrange multipliers and KKT-condition verification, a quadratic-penalty method, and linear programming via `scipy.optimize.linprog`.
157
+
158
+ ![Optimizer paths on Rosenbrock's function, CG vs. gradient descent convergence, and a linear program](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_optimization.png)
159
+
139
160
  - [`mathematicskit.probability`](https://cpoli.github.io/mathematicskit/api/gallery/probability/) -- binomial/Poisson/geometric/uniform/exponential/normal/gamma distributions via `scipy.stats` (plus mathematicskit's own MGFs), Monte Carlo integration with variance reduction (importance sampling, control variates), Law of Large Numbers/Central Limit Theorem simulation, and discrete-time Markov chains.
161
+
162
+ ![Central limit theorem histogram, Brownian motion paths, and Monte Carlo integration](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_probability.png)
163
+
140
164
  - [`mathematicskit.statistics`](https://cpoli.github.io/mathematicskit/api/gallery/statistics/) -- descriptive statistics, z/t/chi-square hypothesis tests and one-way ANOVA, confidence intervals for means/proportions/variances, OLS linear regression with residual diagnostics, and bootstrap resampling via `scipy.stats.bootstrap`.
165
+
166
+ ![Regression fit, OLS residuals, and group box plots](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_statistics.png)
167
+
141
168
  - [`mathematicskit.number_theory`](https://cpoli.github.io/mathematicskit/api/gallery/number_theory/) -- the extended Euclidean algorithm and modular inverses, fast modular exponentiation, primality testing (trial division, Miller-Rabin) and prime generation, the Chinese Remainder Theorem, continued fractions and best rational approximations, Euler's totient/Mobius/divisor-sum functions, and linear/Pell Diophantine equation solvers (hand-rolled -- exact-integer number theory has no `numpy`/`scipy` equivalent).
169
+
170
+ ![Prime-counting function, continued-fraction convergents of pi, and Fermat's two-squares primes](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_number_theory.png)
171
+
142
172
  - [`mathematicskit.combinatorics`](https://cpoli.github.io/mathematicskit/api/gallery/combinatorics/) -- permutation/combination counting via `scipy.special.perm`/`comb` (sequence generation via `itertools`), a hand-rolled Pascal's triangle, integer partitions and Young/Ferrers diagrams, the inclusion-exclusion principle and derangements, and Stirling/Catalan/Bell numbers (hand-rolled -- no scipy/numpy equivalent).
173
+
174
+ ![Pascal's triangle, Pascal's triangle mod 2, and the partition function](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_combinatorics.png)
175
+
143
176
  - [`mathematicskit.complex_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/complex_analysis/) -- the Cauchy-Riemann equations, contour integrals via `scipy.integrate.quad` (`complex_func=True`), winding numbers and Cauchy's integral formula, residues (periodic trapezoidal rule), the residue theorem and the argument principle, conformal maps (Möbius transformations, Joukowski airfoils), and domain coloring.
177
+
178
+ ![Domain coloring, Joukowski airfoils, and residue-theorem contours](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_complex_analysis.png)
179
+
144
180
  - [`mathematicskit.graph_theory`](https://cpoli.github.io/mathematicskit/api/gallery/graph_theory/) -- a lightweight own graph container (no `networkx`); shortest paths (Dijkstra/Bellman-Ford/Floyd-Warshall) and minimum spanning tree (Kruskal) via `scipy.sparse.csgraph`, with a hand-rolled Prim's kept for comparison; maximum flow/minimum cut via `scipy.sparse.csgraph.maximum_flow`; hand-rolled graph coloring (greedy, exact backtracking); and spectral graph theory (Laplacian via scipy, eigendecomposition via `numpy.linalg.eigh`).
181
+
182
+ ![Spectral bipartition, A* search, and a four-colored map](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_graph_theory.png)
183
+
145
184
  - [`mathematicskit.abstract_algebra`](https://cpoli.github.io/mathematicskit/api/gallery/abstract_algebra/) -- cyclic and permutation groups with Cayley tables and group-property checks, subgroup/coset enumeration, finite field arithmetic (`GF(p)`/`GF(p^n)` via irreducible polynomials), and polynomial ring arithmetic over Z/Q/finite fields (hand-rolled throughout -- no scipy/numpy equivalent).
185
+
186
+ ![Cayley tables of D4 and S4 and the multiplication table of GF(16)](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_abstract_algebra.png)
187
+
146
188
  - [`mathematicskit.geometry`](https://cpoli.github.io/mathematicskit/api/gallery/geometry/) -- convex hull via `scipy.spatial.ConvexHull` (with a hand-rolled Graham scan comparison), Delaunay triangulation/Voronoi diagrams via `scipy.spatial`, hand-rolled segment intersection and point-in-polygon tests, polygon area/centroid via the shoelace formula, and curvature/arc-length/the Frenet-Serret frame for parametric curves.
189
+
190
+ ![Voronoi diagram, Delaunay triangulation, and a Bézier curve by de Casteljau](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_geometry.png)
191
+
147
192
  - [`mathematicskit.special_functions`](https://cpoli.github.io/mathematicskit/api/gallery/special_functions/) -- the gamma/beta functions and Bessel functions via `scipy.special`, orthogonal polynomial families (Legendre/Chebyshev/Hermite/Laguerre) via `numpy.polynomial` with numerically-verified orthogonality, the discrete Fourier transform via `numpy.fft` alongside a hand-rolled naive-DFT-vs-radix-2-FFT pedagogical speed comparison, and signal processing: direct/FFT convolution and Butterworth/Chebyshev/window-FIR filters via `scipy.signal`, the Z-transform with partial-fraction inversion, the Laplace transform with hand-rolled Talbot/Gaver-Stehfest numerical inversion, and hand-rolled Daubechies wavelets, the discrete wavelet transform, and the Morlet continuous wavelet transform (no numpy/scipy equivalent since scipy 1.15).
148
193
 
194
+ ![Bessel functions, a Morlet wavelet scalogram, and the Cornu spiral](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_special_functions.png)
195
+
196
+
149
197
  Shared infrastructure, used across the subpackages above rather than
150
198
  standalone toolkits:
151
199
 
152
200
  - `mathematicskit.constants` -- mathematical constants and default numerical
153
201
  tolerances shared across subpackages.
154
- - `mathematicskit.integrators` -- shared numerical ODE integrators (RK4,
155
- leapfrog, Yoshida4, adaptive Dormand-Prince), used by
202
+ - `mathematicskit.integrators` -- shared numerical ODE integrators (explicit
203
+ Euler, RK4, Adams-Bashforth, leapfrog, Yoshida4, adaptive
204
+ Dormand-Prince, backward Euler) and their linear stability regions, used by
156
205
  `mathematicskit.ode_dynamics`.
157
206
 
158
207
  ## Design
@@ -188,34 +237,33 @@ macOS. See [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR.
188
237
  ### Coverage
189
238
 
190
239
  ```bash
191
- MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-report=term
240
+ MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-report=
241
+ NUMBA_DISABLE_JIT=1 MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-append --cov-report=term
192
242
  ```
193
243
 
194
- 1568 tests, 96% line coverage overall (94% excluding the test files
195
- themselves). Per-subpackage coverage, excluding tests:
244
+ Coverage cannot trace `@njit`-compiled code, so the kernel bodies in
245
+ `ode_dynamics`, `fractals_chaos`, `pde` and `integrators` are only
246
+ covered by the second run, where they execute as plain Python. CI does
247
+ the same: the numba and no-numba jobs both upload to Codecov, which
248
+ merges them. Combined: 1672 tests, 99% line coverage overall (98%
249
+ excluding the test files themselves). Per-subpackage coverage,
250
+ excluding tests:
196
251
 
197
252
  | Subpackage | Coverage | | Subpackage | Coverage |
198
253
  |:--|--:|---|:--|--:|
199
- | `abstract_algebra` | 97% | | `numerical_analysis` | 95% |
200
- | `calculus` | 93% | | `ode_dynamics` | 85% |
254
+ | `abstract_algebra` | 97% | | `numerical_analysis` | 96% |
255
+ | `calculus` | 93% | | `ode_dynamics` | 100% |
201
256
  | `combinatorics` | 96% | | `optimization` | 99% |
202
- | `complex_analysis` | 99% | | `pde` | 94% |
203
- | `fractals_chaos` | 83% | | `probability` | 98% |
257
+ | `complex_analysis` | 99% | | `pde` | 99% |
258
+ | `fractals_chaos` | 100% | | `probability` | 98% |
204
259
  | `geometry` | 99% | | `special_functions` | 99% |
205
260
  | `graph_theory` | 99% | | `statistics` | 99% |
206
- | `linalg` | 94% | | `integrators` | 41% |
207
- | `number_theory` | 97% | | `constants` | 100% |
261
+ | `linalg` | 94% | | `integrators` | 100% |
262
+ | `number_theory` | 98% | | `constants` | 100% |
208
263
 
209
264
  `visualizers/` modules are smoke-tested only (correct return type/shape,
210
265
  or that `anim.save()` succeeds) rather than covered line-by-line, per the
211
- testing convention in [CLAUDE.md](CLAUDE.md). `integrators` looks low
212
- only because its bodies are `@njit`-compiled, and coverage cannot trace
213
- compiled code; every integrator is tested directly, and with the JIT
214
- disabled the subpackage is fully covered:
215
-
216
- ```bash
217
- NUMBA_DISABLE_JIT=1 MPLBACKEND=Agg pytest -q mathematicskit/integrators --cov=mathematicskit.integrators
218
- ```
266
+ testing convention in [CLAUDE.md](CLAUDE.md).
219
267
 
220
268
  ## Docs
221
269
 
@@ -3,20 +3,20 @@
3
3
  | | |
4
4
  |:--|:-:|
5
5
  | Package | [![PyPI version](https://img.shields.io/pypi/v/mathematicskit)](https://pypi.org/project/mathematicskit/) [![Python versions](https://img.shields.io/pypi/pyversions/mathematicskit)](https://pypi.org/project/mathematicskit/) |
6
- | Quality | [![License](https://img.shields.io/github/license/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/blob/main/LICENSE) [![CI](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml/badge.svg)](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml) [![Coverage](https://img.shields.io/codecov/c/github/cpoli/mathematicskit)](https://codecov.io/gh/cpoli/mathematicskit) [![Coverage (manual)](https://img.shields.io/badge/coverage-96%25-brightgreen)](#coverage) |
6
+ | Quality | [![License](https://img.shields.io/github/license/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/blob/main/LICENSE) [![CI](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml/badge.svg)](https://github.com/cpoli/mathematicskit/actions/workflows/ci.yml) [![Coverage](https://img.shields.io/codecov/c/github/cpoli/mathematicskit)](https://codecov.io/gh/cpoli/mathematicskit) [![Coverage (manual)](https://img.shields.io/badge/coverage-99%25-brightgreen)](#coverage) |
7
7
  | Documentation | [![Docs](https://img.shields.io/badge/docs-cpoli.github.io%2Fmathematicskit-blue)](https://cpoli.github.io/mathematicskit/) |
8
8
  | Code style | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) |
9
9
  | Downloads | [![Downloads](https://static.pepy.tech/badge/mathematicskit)](https://pepy.tech/project/mathematicskit) [![Downloads/Month](https://static.pepy.tech/badge/mathematicskit/month)](https://pepy.tech/project/mathematicskit) |
10
10
  | Community | [![GitHub Stars](https://img.shields.io/github/stars/cpoli/mathematicskit?style=social)](https://github.com/cpoli/mathematicskit) [![GitHub Forks](https://img.shields.io/github/forks/cpoli/mathematicskit?style=social)](https://github.com/cpoli/mathematicskit) [![Contributors](https://img.shields.io/github/contributors/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/graphs/contributors) [![Last Commit](https://img.shields.io/github/last-commit/cpoli/mathematicskit)](https://github.com/cpoli/mathematicskit/commits/main) |
11
- | Try it online | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/cpoli/mathematicskit/main?labpath=notebooks%2Fquickstart.ipynb) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
11
+ | Try it online | [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
12
12
 
13
13
  **See how the algorithms of computational mathematics actually work.**
14
14
  mathematicskit is a Python toolkit for learning and teaching numerical
15
- methods, dynamical systems, and discrete mathematics. Every iterative method
16
- keeps its iterates, every result is an inspectable dataclass, every domain
17
- ships plotting helpers, and each domain's docs walk through the field's
18
- breakthroughs in historical order, each one linked to runnable code that
19
- reproduces it.
15
+ methods, dynamical systems, and discrete mathematics. No black boxes: every
16
+ iterative method shows its work, every result is an inspectable dataclass,
17
+ every domain ships plotting helpers, and each domain's docs walk through the
18
+ field's breakthroughs in historical order, each one linked to runnable code
19
+ that reproduces it.
20
20
 
21
21
  ![Mandelbrot set, Newton vs. bisection convergence, and the logistic-map bifurcation diagram, all drawn with mathematicskit](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_hero.png)
22
22
 
@@ -68,36 +68,85 @@ ax.legend()
68
68
  ```
69
69
 
70
70
  The [quickstart notebook](https://github.com/cpoli/mathematicskit/blob/main/notebooks/quickstart.ipynb) tours six domains in
71
- ten minutes. Open it in Colab or Binder using the badges above.
71
+ ten minutes. Open it in Colab using the badge above.
72
72
 
73
73
  ## Subpackages
74
74
 
75
75
  Domain subpackages, each with runnable examples linked below:
76
76
 
77
- - [`mathematicskit.numerical_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/numerical_analysis/) -- root finding (bisection, Newton-Raphson, secant, fixed-point, hand-rolled for their convergence history), Lagrange/Newton (hand-rolled) plus scipy-backed cubic-spline interpolation, numpy-backed Chebyshev nodes, `numpy.linalg.lstsq`-based polynomial regression, and `numpy.linalg.cond`-based error/condition-number analysis.
77
+ - [`mathematicskit.numerical_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/numerical_analysis/) -- root finding (bisection, Newton-Raphson, secant, fixed-point, hand-rolled for their convergence history), Newton's and Broyden's methods for nonlinear systems, Lagrange/Newton (hand-rolled) plus scipy-backed cubic-spline interpolation, numpy-backed Chebyshev nodes, `numpy.linalg.lstsq`-based polynomial regression, floating-point arithmetic (IEEE 754 bit fields, machine epsilon, catastrophic cancellation), and `numpy.linalg.cond`-based error/condition-number analysis.
78
+
79
+ ![Runge's phenomenon, its Chebyshev-node cure, and Bernstein polynomial approximation](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_numerical_analysis.png)
80
+
78
81
  - [`mathematicskit.linalg`](https://cpoli.github.io/mathematicskit/api/gallery/linalg/) -- LU/QR/Cholesky decompositions and eigenvalue computation via `scipy.linalg`/`numpy.linalg`, power/inverse iteration (hand-rolled), SVD, conjugate gradient and GMRES via `scipy.sparse.linalg`, and least-squares stability (normal equations vs. QR vs. `numpy.linalg.lstsq`).
82
+
83
+ ![SVD low-rank approximations, Gershgorin discs, and conjugate-gradient vs. GMRES residuals](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_linalg.png)
84
+
79
85
  - [`mathematicskit.calculus`](https://cpoli.github.io/mathematicskit/api/gallery/calculus/) -- finite-difference derivatives with Richardson extrapolation (hand-rolled), `scipy.integrate`-backed trapezoidal/Simpson/Gauss-Legendre/adaptive quadrature, forward-mode (dual numbers) and reverse-mode (backpropagation) automatic differentiation (hand-rolled), and Taylor/Maclaurin series.
86
+
87
+ ![A midpoint Riemann sum, Taylor polynomials of sin, and adaptive quadrature sample points](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_calculus.png)
88
+
80
89
  - [`mathematicskit.ode_dynamics`](https://cpoli.github.io/mathematicskit/api/gallery/ode_dynamics/) -- Jacobian-linearization fixed-point stability (node/saddle/spiral/center), phase portraits, the logistic map's Feigenbaum route to chaos, saddle-node/pitchfork/Hopf bifurcation normal forms, the Van der Pol limit cycle, and Poincare sections of the driven Duffing oscillator.
90
+
91
+ ![Pendulum phase portrait, the Lorenz attractor, and a Poincaré section of the Duffing oscillator](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_ode_dynamics.png)
92
+
81
93
  - [`mathematicskit.pde`](https://cpoli.github.io/mathematicskit/api/gallery/pde/) -- the heat equation in 1D and 2D by the method of lines on `mathematicskit.integrators` and by the theta-method family (FTCS, Crank-Nicolson, backward Euler via `scipy.sparse.linalg.splu`); the wave equation with symplectic leapfrog stepping against d'Alembert's solution; upwind, Lax-Friedrichs and Lax-Wendroff advection; Poisson/Laplace problems solved with `scipy.sparse.linalg.spsolve` or `mathematicskit.linalg`'s CG/Jacobi/Gauss-Seidel/SOR; CFL checks and von Neumann amplification factors; and Fourier (`numpy.fft`) and Chebyshev spectral methods.
94
+
95
+ ![2D heat equation, wave-equation space-time diagram, and a Burgers shock](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_pde.png)
96
+
82
97
  - [`mathematicskit.fractals_chaos`](https://cpoli.github.io/mathematicskit/api/gallery/fractals_chaos/) -- Lyapunov exponent estimation, box-counting fractal dimension, Numba-accelerated Mandelbrot/Julia set generation, iterated function systems (Barnsley fern, Sierpinski triangle/carpet), and cellular automata (Wolfram rules, Conway's Game of Life).
98
+
99
+ ![Barnsley's fern, a Julia set, and Wolfram's rule 30](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_fractals_chaos.png)
100
+
83
101
  - [`mathematicskit.optimization`](https://cpoli.github.io/mathematicskit/api/gallery/optimization/) -- gradient descent and nonlinear conjugate gradient (hand-rolled, iterate-path-exposing), Newton's method and BFGS via `scipy.optimize.minimize`, Lagrange multipliers and KKT-condition verification, a quadratic-penalty method, and linear programming via `scipy.optimize.linprog`.
102
+
103
+ ![Optimizer paths on Rosenbrock's function, CG vs. gradient descent convergence, and a linear program](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_optimization.png)
104
+
84
105
  - [`mathematicskit.probability`](https://cpoli.github.io/mathematicskit/api/gallery/probability/) -- binomial/Poisson/geometric/uniform/exponential/normal/gamma distributions via `scipy.stats` (plus mathematicskit's own MGFs), Monte Carlo integration with variance reduction (importance sampling, control variates), Law of Large Numbers/Central Limit Theorem simulation, and discrete-time Markov chains.
106
+
107
+ ![Central limit theorem histogram, Brownian motion paths, and Monte Carlo integration](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_probability.png)
108
+
85
109
  - [`mathematicskit.statistics`](https://cpoli.github.io/mathematicskit/api/gallery/statistics/) -- descriptive statistics, z/t/chi-square hypothesis tests and one-way ANOVA, confidence intervals for means/proportions/variances, OLS linear regression with residual diagnostics, and bootstrap resampling via `scipy.stats.bootstrap`.
110
+
111
+ ![Regression fit, OLS residuals, and group box plots](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_statistics.png)
112
+
86
113
  - [`mathematicskit.number_theory`](https://cpoli.github.io/mathematicskit/api/gallery/number_theory/) -- the extended Euclidean algorithm and modular inverses, fast modular exponentiation, primality testing (trial division, Miller-Rabin) and prime generation, the Chinese Remainder Theorem, continued fractions and best rational approximations, Euler's totient/Mobius/divisor-sum functions, and linear/Pell Diophantine equation solvers (hand-rolled -- exact-integer number theory has no `numpy`/`scipy` equivalent).
114
+
115
+ ![Prime-counting function, continued-fraction convergents of pi, and Fermat's two-squares primes](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_number_theory.png)
116
+
87
117
  - [`mathematicskit.combinatorics`](https://cpoli.github.io/mathematicskit/api/gallery/combinatorics/) -- permutation/combination counting via `scipy.special.perm`/`comb` (sequence generation via `itertools`), a hand-rolled Pascal's triangle, integer partitions and Young/Ferrers diagrams, the inclusion-exclusion principle and derangements, and Stirling/Catalan/Bell numbers (hand-rolled -- no scipy/numpy equivalent).
118
+
119
+ ![Pascal's triangle, Pascal's triangle mod 2, and the partition function](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_combinatorics.png)
120
+
88
121
  - [`mathematicskit.complex_analysis`](https://cpoli.github.io/mathematicskit/api/gallery/complex_analysis/) -- the Cauchy-Riemann equations, contour integrals via `scipy.integrate.quad` (`complex_func=True`), winding numbers and Cauchy's integral formula, residues (periodic trapezoidal rule), the residue theorem and the argument principle, conformal maps (Möbius transformations, Joukowski airfoils), and domain coloring.
122
+
123
+ ![Domain coloring, Joukowski airfoils, and residue-theorem contours](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_complex_analysis.png)
124
+
89
125
  - [`mathematicskit.graph_theory`](https://cpoli.github.io/mathematicskit/api/gallery/graph_theory/) -- a lightweight own graph container (no `networkx`); shortest paths (Dijkstra/Bellman-Ford/Floyd-Warshall) and minimum spanning tree (Kruskal) via `scipy.sparse.csgraph`, with a hand-rolled Prim's kept for comparison; maximum flow/minimum cut via `scipy.sparse.csgraph.maximum_flow`; hand-rolled graph coloring (greedy, exact backtracking); and spectral graph theory (Laplacian via scipy, eigendecomposition via `numpy.linalg.eigh`).
126
+
127
+ ![Spectral bipartition, A* search, and a four-colored map](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_graph_theory.png)
128
+
90
129
  - [`mathematicskit.abstract_algebra`](https://cpoli.github.io/mathematicskit/api/gallery/abstract_algebra/) -- cyclic and permutation groups with Cayley tables and group-property checks, subgroup/coset enumeration, finite field arithmetic (`GF(p)`/`GF(p^n)` via irreducible polynomials), and polynomial ring arithmetic over Z/Q/finite fields (hand-rolled throughout -- no scipy/numpy equivalent).
130
+
131
+ ![Cayley tables of D4 and S4 and the multiplication table of GF(16)](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_abstract_algebra.png)
132
+
91
133
  - [`mathematicskit.geometry`](https://cpoli.github.io/mathematicskit/api/gallery/geometry/) -- convex hull via `scipy.spatial.ConvexHull` (with a hand-rolled Graham scan comparison), Delaunay triangulation/Voronoi diagrams via `scipy.spatial`, hand-rolled segment intersection and point-in-polygon tests, polygon area/centroid via the shoelace formula, and curvature/arc-length/the Frenet-Serret frame for parametric curves.
134
+
135
+ ![Voronoi diagram, Delaunay triangulation, and a Bézier curve by de Casteljau](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_geometry.png)
136
+
92
137
  - [`mathematicskit.special_functions`](https://cpoli.github.io/mathematicskit/api/gallery/special_functions/) -- the gamma/beta functions and Bessel functions via `scipy.special`, orthogonal polynomial families (Legendre/Chebyshev/Hermite/Laguerre) via `numpy.polynomial` with numerically-verified orthogonality, the discrete Fourier transform via `numpy.fft` alongside a hand-rolled naive-DFT-vs-radix-2-FFT pedagogical speed comparison, and signal processing: direct/FFT convolution and Butterworth/Chebyshev/window-FIR filters via `scipy.signal`, the Z-transform with partial-fraction inversion, the Laplace transform with hand-rolled Talbot/Gaver-Stehfest numerical inversion, and hand-rolled Daubechies wavelets, the discrete wavelet transform, and the Morlet continuous wavelet transform (no numpy/scipy equivalent since scipy 1.15).
93
138
 
139
+ ![Bessel functions, a Morlet wavelet scalogram, and the Cornu spiral](https://raw.githubusercontent.com/cpoli/mathematicskit/main/docs/source/_static/images/readme_special_functions.png)
140
+
141
+
94
142
  Shared infrastructure, used across the subpackages above rather than
95
143
  standalone toolkits:
96
144
 
97
145
  - `mathematicskit.constants` -- mathematical constants and default numerical
98
146
  tolerances shared across subpackages.
99
- - `mathematicskit.integrators` -- shared numerical ODE integrators (RK4,
100
- leapfrog, Yoshida4, adaptive Dormand-Prince), used by
147
+ - `mathematicskit.integrators` -- shared numerical ODE integrators (explicit
148
+ Euler, RK4, Adams-Bashforth, leapfrog, Yoshida4, adaptive
149
+ Dormand-Prince, backward Euler) and their linear stability regions, used by
101
150
  `mathematicskit.ode_dynamics`.
102
151
 
103
152
  ## Design
@@ -133,34 +182,33 @@ macOS. See [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR.
133
182
  ### Coverage
134
183
 
135
184
  ```bash
136
- MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-report=term
185
+ MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-report=
186
+ NUMBA_DISABLE_JIT=1 MPLBACKEND=Agg pytest -q --cov=mathematicskit --cov-append --cov-report=term
137
187
  ```
138
188
 
139
- 1568 tests, 96% line coverage overall (94% excluding the test files
140
- themselves). Per-subpackage coverage, excluding tests:
189
+ Coverage cannot trace `@njit`-compiled code, so the kernel bodies in
190
+ `ode_dynamics`, `fractals_chaos`, `pde` and `integrators` are only
191
+ covered by the second run, where they execute as plain Python. CI does
192
+ the same: the numba and no-numba jobs both upload to Codecov, which
193
+ merges them. Combined: 1672 tests, 99% line coverage overall (98%
194
+ excluding the test files themselves). Per-subpackage coverage,
195
+ excluding tests:
141
196
 
142
197
  | Subpackage | Coverage | | Subpackage | Coverage |
143
198
  |:--|--:|---|:--|--:|
144
- | `abstract_algebra` | 97% | | `numerical_analysis` | 95% |
145
- | `calculus` | 93% | | `ode_dynamics` | 85% |
199
+ | `abstract_algebra` | 97% | | `numerical_analysis` | 96% |
200
+ | `calculus` | 93% | | `ode_dynamics` | 100% |
146
201
  | `combinatorics` | 96% | | `optimization` | 99% |
147
- | `complex_analysis` | 99% | | `pde` | 94% |
148
- | `fractals_chaos` | 83% | | `probability` | 98% |
202
+ | `complex_analysis` | 99% | | `pde` | 99% |
203
+ | `fractals_chaos` | 100% | | `probability` | 98% |
149
204
  | `geometry` | 99% | | `special_functions` | 99% |
150
205
  | `graph_theory` | 99% | | `statistics` | 99% |
151
- | `linalg` | 94% | | `integrators` | 41% |
152
- | `number_theory` | 97% | | `constants` | 100% |
206
+ | `linalg` | 94% | | `integrators` | 100% |
207
+ | `number_theory` | 98% | | `constants` | 100% |
153
208
 
154
209
  `visualizers/` modules are smoke-tested only (correct return type/shape,
155
210
  or that `anim.save()` succeeds) rather than covered line-by-line, per the
156
- testing convention in [CLAUDE.md](CLAUDE.md). `integrators` looks low
157
- only because its bodies are `@njit`-compiled, and coverage cannot trace
158
- compiled code; every integrator is tested directly, and with the JIT
159
- disabled the subpackage is fully covered:
160
-
161
- ```bash
162
- NUMBA_DISABLE_JIT=1 MPLBACKEND=Agg pytest -q mathematicskit/integrators --cov=mathematicskit.integrators
163
- ```
211
+ testing convention in [CLAUDE.md](CLAUDE.md).
164
212
 
165
213
  ## Docs
166
214
 
@@ -11,7 +11,7 @@ implemented, and CHANGELOG.md for the full roadmap.
11
11
 
12
12
  # Defined before the subpackage imports: each subpackage re-exports it via
13
13
  # ``from mathematicskit import __version__`` while this module is still loading.
14
- __version__ = "0.4.0"
14
+ __version__ = "0.5.0"
15
15
 
16
16
  from mathematicskit import ( # noqa: E402
17
17
  abstract_algebra,
@@ -5,8 +5,13 @@ ndarray`` convention throughout, so a single compiled callback can be reused
5
5
  across systems with different parameter values without recompiling (see
6
6
  :mod:`mathematicskit.integrators.fixed_step`).
7
7
 
8
+ * :func:`euler_integrate` -- explicit (forward) Euler, first order: the
9
+ baseline every other method improves on.
8
10
  * :func:`rk4_integrate` -- classical 4th-order Runge-Kutta (not
9
11
  energy-preserving).
12
+ * :func:`adams_bashforth_integrate` -- explicit Adams-Bashforth linear
13
+ multistep methods of orders 1-4 (RK4 start-up), one right-hand-side
14
+ evaluation per step.
10
15
  * :func:`leapfrog_integrate` (alias :func:`velocity_verlet_integrate`) --
11
16
  2nd-order symplectic Stormer-Verlet, for separable systems
12
17
  ``pos'' = force(pos, t)``.
@@ -26,12 +31,27 @@ across systems with different parameter values without recompiling (see
26
31
  collocation (:func:`scipy.integrate.solve_bvp`), returning a
27
32
  :class:`BVPResult`.
28
33
 
34
+ :func:`stability_function`, :func:`is_absolutely_stable` and
35
+ :func:`adams_bashforth_boundary_locus` describe each explicit and
36
+ implicit method's linear stability region in the ``z = lam * dt`` plane
37
+ (see :mod:`mathematicskit.integrators.stability`).
38
+
29
39
  :mod:`mathematicskit.ode_dynamics` builds its phase portraits, bifurcation
30
40
  diagrams, and Poincare sections on top of this shared module rather than
31
41
  reimplementing per-domain integrators, exactly as physicskit's
32
42
  ``classical/core/integrators.py`` wraps its own shared integrators for
33
43
  that subpackage's njit-callback calling convention.
34
44
 
45
+ The integrator kernels are compiled per process and deliberately not
46
+ cached to disk (no ``cache=True``). Each one takes the callback itself as
47
+ an argument, so a cache entry is keyed on that callback's dispatcher.
48
+ Numba cannot re-save an index holding keys whose dispatchers belonged to
49
+ an earlier process, so the second script to use a new callback would
50
+ crash with ``ReferenceError: underlying object has vanished``. The
51
+ kernels that take only arrays and scalars (e.g. the ``rhs`` functions in
52
+ :mod:`mathematicskit.ode_dynamics` and :mod:`mathematicskit.pde`) stay
53
+ cached.
54
+
35
55
  :func:`njit` is re-exported here for writing those callbacks: it is
36
56
  :func:`numba.njit` when Numba is installed (``pip install
37
57
  mathematicskit[fast]``) and a no-op decorator otherwise, with
@@ -43,6 +63,8 @@ from mathematicskit.integrators.adaptive import dopri5_integrate, dopri5_step
43
63
  from mathematicskit.integrators.bvp import BVPResult, collocation_bvp
44
64
  from mathematicskit.integrators.fixed_step import (
45
65
  RHSFunc,
66
+ euler_integrate,
67
+ euler_step,
46
68
  leapfrog_integrate,
47
69
  leapfrog_step,
48
70
  rk4_integrate,
@@ -53,13 +75,19 @@ from mathematicskit.integrators.fixed_step import (
53
75
  yoshida4_step,
54
76
  )
55
77
  from mathematicskit.integrators.implicit import implicit_euler_integrate, implicit_euler_step, stiff_integrate
78
+ from mathematicskit.integrators.multistep import ADAMS_BASHFORTH_COEFFICIENTS, adams_bashforth_integrate
79
+ from mathematicskit.integrators.stability import STABILITY_METHODS, adams_bashforth_boundary_locus, is_absolutely_stable, stability_function
56
80
 
57
81
  __all__ = [
58
82
  "HAS_NUMBA",
59
83
  "njit",
60
84
  "RHSFunc",
85
+ "euler_step",
86
+ "euler_integrate",
61
87
  "rk4_step",
62
88
  "rk4_integrate",
89
+ "ADAMS_BASHFORTH_COEFFICIENTS",
90
+ "adams_bashforth_integrate",
63
91
  "leapfrog_step",
64
92
  "leapfrog_integrate",
65
93
  "velocity_verlet_step",
@@ -73,4 +101,8 @@ __all__ = [
73
101
  "stiff_integrate",
74
102
  "BVPResult",
75
103
  "collocation_bvp",
104
+ "STABILITY_METHODS",
105
+ "stability_function",
106
+ "is_absolutely_stable",
107
+ "adams_bashforth_boundary_locus",
76
108
  ]
@@ -53,7 +53,7 @@ _E6 = _B6 - _B6S
53
53
  _E7 = -_B7S
54
54
 
55
55
 
56
- @njit(cache=True)
56
+ @njit
57
57
  def dopri5_step(
58
58
  rhs: RHSFunc,
59
59
  state: NDArray[np.float64],
@@ -97,7 +97,7 @@ def dopri5_step(
97
97
  return state_new, error
98
98
 
99
99
 
100
- @njit(cache=True)
100
+ @njit
101
101
  def dopri5_integrate(
102
102
  rhs: RHSFunc,
103
103
  state0: NDArray[np.float64],
@@ -27,6 +27,8 @@ from mathematicskit._jit import njit
27
27
 
28
28
  __all__ = [
29
29
  "RHSFunc",
30
+ "euler_step",
31
+ "euler_integrate",
30
32
  "rk4_step",
31
33
  "rk4_integrate",
32
34
  "leapfrog_step",
@@ -42,7 +44,95 @@ __all__ = [
42
44
  RHSFunc = Callable[[NDArray[np.float64], float, NDArray[np.float64]], NDArray[np.float64]]
43
45
 
44
46
 
45
- @njit(cache=True)
47
+ @njit
48
+ def euler_step(
49
+ rhs: RHSFunc,
50
+ state: NDArray[np.float64],
51
+ t: float,
52
+ dt: float,
53
+ params: NDArray[np.float64],
54
+ ) -> NDArray[np.float64]:
55
+ """Single explicit (forward) Euler step: ``state + dt * rhs(state, t)``.
56
+
57
+ Follows the tangent line for one step (Euler 1768). The local error is
58
+ :math:`O(dt^2)`, so the global error over a fixed interval is
59
+ :math:`O(dt)`. For ``y' = lam * y`` one step multiplies ``y`` by
60
+ :math:`R(z) = 1 + z` with :math:`z = lam \\cdot dt`, so the method is
61
+ stable only inside the disc :math:`|1 + z| \\le 1` (see
62
+ :mod:`mathematicskit.integrators.stability`).
63
+
64
+ Parameters
65
+ ----------
66
+ rhs : callable
67
+ Numba-jitted right-hand-side function ``rhs(state, t, params) ->
68
+ ndarray``.
69
+ state : ndarray of float, shape (dim,)
70
+ Current state vector.
71
+ t : float
72
+ Current time.
73
+ dt : float
74
+ Step size.
75
+ params : ndarray of float
76
+ Parameter vector passed through to `rhs`.
77
+
78
+ Returns
79
+ -------
80
+ ndarray of float, shape (dim,)
81
+ The state advanced by one step of size `dt`.
82
+ """
83
+ return state + dt * rhs(state, t, params)
84
+
85
+
86
+ @njit
87
+ def euler_integrate(
88
+ rhs: RHSFunc,
89
+ state0: NDArray[np.float64],
90
+ t0: float,
91
+ dt: float,
92
+ n_steps: int,
93
+ params: NDArray[np.float64],
94
+ ) -> tuple[NDArray[np.float64], NDArray[np.float64]]:
95
+ """Integrate ``n_steps`` of explicit Euler starting from ``state0``.
96
+
97
+ Parameters
98
+ ----------
99
+ rhs : callable
100
+ Numba-jitted right-hand-side function ``rhs(state, t, params) ->
101
+ ndarray``.
102
+ state0 : ndarray of float, shape (dim,)
103
+ Initial state vector.
104
+ t0 : float
105
+ Initial time.
106
+ dt : float
107
+ Step size.
108
+ n_steps : int
109
+ Number of integration steps.
110
+ params : ndarray of float
111
+ Parameter vector passed through to `rhs`.
112
+
113
+ Returns
114
+ -------
115
+ times : ndarray of float, shape (n_steps + 1,)
116
+ Time at each step, starting at `t0`.
117
+ states : ndarray of float, shape (n_steps + 1, dim)
118
+ State at each step, starting at `state0`.
119
+ """
120
+ dim = state0.shape[0]
121
+ states = np.empty((n_steps + 1, dim))
122
+ times = np.empty(n_steps + 1)
123
+ states[0] = state0
124
+ times[0] = t0
125
+ state = state0.copy()
126
+ t = t0
127
+ for i in range(n_steps):
128
+ state = euler_step(rhs, state, t, dt, params)
129
+ t = t0 + (i + 1) * dt
130
+ states[i + 1] = state
131
+ times[i + 1] = t
132
+ return times, states
133
+
134
+
135
+ @njit
46
136
  def rk4_step(
47
137
  rhs: RHSFunc,
48
138
  state: NDArray[np.float64],
@@ -78,7 +168,7 @@ def rk4_step(
78
168
  return state + (dt / 6.0) * (k1 + 2.0 * k2 + 2.0 * k3 + k4)
79
169
 
80
170
 
81
- @njit(cache=True)
171
+ @njit
82
172
  def rk4_integrate(
83
173
  rhs: RHSFunc,
84
174
  state0: NDArray[np.float64],
@@ -127,7 +217,7 @@ def rk4_integrate(
127
217
  return times, states
128
218
 
129
219
 
130
- @njit(cache=True)
220
+ @njit
131
221
  def leapfrog_step(
132
222
  force: RHSFunc,
133
223
  pos: NDArray[np.float64],
@@ -168,7 +258,7 @@ def leapfrog_step(
168
258
  return pos_new, vel_new
169
259
 
170
260
 
171
- @njit(cache=True)
261
+ @njit
172
262
  def leapfrog_integrate(
173
263
  force: RHSFunc,
174
264
  pos0: NDArray[np.float64],
@@ -241,7 +331,7 @@ _YOSHIDA_W0 = -_YOSHIDA_CBRT2 / (2.0 - _YOSHIDA_CBRT2)
241
331
  _YOSHIDA_W1 = 1.0 / (2.0 - _YOSHIDA_CBRT2)
242
332
 
243
333
 
244
- @njit(cache=True)
334
+ @njit
245
335
  def yoshida4_step(
246
336
  force: RHSFunc,
247
337
  pos: NDArray[np.float64],
@@ -292,7 +382,7 @@ def yoshida4_step(
292
382
  return pos, vel
293
383
 
294
384
 
295
- @njit(cache=True)
385
+ @njit
296
386
  def yoshida4_integrate(
297
387
  force: RHSFunc,
298
388
  pos0: NDArray[np.float64],