mathematicskit 0.2.1__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 (501) hide show
  1. mathematicskit-0.5.0/PKG-INFO +293 -0
  2. mathematicskit-0.5.0/README.md +238 -0
  3. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/__init__.py +9 -3
  4. mathematicskit-0.5.0/mathematicskit/_jit.py +47 -0
  5. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/__init__.py +1 -2
  6. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/core/base.py +3 -2
  7. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/actions.py +1 -1
  8. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/finite_fields.py +2 -0
  9. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/homomorphisms.py +1 -1
  10. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/structure.py +1 -1
  11. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/__init__.py +1 -2
  12. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/core/base.py +1 -1
  13. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/autodiff.py +2 -2
  14. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/dual_numbers.py +1 -1
  15. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/finite_differences.py +1 -1
  16. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/quadrature.py +3 -3
  17. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/utils/series_utils.py +1 -1
  18. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/__init__.py +1 -2
  19. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/designs.py +1 -1
  20. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/extremal.py +8 -6
  21. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/matching.py +1 -1
  22. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/sequences.py +1 -1
  23. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/trees.py +1 -1
  24. mathematicskit-0.5.0/mathematicskit/complex_analysis/__init__.py +58 -0
  25. mathematicskit-0.5.0/mathematicskit/complex_analysis/core/__init__.py +13 -0
  26. mathematicskit-0.5.0/mathematicskit/complex_analysis/core/base.py +129 -0
  27. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/__init__.py +28 -0
  28. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/conformal_maps.py +167 -0
  29. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/contours.py +187 -0
  30. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/domain_coloring.py +64 -0
  31. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/holomorphic.py +77 -0
  32. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/laurent.py +62 -0
  33. mathematicskit-0.5.0/mathematicskit/complex_analysis/systems/residues.py +173 -0
  34. mathematicskit-0.5.0/mathematicskit/complex_analysis/utils/__init__.py +5 -0
  35. mathematicskit-0.5.0/mathematicskit/complex_analysis/utils/grids.py +40 -0
  36. mathematicskit-0.5.0/mathematicskit/complex_analysis/visualizers/__init__.py +5 -0
  37. mathematicskit-0.5.0/mathematicskit/complex_analysis/visualizers/plots.py +91 -0
  38. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/__init__.py +1 -2
  39. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/cellular_automata.py +1 -1
  40. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/dla.py +2 -1
  41. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/lyapunov.py +1 -1
  42. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/mandelbrot_julia.py +1 -1
  43. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/__init__.py +1 -2
  44. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/convex_hull.py +1 -1
  45. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/curves.py +1 -1
  46. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/polygon.py +1 -1
  47. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/polyhedra.py +3 -3
  48. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/surfaces.py +1 -1
  49. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/__init__.py +1 -2
  50. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/coloring.py +1 -1
  51. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/matching.py +1 -1
  52. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/search.py +7 -5
  53. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/spanning_tree.py +2 -2
  54. mathematicskit-0.5.0/mathematicskit/integrators/__init__.py +108 -0
  55. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/integrators/adaptive.py +3 -3
  56. mathematicskit-0.5.0/mathematicskit/integrators/bvp.py +124 -0
  57. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/integrators/fixed_step.py +99 -8
  58. mathematicskit-0.5.0/mathematicskit/integrators/implicit.py +258 -0
  59. mathematicskit-0.5.0/mathematicskit/integrators/multistep.py +111 -0
  60. mathematicskit-0.5.0/mathematicskit/integrators/stability.py +163 -0
  61. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/__init__.py +1 -2
  62. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/eigen.py +2 -2
  63. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/__init__.py +1 -2
  64. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/crt.py +1 -1
  65. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/totient.py +1 -1
  66. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/__init__.py +29 -4
  67. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/core/base.py +71 -0
  68. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/__init__.py +11 -0
  69. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/approximation.py +1 -1
  70. mathematicskit-0.5.0/mathematicskit/numerical_analysis/systems/floating_point.py +296 -0
  71. mathematicskit-0.5.0/mathematicskit/numerical_analysis/systems/nonlinear_systems.py +287 -0
  72. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/root_finding.py +2 -1
  73. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/__init__.py +1 -2
  74. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/core/base.py +2 -1
  75. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/bifurcations.py +2 -2
  76. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/chaotic_flows.py +1 -1
  77. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/chemical_oscillators.py +1 -1
  78. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/epidemics.py +1 -1
  79. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/excitable.py +1 -1
  80. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/limit_cycles.py +3 -3
  81. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/logistic_map.py +2 -1
  82. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/phase_portrait.py +2 -2
  83. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/poincare.py +1 -1
  84. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/population.py +1 -1
  85. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/stability.py +15 -57
  86. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/synchronization.py +1 -1
  87. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/utils/period_estimation.py +1 -2
  88. mathematicskit-0.5.0/mathematicskit/ode_dynamics/visualizers/__init__.py +11 -0
  89. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/visualizers/plots.py +49 -2
  90. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/__init__.py +1 -2
  91. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/core/base.py +2 -1
  92. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/conjugate_gradient.py +1 -1
  93. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/constrained.py +6 -1
  94. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/direct_search.py +2 -1
  95. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/frank_wolfe.py +2 -1
  96. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/gradient_descent.py +1 -1
  97. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/least_squares.py +2 -1
  98. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/momentum.py +1 -1
  99. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/newton_quasi_newton.py +2 -1
  100. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/scalar_search.py +1 -1
  101. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/stochastic.py +2 -1
  102. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/comparison.py +1 -1
  103. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/line_search.py +1 -1
  104. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/visualizers/plots.py +6 -4
  105. mathematicskit-0.5.0/mathematicskit/pde/__init__.py +93 -0
  106. mathematicskit-0.5.0/mathematicskit/pde/core/__init__.py +5 -0
  107. mathematicskit-0.5.0/mathematicskit/pde/core/base.py +246 -0
  108. mathematicskit-0.5.0/mathematicskit/pde/systems/__init__.py +63 -0
  109. mathematicskit-0.5.0/mathematicskit/pde/systems/advection.py +138 -0
  110. mathematicskit-0.5.0/mathematicskit/pde/systems/conservation_laws.py +199 -0
  111. mathematicskit-0.5.0/mathematicskit/pde/systems/finite_elements.py +100 -0
  112. mathematicskit-0.5.0/mathematicskit/pde/systems/heat.py +371 -0
  113. mathematicskit-0.5.0/mathematicskit/pde/systems/multigrid.py +145 -0
  114. mathematicskit-0.5.0/mathematicskit/pde/systems/poisson.py +191 -0
  115. mathematicskit-0.5.0/mathematicskit/pde/systems/spectral.py +372 -0
  116. mathematicskit-0.5.0/mathematicskit/pde/systems/stability.py +284 -0
  117. mathematicskit-0.5.0/mathematicskit/pde/systems/wave.py +208 -0
  118. mathematicskit-0.5.0/mathematicskit/pde/utils/__init__.py +5 -0
  119. mathematicskit-0.5.0/mathematicskit/pde/utils/operators.py +123 -0
  120. mathematicskit-0.5.0/mathematicskit/pde/visualizers/__init__.py +5 -0
  121. mathematicskit-0.5.0/mathematicskit/pde/visualizers/plots.py +118 -0
  122. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/__init__.py +1 -2
  123. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/core/base.py +3 -3
  124. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/markov_chain.py +9 -9
  125. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/monte_carlo.py +1 -1
  126. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/__init__.py +69 -3
  127. mathematicskit-0.5.0/mathematicskit/special_functions/core/base.py +186 -0
  128. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/__init__.py +40 -1
  129. mathematicskit-0.5.0/mathematicskit/special_functions/systems/convolution.py +176 -0
  130. mathematicskit-0.5.0/mathematicskit/special_functions/systems/filters.py +197 -0
  131. mathematicskit-0.5.0/mathematicskit/special_functions/systems/laplace_transform.py +216 -0
  132. mathematicskit-0.5.0/mathematicskit/special_functions/systems/wavelets.py +272 -0
  133. mathematicskit-0.5.0/mathematicskit/special_functions/systems/z_transform.py +154 -0
  134. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/utils/orthogonality.py +1 -1
  135. mathematicskit-0.5.0/mathematicskit/special_functions/visualizers/__init__.py +19 -0
  136. mathematicskit-0.5.0/mathematicskit/special_functions/visualizers/plots.py +196 -0
  137. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/__init__.py +1 -2
  138. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/bootstrap.py +1 -1
  139. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/jackknife.py +1 -1
  140. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/nonparametric.py +2 -1
  141. mathematicskit-0.5.0/mathematicskit.egg-info/PKG-INFO +293 -0
  142. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit.egg-info/SOURCES.txt +45 -170
  143. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit.egg-info/requires.txt +6 -5
  144. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/pyproject.toml +38 -16
  145. mathematicskit-0.2.1/PKG-INFO +0 -201
  146. mathematicskit-0.2.1/README.md +0 -151
  147. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_actions.py +0 -39
  148. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_codes.py +0 -39
  149. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_finite_fields.py +0 -88
  150. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_groups.py +0 -123
  151. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_homomorphisms.py +0 -39
  152. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_polynomial_ring.py +0 -92
  153. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_structure.py +0 -105
  154. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_subgroups.py +0 -94
  155. mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/test_visualizers.py +0 -15
  156. mathematicskit-0.2.1/mathematicskit/calculus/tests/__init__.py +0 -0
  157. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_autodiff.py +0 -51
  158. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_dual_numbers.py +0 -48
  159. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_exhaustion.py +0 -38
  160. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_finite_differences.py +0 -67
  161. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_quadrature.py +0 -61
  162. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_quadrature_rules.py +0 -90
  163. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_taylor_series.py +0 -60
  164. mathematicskit-0.2.1/mathematicskit/calculus/tests/test_visualizers.py +0 -23
  165. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/__init__.py +0 -0
  166. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_counting.py +0 -56
  167. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_designs.py +0 -36
  168. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_extremal.py +0 -63
  169. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_inclusion_exclusion.py +0 -44
  170. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_matching.py +0 -30
  171. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_necklaces.py +0 -23
  172. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_partitions.py +0 -46
  173. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_pascals_triangle.py +0 -24
  174. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_sequences.py +0 -50
  175. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_special_numbers.py +0 -56
  176. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_trees.py +0 -24
  177. mathematicskit-0.2.1/mathematicskit/combinatorics/tests/test_visualizers.py +0 -26
  178. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/__init__.py +0 -0
  179. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_box_counting.py +0 -56
  180. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_cellular_automata.py +0 -74
  181. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_curves.py +0 -76
  182. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_ifs.py +0 -54
  183. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_lsystems.py +0 -35
  184. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_lyapunov.py +0 -42
  185. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_mandelbrot_julia.py +0 -62
  186. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_maps_and_dla.py +0 -49
  187. mathematicskit-0.2.1/mathematicskit/fractals_chaos/tests/test_visualizers.py +0 -41
  188. mathematicskit-0.2.1/mathematicskit/geometry/tests/__init__.py +0 -0
  189. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_algorithms.py +0 -93
  190. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_convex_hull.py +0 -48
  191. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_curves.py +0 -55
  192. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_intersections.py +0 -48
  193. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_measurement.py +0 -70
  194. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_polygon.py +0 -46
  195. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_surfaces.py +0 -45
  196. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_triangulation.py +0 -44
  197. mathematicskit-0.2.1/mathematicskit/geometry/tests/test_visualizers.py +0 -38
  198. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/__init__.py +0 -0
  199. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_coloring.py +0 -58
  200. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_generators.py +0 -34
  201. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_graph.py +0 -54
  202. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_max_flow.py +0 -83
  203. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_new_algorithms.py +0 -174
  204. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_shortest_paths.py +0 -56
  205. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_spanning_tree.py +0 -46
  206. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_spectral.py +0 -50
  207. mathematicskit-0.2.1/mathematicskit/graph_theory/tests/test_visualizers.py +0 -37
  208. mathematicskit-0.2.1/mathematicskit/integrators/__init__.py +0 -52
  209. mathematicskit-0.2.1/mathematicskit/integrators/tests/__init__.py +0 -0
  210. mathematicskit-0.2.1/mathematicskit/integrators/tests/test_integrators.py +0 -115
  211. mathematicskit-0.2.1/mathematicskit/linalg/tests/__init__.py +0 -0
  212. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_cholesky.py +0 -50
  213. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_classical.py +0 -105
  214. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_eigen.py +0 -59
  215. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_iterative.py +0 -67
  216. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_lu.py +0 -67
  217. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_qr.py +0 -54
  218. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_stability.py +0 -46
  219. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_stationary_and_spectral.py +0 -106
  220. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_svd.py +0 -42
  221. mathematicskit-0.2.1/mathematicskit/linalg/tests/test_visualizers.py +0 -30
  222. mathematicskit-0.2.1/mathematicskit/number_theory/tests/__init__.py +0 -0
  223. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_continued_fractions.py +0 -75
  224. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_crt.py +0 -35
  225. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_diophantine.py +0 -54
  226. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_factorization.py +0 -48
  227. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_gcd_lcm.py +0 -35
  228. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_modular_arithmetic.py +0 -53
  229. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_primality.py +0 -81
  230. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_prime_distribution.py +0 -50
  231. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_quadratic_residues.py +0 -66
  232. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_sums_of_squares.py +0 -53
  233. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_totient.py +0 -54
  234. mathematicskit-0.2.1/mathematicskit/number_theory/tests/test_visualizers.py +0 -21
  235. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/__init__.py +0 -0
  236. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_acceleration.py +0 -31
  237. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_approximation.py +0 -98
  238. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_chebyshev.py +0 -37
  239. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_error_analysis.py +0 -40
  240. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_interpolation.py +0 -109
  241. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_polynomials.py +0 -71
  242. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_regression.py +0 -52
  243. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_root_finding.py +0 -137
  244. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_splines.py +0 -61
  245. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_summation.py +0 -38
  246. mathematicskit-0.2.1/mathematicskit/numerical_analysis/tests/test_visualizers.py +0 -38
  247. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/__init__.py +0 -0
  248. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_bifurcations.py +0 -50
  249. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_chaotic_flows.py +0 -59
  250. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_chemical_oscillators.py +0 -30
  251. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_epidemics.py +0 -43
  252. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_excitable.py +0 -37
  253. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_limit_cycles.py +0 -50
  254. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_logistic_map.py +0 -45
  255. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_phase_portrait.py +0 -39
  256. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_poincare.py +0 -43
  257. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_population.py +0 -53
  258. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_stability.py +0 -106
  259. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_synchronization.py +0 -48
  260. mathematicskit-0.2.1/mathematicskit/ode_dynamics/tests/test_visualizers.py +0 -41
  261. mathematicskit-0.2.1/mathematicskit/ode_dynamics/visualizers/__init__.py +0 -5
  262. mathematicskit-0.2.1/mathematicskit/optimization/tests/__init__.py +0 -0
  263. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_comparison.py +0 -36
  264. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_conjugate_gradient.py +0 -50
  265. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_constrained.py +0 -77
  266. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_direct_search.py +0 -28
  267. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_dynamic_programming.py +0 -45
  268. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_frank_wolfe.py +0 -45
  269. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_game_theory.py +0 -42
  270. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_gradient_descent.py +0 -63
  271. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_least_squares.py +0 -40
  272. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_linear_programming.py +0 -71
  273. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_momentum.py +0 -61
  274. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_newton_quasi_newton.py +0 -54
  275. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_scalar_search.py +0 -38
  276. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_stochastic.py +0 -30
  277. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_test_functions.py +0 -69
  278. mathematicskit-0.2.1/mathematicskit/optimization/tests/test_visualizers.py +0 -27
  279. mathematicskit-0.2.1/mathematicskit/probability/tests/__init__.py +0 -0
  280. mathematicskit-0.2.1/mathematicskit/probability/tests/test_classical_problems.py +0 -90
  281. mathematicskit-0.2.1/mathematicskit/probability/tests/test_continuous.py +0 -74
  282. mathematicskit-0.2.1/mathematicskit/probability/tests/test_discrete.py +0 -66
  283. mathematicskit-0.2.1/mathematicskit/probability/tests/test_limit_theorems.py +0 -37
  284. mathematicskit-0.2.1/mathematicskit/probability/tests/test_markov_chain.py +0 -68
  285. mathematicskit-0.2.1/mathematicskit/probability/tests/test_monte_carlo.py +0 -45
  286. mathematicskit-0.2.1/mathematicskit/probability/tests/test_stochastic_processes.py +0 -113
  287. mathematicskit-0.2.1/mathematicskit/probability/tests/test_visualizers.py +0 -36
  288. mathematicskit-0.2.1/mathematicskit/special_functions/core/base.py +0 -81
  289. mathematicskit-0.2.1/mathematicskit/special_functions/tests/__init__.py +0 -0
  290. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_airy.py +0 -49
  291. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_bessel.py +0 -43
  292. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_elliptic.py +0 -74
  293. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_error_functions.py +0 -65
  294. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_fourier_transform.py +0 -54
  295. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_gamma_beta.py +0 -71
  296. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_hypergeometric.py +0 -66
  297. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_lambert_w.py +0 -47
  298. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_mathieu.py +0 -56
  299. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_orthogonal_polynomials.py +0 -60
  300. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_visualizers.py +0 -20
  301. mathematicskit-0.2.1/mathematicskit/special_functions/tests/test_zeta.py +0 -44
  302. mathematicskit-0.2.1/mathematicskit/special_functions/visualizers/__init__.py +0 -5
  303. mathematicskit-0.2.1/mathematicskit/special_functions/visualizers/plots.py +0 -73
  304. mathematicskit-0.2.1/mathematicskit/statistics/tests/__init__.py +0 -0
  305. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_bootstrap.py +0 -41
  306. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_confidence_intervals.py +0 -63
  307. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_correlation.py +0 -45
  308. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_descriptive.py +0 -43
  309. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_effect_size.py +0 -23
  310. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_hypothesis_tests.py +0 -99
  311. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_jackknife.py +0 -28
  312. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_likelihood.py +0 -58
  313. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_multiple_testing.py +0 -43
  314. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_nonparametric.py +0 -74
  315. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_regression.py +0 -57
  316. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_shrinkage.py +0 -36
  317. mathematicskit-0.2.1/mathematicskit/statistics/tests/test_visualizers.py +0 -32
  318. mathematicskit-0.2.1/mathematicskit/tests/__init__.py +0 -0
  319. mathematicskit-0.2.1/mathematicskit/tests/test_package.py +0 -33
  320. mathematicskit-0.2.1/mathematicskit.egg-info/PKG-INFO +0 -201
  321. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/LICENSE +0 -0
  322. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/__init__.py +0 -0
  323. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/codes.py +0 -0
  324. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/groups.py +0 -0
  325. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/polynomial_ring.py +0 -0
  326. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/systems/subgroups.py +0 -0
  327. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/utils/__init__.py +0 -0
  328. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/utils/checks.py +0 -0
  329. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/visualizers/__init__.py +0 -0
  330. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/abstract_algebra/visualizers/plots.py +0 -0
  331. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/core/__init__.py +0 -0
  332. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/__init__.py +0 -0
  333. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/exhaustion.py +0 -0
  334. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/systems/taylor_series.py +0 -0
  335. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/utils/__init__.py +0 -0
  336. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/visualizers/__init__.py +0 -0
  337. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/calculus/visualizers/plots.py +0 -0
  338. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/core/__init__.py +0 -0
  339. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/core/base.py +0 -0
  340. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/__init__.py +0 -0
  341. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/counting.py +0 -0
  342. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/inclusion_exclusion.py +0 -0
  343. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/necklaces.py +0 -0
  344. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/partitions.py +0 -0
  345. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/pascals_triangle.py +0 -0
  346. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/systems/special_numbers.py +0 -0
  347. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/utils/__init__.py +0 -0
  348. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/utils/bell_number.py +0 -0
  349. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/visualizers/__init__.py +0 -0
  350. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/combinatorics/visualizers/plots.py +0 -0
  351. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/constants.py +0 -0
  352. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/core/__init__.py +0 -0
  353. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/core/base.py +0 -0
  354. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/__init__.py +0 -0
  355. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/box_counting.py +0 -0
  356. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/curves.py +0 -0
  357. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/ifs.py +0 -0
  358. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/lsystems.py +0 -0
  359. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/systems/maps.py +0 -0
  360. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/utils/__init__.py +0 -0
  361. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/utils/ifs_utils.py +0 -0
  362. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/visualizers/__init__.py +0 -0
  363. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/fractals_chaos/visualizers/plots.py +0 -0
  364. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/core/__init__.py +0 -0
  365. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/core/base.py +0 -0
  366. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/__init__.py +0 -0
  367. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/bezier.py +0 -0
  368. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/distances.py +0 -0
  369. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/enclosing.py +0 -0
  370. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/intersections.py +0 -0
  371. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/proximity.py +0 -0
  372. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/simplification.py +0 -0
  373. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/systems/triangulation.py +0 -0
  374. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/utils/__init__.py +0 -0
  375. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/utils/curves_library.py +0 -0
  376. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/visualizers/__init__.py +0 -0
  377. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/geometry/visualizers/plots.py +0 -0
  378. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/core/__init__.py +0 -0
  379. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/core/base.py +0 -0
  380. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/__init__.py +0 -0
  381. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/assignment.py +0 -0
  382. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/components.py +0 -0
  383. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/enumeration.py +0 -0
  384. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/extremal.py +0 -0
  385. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/hamiltonian.py +0 -0
  386. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/max_flow.py +0 -0
  387. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/ranking.py +0 -0
  388. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/shortest_paths.py +0 -0
  389. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/systems/spectral.py +0 -0
  390. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/utils/__init__.py +0 -0
  391. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/utils/generators.py +0 -0
  392. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/visualizers/__init__.py +0 -0
  393. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/graph_theory/visualizers/plots.py +0 -0
  394. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/core/__init__.py +0 -0
  395. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/core/base.py +0 -0
  396. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/__init__.py +0 -0
  397. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/cholesky.py +0 -0
  398. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/cramer.py +0 -0
  399. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/gershgorin.py +0 -0
  400. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/iterative.py +0 -0
  401. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/lanczos.py +0 -0
  402. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/lu.py +0 -0
  403. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/matrix_polynomial.py +0 -0
  404. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/pseudoinverse.py +0 -0
  405. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/qr.py +0 -0
  406. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/schur.py +0 -0
  407. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/stability.py +0 -0
  408. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/stationary.py +0 -0
  409. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/systems/svd.py +0 -0
  410. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/utils/__init__.py +0 -0
  411. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/utils/matrix_utils.py +0 -0
  412. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/visualizers/__init__.py +0 -0
  413. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/linalg/visualizers/plots.py +0 -0
  414. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/core/__init__.py +0 -0
  415. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/core/base.py +0 -0
  416. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/__init__.py +0 -0
  417. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/continued_fractions.py +0 -0
  418. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/diophantine.py +0 -0
  419. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/factorization.py +0 -0
  420. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/modular_arithmetic.py +0 -0
  421. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/primality.py +0 -0
  422. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/prime_distribution.py +0 -0
  423. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/quadratic_residues.py +0 -0
  424. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/sums_of_squares.py +0 -0
  425. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/systems/zeta.py +0 -0
  426. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/utils/__init__.py +0 -0
  427. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/utils/gcd_lcm.py +0 -0
  428. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/visualizers/__init__.py +0 -0
  429. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/number_theory/visualizers/plots.py +0 -0
  430. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/core/__init__.py +0 -0
  431. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/acceleration.py +0 -0
  432. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/chebyshev.py +0 -0
  433. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/interpolation.py +0 -0
  434. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/polynomials.py +0 -0
  435. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/regression.py +0 -0
  436. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/splines.py +0 -0
  437. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/systems/summation.py +0 -0
  438. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/utils/__init__.py +0 -0
  439. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/utils/error_analysis.py +0 -0
  440. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/visualizers/__init__.py +0 -0
  441. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/numerical_analysis/visualizers/plots.py +0 -0
  442. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/core/__init__.py +0 -0
  443. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/systems/__init__.py +0 -0
  444. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/ode_dynamics/utils/__init__.py +0 -0
  445. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/core/__init__.py +0 -0
  446. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/__init__.py +0 -0
  447. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/dynamic_programming.py +0 -0
  448. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/game_theory.py +0 -0
  449. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/systems/linear_programming.py +0 -0
  450. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/__init__.py +0 -0
  451. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/utils/test_functions.py +0 -0
  452. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/optimization/visualizers/__init__.py +0 -0
  453. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/core/__init__.py +0 -0
  454. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/__init__.py +0 -0
  455. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/bayes.py +0 -0
  456. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/branching.py +0 -0
  457. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/buffon.py +0 -0
  458. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/continuous.py +0 -0
  459. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/continuous_time_markov.py +0 -0
  460. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/discrete.py +0 -0
  461. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/inequalities.py +0 -0
  462. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/limit_theorems.py +0 -0
  463. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/queueing.py +0 -0
  464. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/st_petersburg.py +0 -0
  465. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/systems/stochastic_processes.py +0 -0
  466. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/utils/__init__.py +0 -0
  467. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/utils/diagnostics.py +0 -0
  468. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/visualizers/__init__.py +0 -0
  469. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/probability/visualizers/plots.py +0 -0
  470. /mathematicskit-0.2.1/mathematicskit/abstract_algebra/tests/__init__.py → /mathematicskit-0.5.0/mathematicskit/py.typed +0 -0
  471. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/core/__init__.py +0 -0
  472. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/airy.py +0 -0
  473. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/bessel.py +0 -0
  474. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/elliptic.py +0 -0
  475. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/error_functions.py +0 -0
  476. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/fourier_transform.py +0 -0
  477. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/gamma_beta.py +0 -0
  478. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/hypergeometric.py +0 -0
  479. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/lambert_w.py +0 -0
  480. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/mathieu.py +0 -0
  481. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/orthogonal_polynomials.py +0 -0
  482. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/systems/zeta.py +0 -0
  483. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/special_functions/utils/__init__.py +0 -0
  484. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/core/__init__.py +0 -0
  485. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/core/base.py +0 -0
  486. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/__init__.py +0 -0
  487. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/confidence_intervals.py +0 -0
  488. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/correlation.py +0 -0
  489. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/descriptive.py +0 -0
  490. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/hypothesis_tests.py +0 -0
  491. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/likelihood.py +0 -0
  492. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/multiple_testing.py +0 -0
  493. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/regression.py +0 -0
  494. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/systems/shrinkage.py +0 -0
  495. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/utils/__init__.py +0 -0
  496. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/utils/effect_size.py +0 -0
  497. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/visualizers/__init__.py +0 -0
  498. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit/statistics/visualizers/plots.py +0 -0
  499. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit.egg-info/dependency_links.txt +0 -0
  500. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/mathematicskit.egg-info/top_level.txt +0 -0
  501. {mathematicskit-0.2.1 → mathematicskit-0.5.0}/setup.cfg +0 -0
