diff options
Diffstat (limited to 'dev-python/gfloat')
| -rw-r--r-- | dev-python/gfloat/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/gfloat/files/gfloat-0.5.2-32bit.patch | 97 | ||||
| -rw-r--r-- | dev-python/gfloat/gfloat-0.5.2-r1.ebuild | 77 | ||||
| -rw-r--r-- | dev-python/gfloat/metadata.xml | 11 |
4 files changed, 0 insertions, 186 deletions
diff --git a/dev-python/gfloat/Manifest b/dev-python/gfloat/Manifest deleted file mode 100644 index 4c5bffbdc60a..000000000000 --- a/dev-python/gfloat/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST gfloat-0.5.2.tar.gz 657852 BLAKE2B a88446064bde5a739c361571058f5cf217d8433cd8b57c66ad159ea84c248059dc04c1167ca243494b4de8155639f8ccff3aed73f9bd67748202f53aa7e6c01c SHA512 accacc12e56c874819a8711bc10dd4f1a3cfaa804e0a98360bf29318c5d9d60acdb75d59bb415c8cfd14f72ed01ccc181d7cc2172433ab6400f200b3e72686a8 diff --git a/dev-python/gfloat/files/gfloat-0.5.2-32bit.patch b/dev-python/gfloat/files/gfloat-0.5.2-32bit.patch deleted file mode 100644 index 8394329b4fa3..000000000000 --- a/dev-python/gfloat/files/gfloat-0.5.2-32bit.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 0d48e9df6870bfa9ffeceef86d26fdae70535e5a Mon Sep 17 00:00:00 2001 -From: Andrew Fitzgibbon <awf@fitzgibbon.ie> -Date: Fri, 17 Apr 2026 11:40:37 +0100 -Subject: [PATCH 3/3] 32-bit fixes - ---- - src/gfloat/decode_ndarray.py | 6 ++++-- - src/gfloat/encode_ndarray.py | 11 ++++++----- - test/test_array_api.py | 2 +- - test/test_round.py | 4 ++-- - 4 files changed, 13 insertions(+), 10 deletions(-) - -diff --git a/src/gfloat/decode_ndarray.py b/src/gfloat/decode_ndarray.py -index 7d93c13..0e79b77 100644 ---- a/src/gfloat/decode_ndarray.py -+++ b/src/gfloat/decode_ndarray.py -@@ -78,10 +78,12 @@ def decode_ndarray( - - issubnormal = (exp == 0) & (significand != 0) & fi.has_subnormals - expval = np.where(issubnormal, 1 - bias, exp - bias) -- fsignificand = np.where(issubnormal, 0.0, 1.0) + np.ldexp(significand, -t) -+ fsignificand = np.where(issubnormal, 0.0, 1.0) + np.ldexp( -+ significand.astype(np.float64), np.int32(-t) -+ ) - - # Normal/Subnormal/Zero case, other values will be overwritten -- expval_safe = np.where(isspecial | iszero, 0, expval) -+ expval_safe = np.where(isspecial | iszero, 0, expval).astype(np.int32) - fval_finite_safe = sign * np.ldexp(fsignificand, expval_safe) - fval = np.where(~(iszero | isspecial), fval_finite_safe, fval) - -diff --git a/src/gfloat/encode_ndarray.py b/src/gfloat/encode_ndarray.py -index 183865d..af883e4 100644 ---- a/src/gfloat/encode_ndarray.py -+++ b/src/gfloat/encode_ndarray.py -@@ -66,11 +66,11 @@ def encode_ndarray(fi: FormatInfo, v: npt.NDArray) -> npt.NDArray: - biased_exp = exp.astype(np.int64) + (fi.bias - 1) - subnormal_mask = (biased_exp < 1) & fi.has_subnormals - -- biased_exp_safe = np.where(subnormal_mask, biased_exp, 0) -+ biased_exp_safe = np.where(subnormal_mask, biased_exp, 0).astype(np.int32) - tsig = np.where(subnormal_mask, np.ldexp(sig, biased_exp_safe), sig * 2 - 1.0) - biased_exp[subnormal_mask] = 0 - -- isig = np.floor(np.ldexp(tsig, t)).astype(np.int64) -+ isig = np.floor(np.ldexp(tsig, np.int32(t))).astype(np.int64) - - zero_mask = fi.has_zero & (isig == 0) & (biased_exp == 0) - if not fi.has_nz: -@@ -80,8 +80,9 @@ def encode_ndarray(fi: FormatInfo, v: npt.NDArray) -> npt.NDArray: - if fi.is_twos_complement: - isig[finite_sign] = (1 << t) - isig[finite_sign] - -- code[finite_mask] = ( -- (finite_sign.astype(int) << (k - 1)) | (biased_exp << t) | (isig << 0) -- ) -+ sign_field = np.left_shift(finite_sign.astype(np.uint64), np.uint64(k - 1)) -+ exp_field = np.left_shift(biased_exp.astype(np.uint64), np.uint64(t)) -+ sig_field = isig.astype(np.uint64) -+ code[finite_mask] = sign_field | exp_field | sig_field - - return code -diff --git a/test/test_array_api.py b/test/test_array_api.py -index 832c2d7..7de8f70 100644 ---- a/test/test_array_api.py -+++ b/test/test_array_api.py -@@ -25,7 +25,7 @@ def test_array_api(fi: FormatInfo, rnd: RoundMode, sat: bool) -> None: - a = xp.asarray(a0) - - srnumbits = 32 -- srbits0 = np.random.randint(0, 2**srnumbits, a.shape) -+ srbits0 = np.random.randint(0, 2**srnumbits, a.shape, dtype=np.int64) - srbits = xp.asarray(srbits0) - - round_ndarray(fi, a, rnd, sat, srbits=srbits, srnumbits=srnumbits) # type: ignore -diff --git a/test/test_round.py b/test/test_round.py -index 27c798e..dbde64e 100644 ---- a/test/test_round.py -+++ b/test/test_round.py -@@ -537,7 +537,7 @@ def test_stochastic_rounding( - n = 10_000 - expected_up_count = expected_up * n - -- srbits = np.random.randint(0, 2**srnumbits, size=(n,)) -+ srbits = np.random.randint(0, 2**srnumbits, size=(n,), dtype=np.int64) - if impl == "scalar": - count_v1 = 0 - for k in range(n): -@@ -591,7 +591,7 @@ def test_stochastic_rounding_scalar_eq_array( - for alpha in (0, 0.3, 0.5, 0.6, 0.7, 0.9, 1.25): - v = _linterp(v0, v1, alpha) - assert np.isfinite(v).all() -- srbits = np.random.randint(0, 2**srnumbits, v.shape) -+ srbits = np.random.randint(0, 2**srnumbits, v.shape, dtype=np.int64) - - val_array = round_ndarray( - fi, diff --git a/dev-python/gfloat/gfloat-0.5.2-r1.ebuild b/dev-python/gfloat/gfloat-0.5.2-r1.ebuild deleted file mode 100644 index b545ecf5f33e..000000000000 --- a/dev-python/gfloat/gfloat-0.5.2-r1.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 2024-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{13..14} ) - -inherit distutils-r1 pypi - -DESCRIPTION="Generic floating-point types in Python" -HOMEPAGE=" - https://github.com/graphcore-research/gfloat/ - https://pypi.org/project/gfloat/ -" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 x86" -IUSE="test-rust" - -RDEPEND=" - dev-python/array-api-compat[${PYTHON_USEDEP}] - dev-python/more-itertools[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] -" -BDEPEND=" - test? ( - dev-python/matplotlib[${PYTHON_USEDEP}] - dev-python/ml-dtypes[${PYTHON_USEDEP}] - dev-python/tabulate[${PYTHON_USEDEP}] - test-rust? ( - dev-python/nbval[${PYTHON_USEDEP}] - ) - !arm? ( - dev-python/jinja2[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - ) - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -PATCHES=( - # https://github.com/graphcore-research/gfloat/pull/60 - "${FILESDIR}/${P}-32bit.patch" -) - -python_test() { - local EPYTEST_IGNORE=( - # requires array-api-strict (probably not very valuable downstream) - test/test_array_api.py - # require jax - docs/source/03-value-tables.ipynb - docs/source/04-benchmark.ipynb - test/test_jax.py - # requires mx (possibly git version), torch - test/test_microxcaling.py - # requires torch - test/test_torch.py - ) - - if ! has_version "dev-python/jinja2[${PYTHON_USEDEP}]" || - ! has_version "dev-python/pandas[${PYTHON_USEDEP}]" - then - EPYTEST_IGNORE+=( - docs/source - ) - fi - - if has_version "dev-python/nbval[${PYTHON_USEDEP}]"; then - epytest -p nbval - else - epytest -o addopts= - fi -} diff --git a/dev-python/gfloat/metadata.xml b/dev-python/gfloat/metadata.xml deleted file mode 100644 index 3c2f1ee74595..000000000000 --- a/dev-python/gfloat/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>python@gentoo.org</email> - </maintainer> - <upstream> - <remote-id type="github">graphcore-research/gfloat</remote-id> - <remote-id type="pypi">gfloat</remote-id> - </upstream> -</pkgmetadata> |
