All checks were successful
Publish Python Package to PyPI / deploy (push) Successful in 18s
This commit introduces a major enhancement to the genetic algorithm's convergence logic and refactors key parts of the API for better clarity and usability.
- **feat(ga):** Re-implements the GA solver (CPU & CUDA) to use a more robust strategy based on Elitism, Crossover, and Mutation. This replaces the previous, less efficient model and is designed to significantly improve accuracy and convergence speed.
- **feat(api):** Updates `GA_Options` to expose the new GA strategy parameters:
- Renames `mutation_percentage` to `mutation_strength` for clarity.
- Adds `elite_ratio`, `crossover_ratio`, and `mutation_ratio`.
- Includes a `__post_init__` validator to ensure ratios are valid.
- **refactor(api):** Moves `quadratic_solve` from a standalone function to a method of the `Function` class (`f1.quadratic_solve()`). This provides a cleaner, more object-oriented API.
- **docs:** Updates the README, `GA_Options` doc page, and `quadratic_solve` doc page to reflect all API changes, new parameters, and updated usage examples.
- **chore:** Bumps version to 0.4.0.
Reviewed-on: #16
Co-authored-by: Jonathan Rampersad <rampersad.jonathan@gmail.com>
Co-committed-by: Jonathan Rampersad <rampersad.jonathan@gmail.com>
49 lines
1.5 KiB
TOML
49 lines
1.5 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
# --- Core Metadata ---
|
|
name = "polysolve"
|
|
version = "0.4.0"
|
|
authors = [
|
|
{ name="Jonathan Rampersad", email="jonathan@jono-rams.work" },
|
|
]
|
|
description = "A Python library for representing, manipulating, and solving exponential functions using analytical methods and genetic algorithms, with optional CUDA acceleration."
|
|
readme = "README.md"
|
|
requires-python = ">=3.8"
|
|
license = { file="LICENSE" }
|
|
keywords = ["math", "polynomial", "genetic algorithm", "cuda", "equation solver"]
|
|
|
|
# --- Classifiers ---
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Scientific/Engineering :: Mathematics",
|
|
]
|
|
|
|
# --- Dependencies ---
|
|
dependencies = [
|
|
"numpy>=1.21"
|
|
]
|
|
|
|
# --- Optional Dependencies (Extras) ---
|
|
[project.optional-dependencies]
|
|
cuda12 = ["cupy-cuda12x"]
|
|
dev = ["pytest"]
|
|
|
|
[project.urls]
|
|
Homepage = "https://polysolve.jono-rams.work"
|
|
Documentation = "https://polysolve.jono-rams.work/docs"
|
|
Repository = "https://github.com/jono-rams/PolySolve"
|
|
"Bug Tracker" = "https://github.com/jono-rams/PolySolve/issues"
|