@@ -0,0 +1,293 @@
1
+ Metadata-Version: 2.4
2
+ Name: mathematicskit
3
+ Version: 0.5.0
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
+ Author-email: Charles Poli <cpoli374@gmail.com>
6
+ Maintainer-email: Charles Poli <cpoli374@gmail.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/cpoli/mathematicskit
9
+ Project-URL: Issues, https://github.com/cpoli/mathematicskit/issues
10
+ Project-URL: Changelog, https://github.com/cpoli/mathematicskit/blob/main/CHANGELOG.md
11
+ Project-URL: Documentation, https://cpoli.github.io/mathematicskit/
12
+ Keywords: mathematics,numerical-analysis,linear-algebra,computational-mathematics,optimization,partial-differential-equations,graph-theory,number-theory,probability,statistics,education,numerical-methods,dynamical-systems,fractals
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Education
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Typing :: Typed
25
+ Classifier: Topic :: Education
26
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
27
+ Requires-Python: >=3.10
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: numpy>=1.24
31
+ Requires-Dist: scipy>=1.10
32
+ Requires-Dist: matplotlib>=3.6
33
+ Provides-Extra: fast
34
+ Requires-Dist: numba>=0.58; extra == "fast"
35
+ Provides-Extra: test
36
+ Requires-Dist: pytest>=7.0; extra == "test"
37
+ Requires-Dist: pytest-cov; extra == "test"
38
+ Requires-Dist: hypothesis>=6.90; extra == "test"
39
+ Requires-Dist: pillow>=9.0; extra == "test"
40
+ Provides-Extra: docs
41
+ Requires-Dist: sphinx>=7.0; extra == "docs"
42
+ Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
43
+ Requires-Dist: sphinx-autodoc-typehints>=1.25; extra == "docs"
44
+ Requires-Dist: myst-parser>=2.0; extra == "docs"
45
+ Requires-Dist: sphinx-gallery>=0.15; extra == "docs"
46
+ Requires-Dist: sphinx-design>=0.6; extra == "docs"
47
+ Requires-Dist: jupyterlite-sphinx>=0.17; extra == "docs"
48
+ Requires-Dist: jupyterlite-pyodide-kernel>=0.4; extra == "docs"
49
+ Provides-Extra: dev
50
+ Requires-Dist: mathematicskit[docs,fast,test]; extra == "dev"
51
+ Requires-Dist: ruff>=0.6; extra == "dev"
52
+ Requires-Dist: mypy>=1.10; extra == "dev"
53
+ Requires-Dist: pre-commit>=3.7; extra == "dev"
54
+ Dynamic: license-file
55
+
56
+ # mathematicskit
57
+
58
+ | | |
59
+ |:--|:-:|
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-99%25-brightgreen)](#coverage) |
62
+ | Documentation | [![Docs](https://img.shields.io/badge/docs-cpoli.github.io%2Fmathematicskit-blue)](https://cpoli.github.io/mathematicskit/) |
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
+ | 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
+ | 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) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
67
+
68
+ **See how the algorithms of computational mathematics actually work.**
69
+ mathematicskit is a Python toolkit for learning and teaching numerical
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
+
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
+
78
+ - **For students:** watch Newton's method converge quadratically while
79
+ bisection converges linearly, see the Runge phenomenon appear, trace the
80
+ Feigenbaum route to chaos, all in a few lines each.
81
+ - **For instructors:** 16 domains, one consistent API, and hundreds of
82
+ gallery examples, each downloadable as a notebook or runnable in the
83
+ browser, ready to hand out as course material.
84
+ - **Built on numpy/scipy:** production-grade library routines under the
85
+ hood, with algorithms hand-rolled only where the steps themselves are
86
+ what you're learning (see [Design](#design)).
87
+
88
+ mathematicskit is part of a family of packages --
89
+ [physicskit](https://github.com/cpoli/physicskit), **mathematicskit**
90
+ and [chemistrykit](https://github.com/cpoli/chemistrykit) -- that share
91
+ the same architecture, API conventions, and history-driven documentation.
92
+
93
+ ## Install
94
+
95
+ ```bash
96
+ pip install "mathematicskit[fast]" # with numba JIT acceleration (recommended)
97
+ pip install mathematicskit # pure numpy/scipy/matplotlib, e.g. for Pyodide/JupyterLite
98
+ ```
99
+
100
+ Then `import mathematicskit as mk`. (The shorter name `mathkit` was
101
+ already taken on PyPI by an unrelated package.) The `fast` extra adds
102
+ [numba](https://numba.pydata.org/), which compiles the inner loops of
103
+ `ode_dynamics`, `fractals_chaos`, `pde`, and `integrators`. Without it
104
+ those kernels run as plain Python: same results, slower.
105
+
106
+ For development: `pip install -e ".[dev]"` (see [CONTRIBUTING.md](CONTRIBUTING.md)).
107
+
108
+ ## Quick start
109
+
110
+ ```python
111
+ import numpy as np
112
+ import mathematicskit as mk
113
+ from mathematicskit.numerical_analysis.visualizers import plot_convergence_history
114
+
115
+ f, fprime = (lambda x: x**2 - 2.0), (lambda x: 2.0 * x)
116
+ newton = mk.numerical_analysis.NewtonRaphson(f, fprime, x0=3.0, tol=1e-14).solve()
117
+ bisection = mk.numerical_analysis.Bisection(f, 0.0, 3.0, tol=1e-14).solve()
118
+ print(len(newton.history), len(bisection.history)) # 8 iterates vs. 49
119
+
120
+ ax = plot_convergence_history(bisection, root_exact=np.sqrt(2))
121
+ plot_convergence_history(newton, root_exact=np.sqrt(2), ax=ax)
122
+ ax.legend()
123
+ ```
124
+
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 using the badge above.
127
+
128
+ ## Subpackages
129
+
130
+ Domain subpackages, each with runnable examples linked below:
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), 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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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).
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
+
197
+ Shared infrastructure, used across the subpackages above rather than
198
+ standalone toolkits:
199
+
200
+ - `mathematicskit.constants` -- mathematical constants and default numerical
201
+ tolerances shared across subpackages.
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
205
+ `mathematicskit.ode_dynamics`.
206
+
207
+ ## Design
208
+
209
+ mathematicskit calls `numpy`/`scipy` directly for anything they already
210
+ implement (decompositions, eigensolvers, quadrature, statistical
211
+ distributions, optimization routines, and more), and hand-rolls an
212
+ algorithm only where no `numpy`/`scipy` equivalent exists (e.g. graph
213
+ algorithms, finite fields, modular arithmetic) or where the
214
+ algorithm's own iterate behavior is the pedagogical subject (e.g.
215
+ root-finder convergence history, autodiff). No hard dependency on
216
+ `networkx`, `cvxpy`, or SageMath. The ODE integrators are shared across
217
+ domains.
218
+
219
+ The public API follows the [stability and deprecation policy](CONTRIBUTING.md#api-stability-and-deprecation-policy).
220
+
221
+ ## Test
222
+
223
+ Tests live alongside each subpackage, at `mathematicskit/<name>/tests/`.
224
+
225
+ ```bash
226
+ pytest # everything
227
+ pytest mathematicskit/numerical_analysis/tests # a single subpackage
228
+
229
+ # docstring examples, across every subpackage:
230
+ MPLBACKEND=Agg pytest --doctest-modules mathematicskit --ignore-glob="*/tests/*"
231
+ ```
232
+
233
+ Both commands, plus `ruff check`/`ruff format --check`, run in CI on
234
+ every PR (`.github/workflows/ci.yml`) across Python 3.10-3.14 on Linux and
235
+ macOS. See [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR.
236
+
237
+ ### Coverage
238
+
239
+ ```bash
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
242
+ ```
243
+
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:
251
+
252
+ | Subpackage | Coverage | | Subpackage | Coverage |
253
+ |:--|--:|---|:--|--:|
254
+ | `abstract_algebra` | 97% | | `numerical_analysis` | 96% |
255
+ | `calculus` | 93% | | `ode_dynamics` | 100% |
256
+ | `combinatorics` | 96% | | `optimization` | 99% |
257
+ | `complex_analysis` | 99% | | `pde` | 99% |
258
+ | `fractals_chaos` | 100% | | `probability` | 98% |
259
+ | `geometry` | 99% | | `special_functions` | 99% |
260
+ | `graph_theory` | 99% | | `statistics` | 99% |
261
+ | `linalg` | 94% | | `integrators` | 100% |
262
+ | `number_theory` | 98% | | `constants` | 100% |
263
+
264
+ `visualizers/` modules are smoke-tested only (correct return type/shape,
265
+ or that `anim.save()` succeeds) rather than covered line-by-line, per the
266
+ testing convention in [CLAUDE.md](CLAUDE.md).
267
+
268
+ ## Docs
269
+
270
+ Built docs are hosted at <https://cpoli.github.io/mathematicskit/>, served from
271
+ the `gh-pages` branch. To build locally:
272
+
273
+ ```bash
274
+ pip install -e ".[docs]"
275
+ cd docs && make html
276
+ ```
277
+
278
+ See `docs/source/history/` for a chronology of each domain's foundational
279
+ results, linked to the corresponding implementation at each step.
280
+
281
+ ## Citation
282
+
283
+ If you use mathematicskit in your research, please cite it — see
284
+ [CITATION.cff](CITATION.cff).
285
+
286
+ ## Contributing
287
+
288
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Please note that this project
289
+ follows the [Contributor Covenant](CODE_OF_CONDUCT.md).
290
+
291
+ ## License
292
+
293
+ MIT -- see [LICENSE](LICENSE).
@@ -0,0 +1,238 @@
1
+ # mathematicskit
2
+
3
+ | | |
4
+ |:--|:-:|
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-99%25-brightgreen)](#coverage) |
7
+ | Documentation | [![Docs](https://img.shields.io/badge/docs-cpoli.github.io%2Fmathematicskit-blue)](https://cpoli.github.io/mathematicskit/) |
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
+ | 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
+ | 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) [![JupyterLite](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://cpoli.github.io/mathematicskit/lite/lab/) |
12
+
13
+ **See how the algorithms of computational mathematics actually work.**
14
+ mathematicskit is a Python toolkit for learning and teaching numerical
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
+
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
+
23
+ - **For students:** watch Newton's method converge quadratically while
24
+ bisection converges linearly, see the Runge phenomenon appear, trace the
25
+ Feigenbaum route to chaos, all in a few lines each.
26
+ - **For instructors:** 16 domains, one consistent API, and hundreds of
27
+ gallery examples, each downloadable as a notebook or runnable in the
28
+ browser, ready to hand out as course material.
29
+ - **Built on numpy/scipy:** production-grade library routines under the
30
+ hood, with algorithms hand-rolled only where the steps themselves are
31
+ what you're learning (see [Design](#design)).
32
+
33
+ mathematicskit is part of a family of packages --
34
+ [physicskit](https://github.com/cpoli/physicskit), **mathematicskit**
35
+ and [chemistrykit](https://github.com/cpoli/chemistrykit) -- that share
36
+ the same architecture, API conventions, and history-driven documentation.
37
+
38
+ ## Install
39
+
40
+ ```bash
41
+ pip install "mathematicskit[fast]" # with numba JIT acceleration (recommended)
42
+ pip install mathematicskit # pure numpy/scipy/matplotlib, e.g. for Pyodide/JupyterLite
43
+ ```
44
+
45
+ Then `import mathematicskit as mk`. (The shorter name `mathkit` was
46
+ already taken on PyPI by an unrelated package.) The `fast` extra adds
47
+ [numba](https://numba.pydata.org/), which compiles the inner loops of
48
+ `ode_dynamics`, `fractals_chaos`, `pde`, and `integrators`. Without it
49
+ those kernels run as plain Python: same results, slower.
50
+
51
+ For development: `pip install -e ".[dev]"` (see [CONTRIBUTING.md](CONTRIBUTING.md)).
52
+
53
+ ## Quick start
54
+
55
+ ```python
56
+ import numpy as np
57
+ import mathematicskit as mk
58
+ from mathematicskit.numerical_analysis.visualizers import plot_convergence_history
59
+
60
+ f, fprime = (lambda x: x**2 - 2.0), (lambda x: 2.0 * x)
61
+ newton = mk.numerical_analysis.NewtonRaphson(f, fprime, x0=3.0, tol=1e-14).solve()
62
+ bisection = mk.numerical_analysis.Bisection(f, 0.0, 3.0, tol=1e-14).solve()
63
+ print(len(newton.history), len(bisection.history)) # 8 iterates vs. 49
64
+
65
+ ax = plot_convergence_history(bisection, root_exact=np.sqrt(2))
66
+ plot_convergence_history(newton, root_exact=np.sqrt(2), ax=ax)
67
+ ax.legend()
68
+ ```
69
+
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 using the badge above.
72
+
73
+ ## Subpackages
74
+
75
+ Domain subpackages, each with runnable examples linked below:
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), 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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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
+
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).
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
+
142
+ Shared infrastructure, used across the subpackages above rather than
143
+ standalone toolkits:
144
+
145
+ - `mathematicskit.constants` -- mathematical constants and default numerical
146
+ tolerances shared across subpackages.
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
150
+ `mathematicskit.ode_dynamics`.
151
+
152
+ ## Design
153
+
154
+ mathematicskit calls `numpy`/`scipy` directly for anything they already
155
+ implement (decompositions, eigensolvers, quadrature, statistical
156
+ distributions, optimization routines, and more), and hand-rolls an
157
+ algorithm only where no `numpy`/`scipy` equivalent exists (e.g. graph
158
+ algorithms, finite fields, modular arithmetic) or where the
159
+ algorithm's own iterate behavior is the pedagogical subject (e.g.
160
+ root-finder convergence history, autodiff). No hard dependency on
161
+ `networkx`, `cvxpy`, or SageMath. The ODE integrators are shared across
162
+ domains.
163
+
164
+ The public API follows the [stability and deprecation policy](CONTRIBUTING.md#api-stability-and-deprecation-policy).
165
+
166
+ ## Test
167
+
168
+ Tests live alongside each subpackage, at `mathematicskit/<name>/tests/`.
169
+
170
+ ```bash
171
+ pytest # everything
172
+ pytest mathematicskit/numerical_analysis/tests # a single subpackage
173
+
174
+ # docstring examples, across every subpackage:
175
+ MPLBACKEND=Agg pytest --doctest-modules mathematicskit --ignore-glob="*/tests/*"
176
+ ```
177
+
178
+ Both commands, plus `ruff check`/`ruff format --check`, run in CI on
179
+ every PR (`.github/workflows/ci.yml`) across Python 3.10-3.14 on Linux and
180
+ macOS. See [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR.
181
+
182
+ ### Coverage
183
+
184
+ ```bash
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
187
+ ```
188
+
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:
196
+
197
+ | Subpackage | Coverage | | Subpackage | Coverage |
198
+ |:--|--:|---|:--|--:|
199
+ | `abstract_algebra` | 97% | | `numerical_analysis` | 96% |
200
+ | `calculus` | 93% | | `ode_dynamics` | 100% |
201
+ | `combinatorics` | 96% | | `optimization` | 99% |
202
+ | `complex_analysis` | 99% | | `pde` | 99% |
203
+ | `fractals_chaos` | 100% | | `probability` | 98% |
204
+ | `geometry` | 99% | | `special_functions` | 99% |
205
+ | `graph_theory` | 99% | | `statistics` | 99% |
206
+ | `linalg` | 94% | | `integrators` | 100% |
207
+ | `number_theory` | 98% | | `constants` | 100% |
208
+
209
+ `visualizers/` modules are smoke-tested only (correct return type/shape,
210
+ or that `anim.save()` succeeds) rather than covered line-by-line, per the
211
+ testing convention in [CLAUDE.md](CLAUDE.md).
212
+
213
+ ## Docs
214
+
215
+ Built docs are hosted at <https://cpoli.github.io/mathematicskit/>, served from
216
+ the `gh-pages` branch. To build locally:
217
+
218
+ ```bash
219
+ pip install -e ".[docs]"
220
+ cd docs && make html
221
+ ```
222
+
223
+ See `docs/source/history/` for a chronology of each domain's foundational
224
+ results, linked to the corresponding implementation at each step.
225
+
226
+ ## Citation
227
+
228
+ If you use mathematicskit in your research, please cite it — see
229
+ [CITATION.cff](CITATION.cff).
230
+
231
+ ## Contributing
232
+
233
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Please note that this project
234
+ follows the [Contributor Covenant](CODE_OF_CONDUCT.md).
235
+
236
+ ## License
237
+
238
+ MIT -- see [LICENSE](LICENSE).
@@ -9,10 +9,15 @@ Domains are added incrementally; see ``__all__`` for what's currently
9
9
  implemented, and CHANGELOG.md for the full roadmap.
10
10
  """
11
11
 
12
- from mathematicskit import (
12
+ # Defined before the subpackage imports: each subpackage re-exports it via
13
+ # ``from mathematicskit import __version__`` while this module is still loading.
14
+ __version__ = "0.5.0"
15
+
16
+ from mathematicskit import ( # noqa: E402
13
17
  abstract_algebra,
14
18
  calculus,
15
19
  combinatorics,
20
+ complex_analysis,
16
21
  constants,
17
22
  fractals_chaos,
18
23
  geometry,
@@ -23,17 +28,17 @@ from mathematicskit import (
23
28
  numerical_analysis,
24
29
  ode_dynamics,
25
30
  optimization,
31
+ pde,
26
32
  probability,
27
33
  special_functions,
28
34
  statistics,
29
35
  )
30
36
 
31
- __version__ = "0.2.1"
32
-
33
37
  __all__ = [
34
38
  "abstract_algebra",
35
39
  "calculus",
36
40
  "combinatorics",
41
+ "complex_analysis",
37
42
  "constants",
38
43
  "fractals_chaos",
39
44
  "geometry",
@@ -44,6 +49,7 @@ __all__ = [
44
49
  "numerical_analysis",
45
50
  "ode_dynamics",
46
51
  "optimization",
52
+ "pde",
47
53
  "probability",
48
54
  "special_functions",
49
55
  "statistics",
@@ -0,0 +1,47 @@
1
+ """Optional Numba acceleration.
2
+
3
+ Numba is an optional dependency (``pip install mathematicskit[fast]``).
4
+ When it is installed, :func:`njit` is :func:`numba.njit`. When it is not
5
+ (including in Pyodide/JupyterLite, where Numba cannot run), :func:`njit`
6
+ is a no-op decorator: every kernel runs as plain Python/NumPy with
7
+ identical results, only slower. Both call forms are supported --
8
+ ``@njit`` and ``@njit(cache=True)`` -- so decorated code never needs to
9
+ know which is in use.
10
+
11
+ Examples
12
+ --------
13
+ >>> from mathematicskit.integrators import njit
14
+ >>> @njit
15
+ ... def square(x):
16
+ ... return x * x
17
+ >>> square(3.0)
18
+ 9.0
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ from collections.abc import Callable
24
+ from typing import Any
25
+
26
+ __all__ = ["HAS_NUMBA", "njit"]
27
+
28
+ try:
29
+ from numba import njit as _numba_njit
30
+
31
+ HAS_NUMBA = True
32
+ except ImportError: # pragma: no cover - exercised only without numba installed
33
+ HAS_NUMBA = False
34
+
35
+
36
+ def _identity_njit(*args: Any, **kwargs: Any) -> Any:
37
+ """Stand-in for :func:`numba.njit` that returns the function unchanged."""
38
+ if len(args) == 1 and callable(args[0]) and not kwargs:
39
+ return args[0]
40
+
41
+ def decorator(func: Callable[..., Any]) -> Callable[..., Any]:
42
+ return func
43
+
44
+ return decorator
45
+
46
+
47
+ njit: Callable[..., Any] = _numba_njit if HAS_NUMBA else _identity_njit