ulpwise 0.1.1__tar.gz → 0.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 (27) hide show
  1. {ulpwise-0.1.1 → ulpwise-0.1.2}/CHANGELOG.md +5 -0
  2. {ulpwise-0.1.1 → ulpwise-0.1.2}/Cargo.lock +1 -1
  3. {ulpwise-0.1.1 → ulpwise-0.1.2}/Cargo.toml +1 -1
  4. {ulpwise-0.1.1 → ulpwise-0.1.2}/PKG-INFO +5 -4
  5. {ulpwise-0.1.1 → ulpwise-0.1.2}/README.md +4 -3
  6. {ulpwise-0.1.1 → ulpwise-0.1.2}/pyproject.toml +4 -1
  7. {ulpwise-0.1.1 → ulpwise-0.1.2}/python/ulpwise/__init__.py +1 -1
  8. {ulpwise-0.1.1 → ulpwise-0.1.2}/.github/workflows/ci.yml +0 -0
  9. {ulpwise-0.1.1 → ulpwise-0.1.2}/.github/workflows/release.yml +0 -0
  10. {ulpwise-0.1.1 → ulpwise-0.1.2}/.gitignore +0 -0
  11. {ulpwise-0.1.1 → ulpwise-0.1.2}/CONTRIBUTING.md +0 -0
  12. {ulpwise-0.1.1 → ulpwise-0.1.2}/LICENSE-APACHE +0 -0
  13. {ulpwise-0.1.1 → ulpwise-0.1.2}/LICENSE-MIT +0 -0
  14. {ulpwise-0.1.1 → ulpwise-0.1.2}/examples/sqrt_knife_values.py +0 -0
  15. {ulpwise-0.1.1 → ulpwise-0.1.2}/examples/torch_sqrt_conformance.py +0 -0
  16. {ulpwise-0.1.1 → ulpwise-0.1.2}/python/ulpwise/__main__.py +0 -0
  17. {ulpwise-0.1.1 → ulpwise-0.1.2}/python/ulpwise/corpus/__init__.py +0 -0
  18. {ulpwise-0.1.1 → ulpwise-0.1.2}/python/ulpwise/corpus/cases.json +0 -0
  19. {ulpwise-0.1.1 → ulpwise-0.1.2}/python/ulpwise/plugin.py +0 -0
  20. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/edge.rs +0 -0
  21. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/exact.rs +0 -0
  22. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/knife.rs +0 -0
  23. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/lib.rs +0 -0
  24. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/py.rs +0 -0
  25. {ulpwise-0.1.1 → ulpwise-0.1.2}/src/ulp.rs +0 -0
  26. {ulpwise-0.1.1 → ulpwise-0.1.2}/tests/test_core.py +0 -0
  27. {ulpwise-0.1.1 → ulpwise-0.1.2}/tests/test_corpus.py +0 -0
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2 (2026-09-24)
4
+
5
+ - `ulpwise` console script, so `uvx ulpwise midpoint sqrt 0.85`, `pipx run ulpwise ...` and a plain
6
+ `ulpwise ...` inside a virtualenv work without `python -m`.
7
+
3
8
  ## 0.1.1 (2026-09-24)
4
9
 
5
10
  No code changes. The AI disclosure in the README was shortened and the package was republished
@@ -120,7 +120,7 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
120
120
 
121
121
  [[package]]
122
122
  name = "ulpwise"
123
- version = "0.1.1"
123
+ version = "0.1.2"
124
124
  dependencies = [
125
125
  "pyo3",
126
126
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "ulpwise"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  edition = "2021"
5
5
  rust-version = "1.86"
6
6
  license = "MIT OR Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ulpwise
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Framework :: Pytest
6
6
  Classifier: Intended Audience :: Developers
@@ -51,10 +51,10 @@ estimator under test took two different branches. `ulpwise` finds that input, an
51
51
  like it in `[0.5, 1)`, before CI does:
52
52
 
53
53
  ```
54
- $ python -m ulpwise midpoint sqrt 0.8528626561164856 --dtype f32
54
+ $ ulpwise midpoint sqrt 0.8528626561164856 --dtype f32
55
55
  rounded 0.9235056042671204, exact result lies above it, 3.771e-04 ulp from the rounding midpoint
56
56
 
57
- $ python -m ulpwise knife sqrt --lo 0.85 --hi 0.86 --tol 1e-3 --limit 3
57
+ $ ulpwise knife sqrt --lo 0.85 --hi 0.86 --tol 1e-3 --limit 3
58
58
  x rounded midpoint distance (ulp) exact lies
59
59
  0.8500027060508728 0.9219558835029602 2.521e-04 above
60
60
  0.8500217199325562 0.9219662547111511 5.452e-04 below
@@ -82,7 +82,8 @@ run.
82
82
  ## Install
83
83
 
84
84
  ```sh
85
- pip install ulpwise
85
+ pip install ulpwise # or: uv add ulpwise
86
+ uvx ulpwise special f32 # run the command line tool without installing anything
86
87
  ```
87
88
 
88
89
  Wheels on [PyPI](https://pypi.org/project/ulpwise/) cover Linux x86_64 and aarch64, macOS arm64 and
@@ -26,10 +26,10 @@ estimator under test took two different branches. `ulpwise` finds that input, an
26
26
  like it in `[0.5, 1)`, before CI does:
27
27
 
28
28
  ```
29
- $ python -m ulpwise midpoint sqrt 0.8528626561164856 --dtype f32
29
+ $ ulpwise midpoint sqrt 0.8528626561164856 --dtype f32
30
30
  rounded 0.9235056042671204, exact result lies above it, 3.771e-04 ulp from the rounding midpoint
31
31
 
32
- $ python -m ulpwise knife sqrt --lo 0.85 --hi 0.86 --tol 1e-3 --limit 3
32
+ $ ulpwise knife sqrt --lo 0.85 --hi 0.86 --tol 1e-3 --limit 3
33
33
  x rounded midpoint distance (ulp) exact lies
34
34
  0.8500027060508728 0.9219558835029602 2.521e-04 above
35
35
  0.8500217199325562 0.9219662547111511 5.452e-04 below
@@ -57,7 +57,8 @@ run.
57
57
  ## Install
58
58
 
59
59
  ```sh
60
- pip install ulpwise
60
+ pip install ulpwise # or: uv add ulpwise
61
+ uvx ulpwise special f32 # run the command line tool without installing anything
61
62
  ```
62
63
 
63
64
  Wheels on [PyPI](https://pypi.org/project/ulpwise/) cover Linux x86_64 and aarch64, macOS arm64 and
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "ulpwise"
7
- version = "0.1.1"
7
+ version = "0.1.2"
8
8
  description = "Numerical conformance testing for ML code: float edge values, exact rounding oracles, knife-edge finders and a pytest plugin"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT OR Apache-2.0" }
@@ -26,6 +26,9 @@ dependencies = []
26
26
  [project.optional-dependencies]
27
27
  test = ["pytest>=7", "numpy"]
28
28
 
29
+ [project.scripts]
30
+ ulpwise = "ulpwise.__main__:main"
31
+
29
32
  [project.entry-points.pytest11]
30
33
  ulpwise = "ulpwise.plugin"
31
34
 
@@ -25,7 +25,7 @@ from ._core import ( # noqa: F401
25
25
  ulp_distances,
26
26
  )
27
27
 
28
- __version__ = "0.1.1"
28
+ __version__ = "0.1.2"
29
29
 
30
30
  __all__ = [
31
31
  "UNARY_OPS",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes