hypercomplex-engine 0.4.2__py3-none-any.whl → 0.4.2.1__py3-none-any.whl

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.
@@ -34,9 +34,6 @@ class FastStandard:
34
34
  s1, i = int(t1[0]), int(t1[1])
35
35
  s2, j = int(t2[0]), int(t2[1])
36
36
 
37
- if s1 == 0 or s2 == 0:
38
- return (0, 0)
39
-
40
37
  sign, idx = self.multiply_indices(i, j)
41
38
 
42
39
  return (s1 * s2 * sign, idx)
hypercomplex/facade.py CHANGED
@@ -267,8 +267,12 @@ def multiply(
267
267
  # Validate inputs before any early return, so malformed data always
268
268
  # raises ValidationError instead of leaking TypeError/IndexError.
269
269
  allow_eps = kind in ("dual", "dual_split")
270
- Validation.basis_tuple(a, allow_zero=True, allow_eps=allow_eps)
271
- Validation.basis_tuple(b, allow_zero=True, allow_eps=allow_eps)
270
+ if allow_eps:
271
+ Validation.basis_tuple(a, allow_zero=True, allow_eps=allow_eps)
272
+ Validation.basis_tuple(b, allow_zero=True, allow_eps=allow_eps)
273
+ else:
274
+ Validation.basis_tuple(a, allow_zero=False, allow_eps=False)
275
+ Validation.basis_tuple(b, allow_zero=False, allow_eps=False)
272
276
 
273
277
  # Zero propagation
274
278
  if int(a[0]) == 0 or int(b[0]) == 0:
@@ -354,7 +358,7 @@ def export_csv(
354
358
  Export a table built by build_table().
355
359
  """
356
360
  signs, indices, eps = _unpack_table(table)
357
-
361
+
358
362
  return CDTablePrinter.export_csv(
359
363
  path,
360
364
  signs,
@@ -1,4 +1,5 @@
1
1
  from .cd_format import CDFormat
2
+ import logging
2
3
 
3
4
 
4
5
  class CDTablePrinter:
@@ -200,5 +201,7 @@ class CDTablePrinter:
200
201
  line += f",{int(eps[i, j])}"
201
202
 
202
203
  f.write(line + "\n")
204
+ logging.basicConfig(level=logging.INFO)
203
205
 
206
+ logging.info(f"Table successfully built {path} ")
204
207
  return path
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypercomplex-engine
3
- Version: 0.4.2
4
- Summary: Fast O(1)/O(n) multiplication engine and table generator for ordinary, split, and dual Cayley-Dickson algebras.
3
+ Version: 0.4.2.1
4
+ Summary: Fast O(1)/O(n) multiplication engine for arbitrary dimensions and table generator for ordinary, split, and dual Cayley-Dickson algebras.
5
5
  Author-email: Maher Ben Abdessalem <ba.maher94@gmail.com>
6
6
  License: MIT License
7
7
 
@@ -51,11 +51,14 @@ Dynamic: license-file
51
51
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
52
52
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
53
53
  [![GitHub Repo](https://img.shields.io/badge/GitHub-maher1719%2Fhypercomplex--engine-black?logo=github)](https://github.com/maher1719/hypercomplex-engine)
54
- [![PyPI version](https://badge.fury.io/py/hypercomplex-engine.svg)](https://pypi.org/project/hypercomplex-engine/)
54
+ [![PyPI version](https://img.shields.io/pypi/v/hypercomplex-engine.svg)](https://pypi.org/project/hypercomplex-engine/)
55
55
  [![Downloads](https://static.pepy.tech/badge/hypercomplex-engine)](https://pepy.tech/project/hypercomplex-engine)
56
56
 
57
57
 
58
- Fast, validated multiplication and table generation for Cayley–Dickson algebras.
58
+ Fast, cross validated multiplication and table generation for Cayley–Dickson algebras multiplication up to **one million digit** two elements index tested for O(1)/O(n) and depend on RAM allocation up to 2^13 or more for table builder.
59
+
60
+
61
+ For more info please visit All benchamrks in [BENCHMARKS.md](https://github.com/maher1719/hypercomplex-engine/blob/main/BENCHMARKS.md) and Jupyter Notebook used in [examples/benchmark/benchmark.ipynb](https://github.com/maher1719/hypercomplex-engine/blob/main/examples/benchmark/benchmark.ipynb) (note speed time may vary depend on your hardware).
59
62
 
60
63
  This library provides the computational substrate for high-dimensional hypercomplex algebra, featuring:
61
64
 
@@ -70,7 +73,7 @@ This library provides the computational substrate for high-dimensional hypercomp
70
73
 
71
74
  ## Scope and limitations
72
75
 
73
- If you build upon this package, please read fully [Go to Scope, Strengths, and Limitations](#scope-strengths-and-limitations) below for more information or check [Scope, Strengths, and Limitations file](README_scope_and_limitations.md#scope-strengths-and-limitations)
76
+ If you build upon this package, please read fully [Go to Scope, Strengths, and Limitations](#scope-strengths-and-limitations) below for more information or check [Scope, Strengths, and Limitations file](https://github.com/maher1719/hypercomplex-engine/blob/main/README_scope_and_limitations.md#scope-strengths-and-limitations)
74
77
 
75
78
 
76
79
  ## 📄 Publications & Preprints
@@ -1,5 +1,5 @@
1
1
  hypercomplex/__init__.py,sha256=DM_jeWSzhDkdz8KboGrVQVqVaj6xkr8k22C_uNRRxr8,1010
2
- hypercomplex/facade.py,sha256=zuG5HnbDxBCn6V7OroaAhYYb4HzL-6QVaUQprhdDNwg,9528
2
+ hypercomplex/facade.py,sha256=-5mjJP2OGQC0m2_ZaGrkt5Zzty-Qvdz1FOsHMY4ctdE,9706
3
3
  hypercomplex/core/__init__.py,sha256=7cD5SJFbAewuVMIvKnQ6tb7JwcmpGQktSvGbN5n8dIM,668
4
4
  hypercomplex/core/basis_element.py,sha256=TnPb1xLICv0TK0AfTW_I8_8T2TavktKTq4MEPLWnyU8,1402
5
5
  hypercomplex/core/basis_notation.py,sha256=K17IUXEio7KmY3pvpFdDFI2MsLs11-E5Z5Cp10CS84Y,4887
@@ -8,7 +8,7 @@ hypercomplex/core/fast/__init__.py,sha256=6KsWo1dhNlT69jT_Bi8-khOrNFX9cDs98987TG
8
8
  hypercomplex/core/fast/bit_utils.py,sha256=aqBjPX2srWym6AjxZqTzt998-in_-5VAxNUiQXUFAVw,385
9
9
  hypercomplex/core/fast/fast_dual.py,sha256=Y5JFtGunb9p9qezogqPBWJfjNdiijtXV1LsKJXEENqY,5540
10
10
  hypercomplex/core/fast/fast_split.py,sha256=Wdr9pd9zXA_mFzlMxVv8LpPwDZJFP-XPVa0uQIEs3jA,3037
11
- hypercomplex/core/fast/fast_standard.py,sha256=KRZk7HPfV2J364p5x22kgveJa7ztucbsTla7emix_Kk,3308
11
+ hypercomplex/core/fast/fast_standard.py,sha256=JQ7Mxb4qQTH6EuWQjpTtbxwb4rVI0Iu-jggHiwmEj1I,3250
12
12
  hypercomplex/core/holographic/__init__.py,sha256=TGMyPs6dyeaQ9I--rFooBOrKzkex73IbwzQtL7Q0i04,200
13
13
  hypercomplex/core/holographic/dual.py,sha256=1JdYDPpFk7u0yMswDOxRhhEUcg4CDxCu3Rk-a1rDImA,2898
14
14
  hypercomplex/core/holographic/split.py,sha256=kJXPXvw3rT8YieENor0hNTko4qBoXaKKb9n07UWhfQY,2864
@@ -20,9 +20,9 @@ hypercomplex/core/table_builder/split.py,sha256=OUBNKT_-L6BMlCxiSYWzAOGSOdYGJZzL
20
20
  hypercomplex/core/table_builder/standard.py,sha256=3kyg4TLCG_LKhC8lT95hZBFmOee0Wg39T7CDIhayVUs,2820
21
21
  hypercomplex/printer/__init__.py,sha256=6EZOUBYb9TDgfqrFpnIfPS1bbPFZ0dMX6RCPDZepL6M,129
22
22
  hypercomplex/printer/cd_format.py,sha256=X_cotGumJlRMuJO5cbsnI8FA9Py12TGYftPlUdx-9xg,5731
23
- hypercomplex/printer/cd_table_printer.py,sha256=uQlSmiTYiJkLZ4wC0ezXm7RSCYlldva0YCF2reNfKq4,4882
24
- hypercomplex_engine-0.4.2.dist-info/licenses/LICENSE,sha256=guj-B90dY9uDtG1POm34JUQQ0HU3YE47dq8RmVY4znI,1066
25
- hypercomplex_engine-0.4.2.dist-info/METADATA,sha256=22P_CHFCrXEM1oHqigTv-pZnT0L6sLTHOxi3pmPyUBc,25955
26
- hypercomplex_engine-0.4.2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
27
- hypercomplex_engine-0.4.2.dist-info/top_level.txt,sha256=WTtGtCnGtWsHvFBLdcsO6VRbm4wa1kU3yV-HrypIdwE,13
28
- hypercomplex_engine-0.4.2.dist-info/RECORD,,
23
+ hypercomplex/printer/cd_table_printer.py,sha256=rve0-nWk42W58jtMiMZgjTN2ScTX9EFh8mSRhmUT8EM,5003
24
+ hypercomplex_engine-0.4.2.1.dist-info/licenses/LICENSE,sha256=guj-B90dY9uDtG1POm34JUQQ0HU3YE47dq8RmVY4znI,1066
25
+ hypercomplex_engine-0.4.2.1.dist-info/METADATA,sha256=J19oH4XkPBDoicd89zwQfY1zyxbrfDVr2xiR_GSGvZs,26551
26
+ hypercomplex_engine-0.4.2.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
27
+ hypercomplex_engine-0.4.2.1.dist-info/top_level.txt,sha256=WTtGtCnGtWsHvFBLdcsO6VRbm4wa1kU3yV-HrypIdwE,13
28
+ hypercomplex_engine-0.4.2.1.dist-info/RECORD,,