gplite 2.1.2__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 (52) hide show
  1. gplite-2.1.2/.gitignore +18 -0
  2. gplite-2.1.2/CHANGELOG.md +59 -0
  3. gplite-2.1.2/LICENSE +674 -0
  4. gplite-2.1.2/PKG-INFO +822 -0
  5. gplite-2.1.2/README.md +133 -0
  6. gplite-2.1.2/benchmarks/README.md +25 -0
  7. gplite-2.1.2/benchmarks/bench_active_learning.py +177 -0
  8. gplite-2.1.2/benchmarks/bench_gaussian_process.py +177 -0
  9. gplite-2.1.2/benchmarks/bench_kernels.py +127 -0
  10. gplite-2.1.2/benchmarks/benchmark_gpy.py +54 -0
  11. gplite-2.1.2/examples/active_learning_ei_max.csv +9 -0
  12. gplite-2.1.2/examples/active_learning_example.py +115 -0
  13. gplite-2.1.2/examples/active_learning_mae.csv +6 -0
  14. gplite-2.1.2/examples/active_learning_random.csv +9 -0
  15. gplite-2.1.2/examples/active_learning_uncertainty.csv +9 -0
  16. gplite-2.1.2/examples/anisotropic_kernel_example.py +89 -0
  17. gplite-2.1.2/examples/composite_kernels.py +220 -0
  18. gplite-2.1.2/examples/kernel_comparison_example.py +75 -0
  19. gplite-2.1.2/examples/save_load_example.py +82 -0
  20. gplite-2.1.2/pyproject.toml +28 -0
  21. gplite-2.1.2/src/gplite/ActiveLearning/README.md +158 -0
  22. gplite-2.1.2/src/gplite/ActiveLearning/__init__.py +3 -0
  23. gplite-2.1.2/src/gplite/ActiveLearning/active_learning.py +399 -0
  24. gplite-2.1.2/src/gplite/ActiveLearning/selection_functions.py +184 -0
  25. gplite-2.1.2/src/gplite/GaussianProcess/README.md +133 -0
  26. gplite-2.1.2/src/gplite/GaussianProcess/__init__.py +3 -0
  27. gplite-2.1.2/src/gplite/GaussianProcess/gaussian_process.py +366 -0
  28. gplite-2.1.2/src/gplite/Kernels/README.md +176 -0
  29. gplite-2.1.2/src/gplite/Kernels/__init__.py +11 -0
  30. gplite-2.1.2/src/gplite/Kernels/_base.py +345 -0
  31. gplite-2.1.2/src/gplite/Kernels/_composite.py +427 -0
  32. gplite-2.1.2/src/gplite/Kernels/constant.py +181 -0
  33. gplite-2.1.2/src/gplite/Kernels/matern.py +381 -0
  34. gplite-2.1.2/src/gplite/Kernels/periodic.py +364 -0
  35. gplite-2.1.2/src/gplite/Kernels/rbf.py +320 -0
  36. gplite-2.1.2/src/gplite/Optimization/README.md +119 -0
  37. gplite-2.1.2/src/gplite/Optimization/__init__.py +0 -0
  38. gplite-2.1.2/src/gplite/Optimization/active_learning/__init__.py +0 -0
  39. gplite-2.1.2/src/gplite/Optimization/active_learning/loss_functions.py +58 -0
  40. gplite-2.1.2/src/gplite/Optimization/active_learning/optimization.py +189 -0
  41. gplite-2.1.2/src/gplite/Optimization/gaussian_process/__init__.py +0 -0
  42. gplite-2.1.2/src/gplite/Optimization/gaussian_process/loss_functions.py +108 -0
  43. gplite-2.1.2/src/gplite/Optimization/gaussian_process/optimization.py +193 -0
  44. gplite-2.1.2/src/gplite/__init__.py +17 -0
  45. gplite-2.1.2/src/gplite/_utils/__init__.py +0 -0
  46. gplite-2.1.2/src/gplite/_utils/_computation.py +129 -0
  47. gplite-2.1.2/src/gplite/_utils/_constants.py +10 -0
  48. gplite-2.1.2/src/gplite/_utils/_data.py +134 -0
  49. gplite-2.1.2/src/gplite/_utils/_errors.py +7 -0
  50. gplite-2.1.2/src/gplite/_utils/_types.py +16 -0
  51. gplite-2.1.2/src/gplite/_utils/_validation.py +360 -0
  52. gplite-2.1.2/src/gplite/py.typed +0 -0
@@ -0,0 +1,18 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+ .python-version
12
+ uv.lock
13
+
14
+ # OS files
15
+ .DS_Store
16
+
17
+ # misc
18
+ TODO
@@ -0,0 +1,59 @@
1
+ # Changelog
2
+
3
+ Notable changes to this project will be documented in this file.
4
+
5
+ ## [2.1.2] - 2026-03-07
6
+
7
+ ### Added
8
+ - **Benchmarking** [Benchmark suite](benchmarks/) for testing compute-heavy sections of this package
9
+
10
+ ## [2.1.1] - 2026-03-07
11
+
12
+ ### Added
13
+
14
+ - **Performance** Minor changes to computation utilities and optimization algorithms for increased performance
15
+
16
+ ### Fixed
17
+
18
+ - v2.1.0 changelog now correctly reflects the date it was released
19
+
20
+ ## [2.1.0] - 2026-03-05
21
+
22
+ ### Added
23
+
24
+ - **Matérn kernel** (`MaternKernel`) with support for ν=1.5 (once differentiable) and ν=2.5 (twice differentiable), including isotropic and anisotropic variants
25
+ - **Expected Improvement** selection strategies for active learning: `ei_max` (maximize) and `ei_min` (minimize) for Bayesian optimization use cases
26
+ - **Model save/load**: `gp.save(filepath)` and `GaussianProcess.load(filepath)` using pickle serialization
27
+ - Efficient `_compute_diag` method on all kernels for O(n) predictive variance computation instead of O(n²)
28
+ - [Example files for usage reference](examples/)
29
+ - **Logging capability** to give ActiveLearner updates in a file rather than (or along with) stdout
30
+
31
+ ### Fixed
32
+
33
+ - Predictive variance now correctly computed for non-unit-diagonal kernels (e.g., `ConstantKernel * RBFKernel`); previously hardcoded `k(x,x) = 1`
34
+ - Active learning optimizer now refits the model after setting final hyperparameters, matching GP optimizer behavior
35
+ - Active learning optimizer fallback path now refits when all screening runs fail
36
+ - Missing `raise` in `validate_variable_names` — wrong number of variable names was silently accepted
37
+ - Active learning `max_points` budget now correctly accounts for initial training points and clamps `batch_size` to prevent overshooting
38
+ - Installation instructions now have the correct link for installing the package with uv and standalone pip
39
+
40
+ ### Changed
41
+
42
+ - Refactored Cholesky decomposition into two clear phases (exponential noise retry, then eigenvalue fallback), fixing incorrect noise return value after eigenvalue correction
43
+ - Renamed `SMALL_EPSILON` to `EPSILON` in `_utils/_constants.py`
44
+ - `_validate_input_data` in base `Kernel` class changed from abstract to concrete method, reducing boilerplate in concrete kernel subclasses
45
+ - Default `max_points` in `ActiveLearner` now uses `len(y_full)` instead of `np.floor(len(y_full))`, returning an int instead of float
46
+ - Removed unused `self.x_test` and `self.y_test` attributes from `GaussianProcess`
47
+ - Simplified `fit()` method by removing redundant `_fit_without_optimization()` call in the optimize branch
48
+
49
+ ## [2.0.0] - 2026-02-15
50
+
51
+
52
+ ### Features
53
+
54
+ - Gaussian Process regression with automatic hyperparameter optimization via log marginal likelihood
55
+ - Kernels: RBF, Periodic, Constant, with additive and product composition (`+` and `*`)
56
+ - Anisotropic (ARD) kernel variants with per-dimension hyperparameters when applicable
57
+ - Active learning with uncertainty, max absolute error, and random selection strategies
58
+ - Input and target normalization
59
+ - String export of fitted GP expressions for integration with external tools (e.g., OpenMM)