passagemath-meataxe 10.6.33__cp312-cp312-macosx_13_0_arm64.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.
Potentially problematic release.
This version of passagemath-meataxe might be problematic. Click here for more details.
- passagemath_meataxe-10.6.33.dist-info/METADATA +97 -0
- passagemath_meataxe-10.6.33.dist-info/METADATA.bak +98 -0
- passagemath_meataxe-10.6.33.dist-info/RECORD +84 -0
- passagemath_meataxe-10.6.33.dist-info/WHEEL +6 -0
- passagemath_meataxe-10.6.33.dist-info/top_level.txt +2 -0
- passagemath_meataxe.dylibs/libmtx.0.0.0.dylib +0 -0
- sage/all__sagemath_meataxe.py +2 -0
- sage/libs/all__sagemath_meataxe.py +1 -0
- sage/libs/meataxe.cpython-312-darwin.so +0 -0
- sage/libs/meataxe.pxd +156 -0
- sage/libs/meataxe.pyx +95 -0
- sage/matrix/all__sagemath_meataxe.py +1 -0
- sage/matrix/matrix_gfpn_dense.cpython-312-darwin.so +0 -0
- sage/matrix/matrix_gfpn_dense.pxd +37 -0
- sage/matrix/matrix_gfpn_dense.pyx +1960 -0
- sage_wheels/share/meataxe/p002.zzz +0 -0
- sage_wheels/share/meataxe/p003.zzz +0 -0
- sage_wheels/share/meataxe/p004.zzz +0 -0
- sage_wheels/share/meataxe/p005.zzz +0 -0
- sage_wheels/share/meataxe/p007.zzz +0 -0
- sage_wheels/share/meataxe/p008.zzz +0 -0
- sage_wheels/share/meataxe/p009.zzz +0 -0
- sage_wheels/share/meataxe/p011.zzz +0 -0
- sage_wheels/share/meataxe/p013.zzz +0 -0
- sage_wheels/share/meataxe/p016.zzz +0 -0
- sage_wheels/share/meataxe/p017.zzz +0 -0
- sage_wheels/share/meataxe/p019.zzz +0 -0
- sage_wheels/share/meataxe/p023.zzz +0 -0
- sage_wheels/share/meataxe/p025.zzz +0 -0
- sage_wheels/share/meataxe/p027.zzz +0 -0
- sage_wheels/share/meataxe/p029.zzz +0 -0
- sage_wheels/share/meataxe/p031.zzz +0 -0
- sage_wheels/share/meataxe/p032.zzz +0 -0
- sage_wheels/share/meataxe/p037.zzz +0 -0
- sage_wheels/share/meataxe/p041.zzz +0 -0
- sage_wheels/share/meataxe/p043.zzz +0 -0
- sage_wheels/share/meataxe/p047.zzz +0 -0
- sage_wheels/share/meataxe/p049.zzz +0 -0
- sage_wheels/share/meataxe/p053.zzz +0 -0
- sage_wheels/share/meataxe/p059.zzz +0 -0
- sage_wheels/share/meataxe/p061.zzz +0 -0
- sage_wheels/share/meataxe/p064.zzz +0 -0
- sage_wheels/share/meataxe/p067.zzz +0 -0
- sage_wheels/share/meataxe/p071.zzz +0 -0
- sage_wheels/share/meataxe/p073.zzz +0 -0
- sage_wheels/share/meataxe/p079.zzz +0 -0
- sage_wheels/share/meataxe/p081.zzz +0 -0
- sage_wheels/share/meataxe/p083.zzz +0 -0
- sage_wheels/share/meataxe/p089.zzz +0 -0
- sage_wheels/share/meataxe/p097.zzz +0 -0
- sage_wheels/share/meataxe/p101.zzz +0 -0
- sage_wheels/share/meataxe/p103.zzz +0 -0
- sage_wheels/share/meataxe/p107.zzz +0 -0
- sage_wheels/share/meataxe/p109.zzz +0 -0
- sage_wheels/share/meataxe/p113.zzz +0 -0
- sage_wheels/share/meataxe/p121.zzz +0 -0
- sage_wheels/share/meataxe/p125.zzz +0 -0
- sage_wheels/share/meataxe/p127.zzz +0 -0
- sage_wheels/share/meataxe/p128.zzz +0 -0
- sage_wheels/share/meataxe/p131.zzz +0 -0
- sage_wheels/share/meataxe/p137.zzz +0 -0
- sage_wheels/share/meataxe/p139.zzz +0 -0
- sage_wheels/share/meataxe/p149.zzz +0 -0
- sage_wheels/share/meataxe/p151.zzz +0 -0
- sage_wheels/share/meataxe/p157.zzz +0 -0
- sage_wheels/share/meataxe/p163.zzz +0 -0
- sage_wheels/share/meataxe/p167.zzz +0 -0
- sage_wheels/share/meataxe/p169.zzz +0 -0
- sage_wheels/share/meataxe/p173.zzz +0 -0
- sage_wheels/share/meataxe/p179.zzz +0 -0
- sage_wheels/share/meataxe/p181.zzz +0 -0
- sage_wheels/share/meataxe/p191.zzz +0 -0
- sage_wheels/share/meataxe/p193.zzz +0 -0
- sage_wheels/share/meataxe/p197.zzz +0 -0
- sage_wheels/share/meataxe/p199.zzz +0 -0
- sage_wheels/share/meataxe/p211.zzz +0 -0
- sage_wheels/share/meataxe/p223.zzz +0 -0
- sage_wheels/share/meataxe/p227.zzz +0 -0
- sage_wheels/share/meataxe/p229.zzz +0 -0
- sage_wheels/share/meataxe/p233.zzz +0 -0
- sage_wheels/share/meataxe/p239.zzz +0 -0
- sage_wheels/share/meataxe/p241.zzz +0 -0
- sage_wheels/share/meataxe/p243.zzz +0 -0
- sage_wheels/share/meataxe/p251.zzz +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: passagemath-meataxe
|
|
3
|
+
Version: 10.6.33
|
|
4
|
+
Summary: passagemath: Matrices over small finite fields with meataxe
|
|
5
|
+
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
|
6
|
+
Maintainer: Matthias Köppe, passagemath contributors
|
|
7
|
+
License-Expression: GPL-2.0-or-later
|
|
8
|
+
Project-URL: release notes, https://github.com/passagemath/passagemath/releases
|
|
9
|
+
Project-URL: repo (upstream), https://github.com/sagemath/sage
|
|
10
|
+
Project-URL: repo, https://github.com/passagemath/passagemath
|
|
11
|
+
Project-URL: documentation, https://passagemath.org/docs/latest
|
|
12
|
+
Project-URL: homepage (upstream), https://www.sagemath.org
|
|
13
|
+
Project-URL: discourse, https://passagemath.discourse.group
|
|
14
|
+
Project-URL: tracker (upstream), https://github.com/sagemath/sage/issues
|
|
15
|
+
Project-URL: tracker, https://github.com/passagemath/passagemath/issues
|
|
16
|
+
Classifier: Development Status :: 6 - Mature
|
|
17
|
+
Classifier: Intended Audience :: Education
|
|
18
|
+
Classifier: Intended Audience :: Science/Research
|
|
19
|
+
Classifier: Operating System :: POSIX
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
29
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
30
|
+
Requires-Python: <3.15,>=3.10
|
|
31
|
+
Description-Content-Type: text/x-rst
|
|
32
|
+
Requires-Dist: passagemath-modules~=10.6.33.0
|
|
33
|
+
Provides-Extra: test
|
|
34
|
+
Requires-Dist: passagemath-pari; extra == "test"
|
|
35
|
+
Requires-Dist: passagemath-repl; extra == "test"
|
|
36
|
+
|
|
37
|
+
========================================================================================
|
|
38
|
+
passagemath: Matrices over small finite fields with meataxe
|
|
39
|
+
========================================================================================
|
|
40
|
+
|
|
41
|
+
`passagemath <https://github.com/passagemath/passagemath>`__ is open
|
|
42
|
+
source mathematical software in Python, released under the GNU General
|
|
43
|
+
Public Licence GPLv2+.
|
|
44
|
+
|
|
45
|
+
It is a fork of `SageMath <https://www.sagemath.org/>`__, which has been
|
|
46
|
+
developed 2005-2025 under the motto “Creating a Viable Open Source
|
|
47
|
+
Alternative to Magma, Maple, Mathematica, and MATLAB”.
|
|
48
|
+
|
|
49
|
+
The passagemath fork uses the motto "Creating a Free Passage Between the
|
|
50
|
+
Scientific Python Ecosystem and Mathematical Software Communities."
|
|
51
|
+
It was created in October 2024 with the following goals:
|
|
52
|
+
|
|
53
|
+
- providing modularized installation with pip,
|
|
54
|
+
- establishing first-class membership in the scientific Python
|
|
55
|
+
ecosystem,
|
|
56
|
+
- giving `clear attribution of upstream
|
|
57
|
+
projects <https://groups.google.com/g/sage-devel/c/6HO1HEtL1Fs/m/G002rPGpAAAJ>`__,
|
|
58
|
+
- providing independently usable Python interfaces to upstream
|
|
59
|
+
libraries,
|
|
60
|
+
- offering `platform portability and integration testing
|
|
61
|
+
services <https://github.com/passagemath/passagemath/issues/704>`__
|
|
62
|
+
to upstream projects,
|
|
63
|
+
- inviting collaborations with upstream projects,
|
|
64
|
+
- `building a professional, respectful, inclusive
|
|
65
|
+
community <https://groups.google.com/g/sage-devel/c/xBzaINHWwUQ>`__,
|
|
66
|
+
- `empowering Sage users to participate in the scientific Python ecosystem
|
|
67
|
+
<https://github.com/passagemath/passagemath/issues/248>`__ by publishing packages,
|
|
68
|
+
- developing a port to `Pyodide <https://pyodide.org/en/stable/>`__ for
|
|
69
|
+
serverless deployment with Javascript,
|
|
70
|
+
- developing a native Windows port.
|
|
71
|
+
|
|
72
|
+
`Full documentation <https://passagemath.org/docs/latest/html/en/index.html>`__ is
|
|
73
|
+
available online.
|
|
74
|
+
|
|
75
|
+
passagemath attempts to support and provides binary wheels suitable for
|
|
76
|
+
all major Linux distributions and recent versions of macOS.
|
|
77
|
+
|
|
78
|
+
Binary wheels for native Windows (x86_64) are are available for a subset of
|
|
79
|
+
the passagemath distributions. Use of the full functionality of passagemath
|
|
80
|
+
on Windows currently requires the use of Windows Subsystem for Linux (WSL)
|
|
81
|
+
or virtualization.
|
|
82
|
+
|
|
83
|
+
The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
About this pip-installable distribution package
|
|
87
|
+
-----------------------------------------------
|
|
88
|
+
|
|
89
|
+
This pip-installable distribution ``passagemath-meataxe`` is a small
|
|
90
|
+
optional distribution for use with ``passagemath-standard``.
|
|
91
|
+
|
|
92
|
+
This distribution provides the SageMath modules ``sage.libs.meataxe``
|
|
93
|
+
and ``sage.matrix.matrix_gfpn_dense``.
|
|
94
|
+
|
|
95
|
+
It provides a specialized implementation of matrices over the finite field F_q, where
|
|
96
|
+
q <= 255, using the `SharedMeatAxe <http://users.minet.uni-jena.de/~king/SharedMeatAxe/>`_
|
|
97
|
+
library.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: passagemath-meataxe
|
|
3
|
+
Version: 10.6.33
|
|
4
|
+
Summary: passagemath: Matrices over small finite fields with meataxe
|
|
5
|
+
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
|
6
|
+
Maintainer: Matthias Köppe, passagemath contributors
|
|
7
|
+
License-Expression: GPL-2.0-or-later
|
|
8
|
+
Project-URL: release notes, https://github.com/passagemath/passagemath/releases
|
|
9
|
+
Project-URL: repo (upstream), https://github.com/sagemath/sage
|
|
10
|
+
Project-URL: repo, https://github.com/passagemath/passagemath
|
|
11
|
+
Project-URL: documentation, https://passagemath.org/docs/latest
|
|
12
|
+
Project-URL: homepage (upstream), https://www.sagemath.org
|
|
13
|
+
Project-URL: discourse, https://passagemath.discourse.group
|
|
14
|
+
Project-URL: tracker (upstream), https://github.com/sagemath/sage/issues
|
|
15
|
+
Project-URL: tracker, https://github.com/passagemath/passagemath/issues
|
|
16
|
+
Classifier: Development Status :: 6 - Mature
|
|
17
|
+
Classifier: Intended Audience :: Education
|
|
18
|
+
Classifier: Intended Audience :: Science/Research
|
|
19
|
+
Classifier: Operating System :: POSIX
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
29
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
30
|
+
Requires-Python: <3.15,>=3.10
|
|
31
|
+
Description-Content-Type: text/x-rst
|
|
32
|
+
Requires-Dist: passagemath-conf~=10.6.33.0; sys_platform != "win32"
|
|
33
|
+
Requires-Dist: passagemath-modules~=10.6.33.0
|
|
34
|
+
Provides-Extra: test
|
|
35
|
+
Requires-Dist: passagemath-pari; extra == "test"
|
|
36
|
+
Requires-Dist: passagemath-repl; extra == "test"
|
|
37
|
+
|
|
38
|
+
========================================================================================
|
|
39
|
+
passagemath: Matrices over small finite fields with meataxe
|
|
40
|
+
========================================================================================
|
|
41
|
+
|
|
42
|
+
`passagemath <https://github.com/passagemath/passagemath>`__ is open
|
|
43
|
+
source mathematical software in Python, released under the GNU General
|
|
44
|
+
Public Licence GPLv2+.
|
|
45
|
+
|
|
46
|
+
It is a fork of `SageMath <https://www.sagemath.org/>`__, which has been
|
|
47
|
+
developed 2005-2025 under the motto “Creating a Viable Open Source
|
|
48
|
+
Alternative to Magma, Maple, Mathematica, and MATLAB”.
|
|
49
|
+
|
|
50
|
+
The passagemath fork uses the motto "Creating a Free Passage Between the
|
|
51
|
+
Scientific Python Ecosystem and Mathematical Software Communities."
|
|
52
|
+
It was created in October 2024 with the following goals:
|
|
53
|
+
|
|
54
|
+
- providing modularized installation with pip,
|
|
55
|
+
- establishing first-class membership in the scientific Python
|
|
56
|
+
ecosystem,
|
|
57
|
+
- giving `clear attribution of upstream
|
|
58
|
+
projects <https://groups.google.com/g/sage-devel/c/6HO1HEtL1Fs/m/G002rPGpAAAJ>`__,
|
|
59
|
+
- providing independently usable Python interfaces to upstream
|
|
60
|
+
libraries,
|
|
61
|
+
- offering `platform portability and integration testing
|
|
62
|
+
services <https://github.com/passagemath/passagemath/issues/704>`__
|
|
63
|
+
to upstream projects,
|
|
64
|
+
- inviting collaborations with upstream projects,
|
|
65
|
+
- `building a professional, respectful, inclusive
|
|
66
|
+
community <https://groups.google.com/g/sage-devel/c/xBzaINHWwUQ>`__,
|
|
67
|
+
- `empowering Sage users to participate in the scientific Python ecosystem
|
|
68
|
+
<https://github.com/passagemath/passagemath/issues/248>`__ by publishing packages,
|
|
69
|
+
- developing a port to `Pyodide <https://pyodide.org/en/stable/>`__ for
|
|
70
|
+
serverless deployment with Javascript,
|
|
71
|
+
- developing a native Windows port.
|
|
72
|
+
|
|
73
|
+
`Full documentation <https://passagemath.org/docs/latest/html/en/index.html>`__ is
|
|
74
|
+
available online.
|
|
75
|
+
|
|
76
|
+
passagemath attempts to support and provides binary wheels suitable for
|
|
77
|
+
all major Linux distributions and recent versions of macOS.
|
|
78
|
+
|
|
79
|
+
Binary wheels for native Windows (x86_64) are are available for a subset of
|
|
80
|
+
the passagemath distributions. Use of the full functionality of passagemath
|
|
81
|
+
on Windows currently requires the use of Windows Subsystem for Linux (WSL)
|
|
82
|
+
or virtualization.
|
|
83
|
+
|
|
84
|
+
The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
About this pip-installable distribution package
|
|
88
|
+
-----------------------------------------------
|
|
89
|
+
|
|
90
|
+
This pip-installable distribution ``passagemath-meataxe`` is a small
|
|
91
|
+
optional distribution for use with ``passagemath-standard``.
|
|
92
|
+
|
|
93
|
+
This distribution provides the SageMath modules ``sage.libs.meataxe``
|
|
94
|
+
and ``sage.matrix.matrix_gfpn_dense``.
|
|
95
|
+
|
|
96
|
+
It provides a specialized implementation of matrices over the finite field F_q, where
|
|
97
|
+
q <= 255, using the `SharedMeatAxe <http://users.minet.uni-jena.de/~king/SharedMeatAxe/>`_
|
|
98
|
+
library.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
passagemath_meataxe-10.6.33.dist-info/RECORD,,
|
|
2
|
+
passagemath_meataxe-10.6.33.dist-info/METADATA.bak,sha256=KIKWmKv740pW7W2-e_zcwKtOx8v7SG2R5i7rHmCJR-I,4706
|
|
3
|
+
passagemath_meataxe-10.6.33.dist-info/WHEEL,sha256=NyQG50tNDZ_APPDUcZDEpRLmYPHu-yiqQLzBIWZNamQ,153
|
|
4
|
+
passagemath_meataxe-10.6.33.dist-info/top_level.txt,sha256=Kmzulf9WsphADFQuqgvdy5mvTLDj_V2zkFHU2s3UXos,6
|
|
5
|
+
passagemath_meataxe-10.6.33.dist-info/METADATA,sha256=lZi_cKfuBxm6TXp_hawOcRS80m7OqaxuBAFyOGXKYFc,4638
|
|
6
|
+
passagemath_meataxe.dylibs/libmtx.0.0.0.dylib,sha256=OtLM_VxBXowgJKr6kiyfPyoi1d65ULptj2d_6uGsW0s,237808
|
|
7
|
+
sage_wheels/share/meataxe/p083.zzz,sha256=alRj4tMluCnauXxtF8Jn_c7xSimZXY_PZIM0BMLgD14,139364
|
|
8
|
+
sage_wheels/share/meataxe/p097.zzz,sha256=WujJaudChwHmaTbbwV5esr2mPBmj-h3jiZpNeDZvElA,139364
|
|
9
|
+
sage_wheels/share/meataxe/p121.zzz,sha256=oovI2NDRL1bKr2MvtUEmT9Sa0a1lwJZPIhsqhd2mSI0,139364
|
|
10
|
+
sage_wheels/share/meataxe/p109.zzz,sha256=DVOON6wHJ1oFICKKSbFV3sKTFV6aTQyWW_IYTmwsR-o,139364
|
|
11
|
+
sage_wheels/share/meataxe/p243.zzz,sha256=YNOG_95t1BIY7DZ8srmkzB8ANyuaiMNv51AHenIYNk4,139364
|
|
12
|
+
sage_wheels/share/meataxe/p041.zzz,sha256=uJcUgOmvMIr7cGCssOovt-LtfUqoS5EemGQCjkbOLog,139364
|
|
13
|
+
sage_wheels/share/meataxe/p043.zzz,sha256=94kp8dR8Lw9uzzWgxoNQIQ_CdUrwLLltXWlyfFRBcg4,139364
|
|
14
|
+
sage_wheels/share/meataxe/p241.zzz,sha256=4ssYAeL4IHtvc8YWDgsqrirKBGVxEpVzv-tHUxBqdQg,139364
|
|
15
|
+
sage_wheels/share/meataxe/p137.zzz,sha256=Ad75UxaHagaDEBeR-Vl-1aPMySB_EPBb9zEMcGg9BT8,139364
|
|
16
|
+
sage_wheels/share/meataxe/p081.zzz,sha256=BawZwl3vJaruMtssCYiNEKYh8sTxtX8m-o-oni53e5s,139364
|
|
17
|
+
sage_wheels/share/meataxe/p127.zzz,sha256=CZISNuGrfbzqAK_M6n-sWhixaH9i71EEvAaK-Zno4S8,139364
|
|
18
|
+
sage_wheels/share/meataxe/p251.zzz,sha256=Fs3mSfrNnC9q_aIssMh9mDnPGvRg0Gs5NFbRrt1H-xI,139364
|
|
19
|
+
sage_wheels/share/meataxe/p047.zzz,sha256=tC1u2uRE1zfY7nRZywfXCxFj-33HbbiEcDBnlzOwg28,139364
|
|
20
|
+
sage_wheels/share/meataxe/p053.zzz,sha256=eAdyWnCS6Pfs4TvgT0WlFP-b8ZTDJG1WTyRCSjLy0fg,139364
|
|
21
|
+
sage_wheels/share/meataxe/p079.zzz,sha256=RycGOWy_bdalFZXdjLOC-8CfPlT_JKuFJ8FdvW-fD6s,139364
|
|
22
|
+
sage_wheels/share/meataxe/p131.zzz,sha256=VJg7bSEversM7uk6YHNeP8J3HBwJV7_ssXx28ZWOeYM,139364
|
|
23
|
+
sage_wheels/share/meataxe/p125.zzz,sha256=tZqwcGSYGeYvHQf7M_0mBLn2wrOFOd5avnQp52Z0eBE,139364
|
|
24
|
+
sage_wheels/share/meataxe/p023.zzz,sha256=0JU98_n_mow5FrqwD9ePT_uEZGpsS3qzcsYrQ7fsEYo,139364
|
|
25
|
+
sage_wheels/share/meataxe/p037.zzz,sha256=gz7mQARVlSoo5TNFhaQUWOkHy5XT3mHg7evaG1G_tUE,139364
|
|
26
|
+
sage_wheels/share/meataxe/p157.zzz,sha256=SGpGsBJNQw__4NN6Jpg-JhVc9puVrrge6IgUa2e2uE0,139364
|
|
27
|
+
sage_wheels/share/meataxe/p181.zzz,sha256=ucsssRKhEE7bjGtbAPHh_qUBtU8XAcz6ayqdC-FOick,139364
|
|
28
|
+
sage_wheels/share/meataxe/p008.zzz,sha256=0e4HVcZdvdiyV7EsfZhShsmkKze3Eto541Slzy9Edi0,139364
|
|
29
|
+
sage_wheels/share/meataxe/p197.zzz,sha256=5g_8oDP_O-yaBRxyWVd20BQ5XI31bUQ4eSZWHhH9ZyE,139364
|
|
30
|
+
sage_wheels/share/meataxe/p169.zzz,sha256=Tg4V61ukyQQuk-cHy9Epc_0VtPZx1YkbSBaOGAfKVyQ,139364
|
|
31
|
+
sage_wheels/share/meataxe/p223.zzz,sha256=eoKOMBSj10UHkkrEgXTe3_8MAnyqW-CtWzCF_qkAj8U,139364
|
|
32
|
+
sage_wheels/share/meataxe/p009.zzz,sha256=YnZm7m8pt97gOQtHu3kCSfnJSYU6mZWoU42qIBAGOmU,139364
|
|
33
|
+
sage_wheels/share/meataxe/p031.zzz,sha256=CWjg7nm4D9bvVifZ3yChplPJ1oddexCibdmGhbCM08Y,139364
|
|
34
|
+
sage_wheels/share/meataxe/p025.zzz,sha256=2vBB8rBxmrg9XJoX5cqMdn3Gcs0yI1NNi9j2R02ezP0,139364
|
|
35
|
+
sage_wheels/share/meataxe/p019.zzz,sha256=LXGzTIhCcng18pAunh05nKBxhn7VtTN5T6hLE_Phlxg,139364
|
|
36
|
+
sage_wheels/share/meataxe/p233.zzz,sha256=nmVwtbhn0ce09NgIrtvm-Ajvvlx7QSfBMJHyflZho_I,139364
|
|
37
|
+
sage_wheels/share/meataxe/p227.zzz,sha256=PejLCI3oBvPvO-26CPfek4T01fYUJ4Iok1MJst4TQEo,139364
|
|
38
|
+
sage_wheels/share/meataxe/p151.zzz,sha256=jN1tBIlgK2_VoC6yr4DBUBsxcozDYRTkYNQNVVWVz10,139364
|
|
39
|
+
sage_wheels/share/meataxe/p179.zzz,sha256=2R89L0Z5-ukDVUnWDCSXZWg2pxaWvDwpe3O0kwm5Dbs,139364
|
|
40
|
+
sage_wheels/share/meataxe/p193.zzz,sha256=ZBwie1-ZyduMwCIjBFlYLJqIyLvEkPEWdOO96V4ew6o,139364
|
|
41
|
+
sage_wheels/share/meataxe/p032.zzz,sha256=VdII0ruLvoc723N7dmnKgv3FMR_PBDX8NM1YZUJ-Etw,139364
|
|
42
|
+
sage_wheels/share/meataxe/p191.zzz,sha256=vRRXc92RlJl1b3W9aJF_etp8MSio7-MAqV-58NP2mrg,139364
|
|
43
|
+
sage_wheels/share/meataxe/p027.zzz,sha256=pezUgJNd49Y-NwAT-Dva_kiAFYv1MCQB2fbpgFGpvWw,139364
|
|
44
|
+
sage_wheels/share/meataxe/p002.zzz,sha256=S3bMn2DAypZmm95Zty0sJ7b8fX9D8PXtUW_AKwRSINw,139364
|
|
45
|
+
sage_wheels/share/meataxe/p016.zzz,sha256=04P9EKjMRI94u9B8HoarIvtqyAOZBcjon13cZSnhZJA,139364
|
|
46
|
+
sage_wheels/share/meataxe/p163.zzz,sha256=8mvI6PZhihw3hw2n4Yut_hWiJwv3fwdUC0Q6gfXu9Qk,139364
|
|
47
|
+
sage_wheels/share/meataxe/p229.zzz,sha256=fV21gpIsdOpRw9tUr0p7_lwzCxW8azj5z0GbzA-aC3E,139364
|
|
48
|
+
sage_wheels/share/meataxe/p017.zzz,sha256=D_ZpzKVDd2w_lsiX0KcegaQ0ROfx1Z3PjzTdzgc85xY,139364
|
|
49
|
+
sage_wheels/share/meataxe/p003.zzz,sha256=nyiCOKB9ilbbNNRn-2XDTdeOV0KY_Ra4MLluLHsFeT8,139364
|
|
50
|
+
sage_wheels/share/meataxe/p029.zzz,sha256=HPzhswclA8ytgARX8QnGaW7kHYtL92prLlyATaGN1mU,139364
|
|
51
|
+
sage_wheels/share/meataxe/p149.zzz,sha256=KlWQR3fHqXQANIJ-tJdmCyMEf-0_oTnXoFhnPbLPkPk,139364
|
|
52
|
+
sage_wheels/share/meataxe/p004.zzz,sha256=L_p8pJtHZCA-hiCY-mMmExkkfpEkOruDctVa12WpxvY,139364
|
|
53
|
+
sage_wheels/share/meataxe/p005.zzz,sha256=aROjBKVxwmfPGBbf8swTERIN3N_BWB7IN2jonOKSA2s,139364
|
|
54
|
+
sage_wheels/share/meataxe/p011.zzz,sha256=qwAn4c_IvgSlFK2sYn8ZAFd94v0IjsP0HxDplROqq2Y,139364
|
|
55
|
+
sage_wheels/share/meataxe/p007.zzz,sha256=6H_B0w_AYXsK3AJekZUmeNS57s890ynMt35tRxVa1oM,139364
|
|
56
|
+
sage_wheels/share/meataxe/p013.zzz,sha256=0yCKIkUzlyotDMxg-Xf2m9M7nvL6Np21Dm0mjR38rJs,139364
|
|
57
|
+
sage_wheels/share/meataxe/p211.zzz,sha256=_1Mh9P2RFcWwxY4RhxkbXRbBh0TSK4F-_COoKjrbLHo,139364
|
|
58
|
+
sage_wheels/share/meataxe/p239.zzz,sha256=XxDTOGLG8CBMKhNX-VaN_EWbVajNL1Cf7anJ-ZWoPRc,139364
|
|
59
|
+
sage_wheels/share/meataxe/p173.zzz,sha256=f42XaqOFdLnLgK0aepEsFJV-de1EnodKA1YAP9RNY-k,139364
|
|
60
|
+
sage_wheels/share/meataxe/p167.zzz,sha256=AYfq23Er0NCvxR6-Pha4OI5kOA5MukX3WJJ5NbgGe3E,139364
|
|
61
|
+
sage_wheels/share/meataxe/p199.zzz,sha256=bKhErsPX_sO27tnYKDyfXINBZDFWmMIGIAX6rhcTtDU,139364
|
|
62
|
+
sage_wheels/share/meataxe/p049.zzz,sha256=pcxDfAcJpZvc82eX3cD9TdQtwABCITLCEfvl1CWrf2M,139364
|
|
63
|
+
sage_wheels/share/meataxe/p061.zzz,sha256=oEEseGO71h_HV5bsl9sjRlnwe2aIw4BcF-U3NKlj_8w,139364
|
|
64
|
+
sage_wheels/share/meataxe/p101.zzz,sha256=zdMm_zAULW8v8mWurXAyNAS_fsPks5ahdrxIw3Z8v5Y,139364
|
|
65
|
+
sage_wheels/share/meataxe/p128.zzz,sha256=ELJfWRn73P6xFyP-dfjtiKg2bYxNzY1sLMlzCKBxmbA,139364
|
|
66
|
+
sage_wheels/share/meataxe/p089.zzz,sha256=3Ew4qLtyuIvjSTXjzAVLpwunKIAEQA9JSzTkwbcHIaA,139364
|
|
67
|
+
sage_wheels/share/meataxe/p103.zzz,sha256=QWGS8TGibXUYrHFuEBCDWL298xDJ6-90CrLBdVFn0iY,139364
|
|
68
|
+
sage_wheels/share/meataxe/p073.zzz,sha256=WfICRVDxKA4gkQb0JpTHA_QmbyoJBuqm6cDB4leVLeY,139364
|
|
69
|
+
sage_wheels/share/meataxe/p067.zzz,sha256=1xnLQ6qw2OQsb8OhLrPw6dzR68F2oDI7GEosMGtVW1k,139364
|
|
70
|
+
sage_wheels/share/meataxe/p107.zzz,sha256=1-SdHDayM0LOBd6sdm8nAZv3DxWbFsuVlW9Xqg7-rlQ,139364
|
|
71
|
+
sage_wheels/share/meataxe/p113.zzz,sha256=e0swVu3QgO6NjjVVobARd1dvor8YNXzJNREF5921lC8,139364
|
|
72
|
+
sage_wheels/share/meataxe/p064.zzz,sha256=fz-V7xPwTogb4rsOhXGjOD0pWV0C5ZME5sf0xn5E3OI,139364
|
|
73
|
+
sage_wheels/share/meataxe/p139.zzz,sha256=isWwtB9ziyuM0rRIfqzmWOyvdaaZrKTKP5B9xjZhuvo,139364
|
|
74
|
+
sage_wheels/share/meataxe/p059.zzz,sha256=1OSpEtnAAsDMkjRKEzdAR-X5V2O-c0WT6JgAifW_hy4,139364
|
|
75
|
+
sage_wheels/share/meataxe/p071.zzz,sha256=4qIDT2axNMzbXQU0CLIKWHGblCGvz7uIU_4NBR4k1FE,139364
|
|
76
|
+
sage/all__sagemath_meataxe.py,sha256=bJKIZgWmLYLh-2IhrpKDQMoVtc2ryVmIVkPfzZk7-og,66
|
|
77
|
+
sage/libs/meataxe.pxd,sha256=FqAwBUCWeeJpp4UjeWxWWhRgStywZP8jmCK0tTvxhTs,6643
|
|
78
|
+
sage/libs/meataxe.cpython-312-darwin.so,sha256=MyMmPSgjqNRGtrqlp-U9eGU2ue9JuU4xixaDC2TGJRQ,80864
|
|
79
|
+
sage/libs/all__sagemath_meataxe.py,sha256=isUgdlh6SqmFirYA2LvA-IFIJXW-fyhZrXsbt3PifDY,46
|
|
80
|
+
sage/libs/meataxe.pyx,sha256=fRhRX3270t1cC1dRab1H2UHeCRTeMi0WjT9521gblmE,3585
|
|
81
|
+
sage/matrix/matrix_gfpn_dense.pyx,sha256=uzHJUxykYsu5-nd2OZ8_Pp6InnD1N70tTCjpQsRCqBI,71634
|
|
82
|
+
sage/matrix/all__sagemath_meataxe.py,sha256=isUgdlh6SqmFirYA2LvA-IFIJXW-fyhZrXsbt3PifDY,46
|
|
83
|
+
sage/matrix/matrix_gfpn_dense.cpython-312-darwin.so,sha256=i2Hzbvi9dBlbS4Y3CDC9dbYD9Bp8F_aU3LFdc70MqVc,283368
|
|
84
|
+
sage/matrix/matrix_gfpn_dense.pxd,sha256=IMkNNnShKEOvkr-5khmC17O0f4c6PiXvmtYc4Ka62rQ,1708
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-meataxe
|
|
Binary file
|
sage/libs/meataxe.pxd
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-meataxe
|
|
2
|
+
|
|
3
|
+
#*****************************************************************************
|
|
4
|
+
# Copyright (C) 2015 Simon King <simon.king@uni-jena.de>
|
|
5
|
+
#
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
# http://www.gnu.org/licenses/
|
|
11
|
+
#*****************************************************************************
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Import SOME features from meataxe.h
|
|
15
|
+
# (most types are not needed, but listed here
|
|
16
|
+
# in the comments, for completeness)
|
|
17
|
+
#
|
|
18
|
+
cdef extern from "meataxe.h":
|
|
19
|
+
# general ctype emulations
|
|
20
|
+
# ctypedef int size_t # size_t should be a standard type!
|
|
21
|
+
# ctypedef unsigned long Ulong
|
|
22
|
+
# ctypedef unsigned short Ushort
|
|
23
|
+
# ctypedef unsigned char Uchar
|
|
24
|
+
ctypedef unsigned char FEL
|
|
25
|
+
ctypedef FEL *PTR
|
|
26
|
+
|
|
27
|
+
# global constants
|
|
28
|
+
cdef extern int FfOrder # Current field order
|
|
29
|
+
cdef extern int FfChar # Current characteristic
|
|
30
|
+
cdef extern FEL FfGen # Generator
|
|
31
|
+
cdef extern int FfNoc # Number of columns for row ops
|
|
32
|
+
cdef extern int MPB # Number of marks stored in a single byte
|
|
33
|
+
cdef extern size_t FfCurrentRowSize # The byte size of a single row in memory,
|
|
34
|
+
# always a multiple of sizeof(long)
|
|
35
|
+
cdef extern size_t FfCurrentRowSizeIo # The number of bytes actually used in a row
|
|
36
|
+
cdef extern char MtxLibDir[1024] # Where to search/create multiplication tables
|
|
37
|
+
|
|
38
|
+
# we only wrap MeatAxe for small fields (size < 255)
|
|
39
|
+
cdef extern FEL mtx_tmult[256][256]
|
|
40
|
+
cdef extern FEL mtx_tadd[256][256]
|
|
41
|
+
cdef extern FEL mtx_taddinv[256]
|
|
42
|
+
cdef extern FEL mtx_tmultinv[256]
|
|
43
|
+
cdef extern FEL mtx_tinsert[8][256]
|
|
44
|
+
cdef extern FEL mtx_textract[8][256]
|
|
45
|
+
cdef extern FEL FF_ONE, FF_ZERO
|
|
46
|
+
|
|
47
|
+
#########################################
|
|
48
|
+
# function prototypes
|
|
49
|
+
## global parameters
|
|
50
|
+
size_t FfRowSize(int noc)
|
|
51
|
+
size_t FfTrueRowSize(int noc) # Difference to FfRowSize: Doesn't count padding bytes
|
|
52
|
+
int FfSetField(int field) except -1
|
|
53
|
+
int FfSetNoc(int ncols) except -1
|
|
54
|
+
|
|
55
|
+
## Finite Fields
|
|
56
|
+
FEL FfAdd(FEL a, FEL b)
|
|
57
|
+
FEL FfSub(FEL a, FEL b)
|
|
58
|
+
FEL FfNeg(FEL a)
|
|
59
|
+
FEL FfMul(FEL a, FEL b)
|
|
60
|
+
FEL FfDiv(FEL a, FEL b)
|
|
61
|
+
FEL FfInv(FEL a)
|
|
62
|
+
# FEL FfEmbed(FEL a, int subfield) except 255
|
|
63
|
+
# FEL FfRestrict(FEL a, int subfield) except 255
|
|
64
|
+
FEL FfFromInt(int l)
|
|
65
|
+
int FfToInt(FEL f)
|
|
66
|
+
|
|
67
|
+
## Rows
|
|
68
|
+
void FfMulRow(PTR row, FEL mark)
|
|
69
|
+
void FfAddMulRow(PTR dest, PTR src, FEL f)
|
|
70
|
+
void FfAddMulRowPartial(PTR dest, PTR src, FEL f, int first, int len)
|
|
71
|
+
PTR FfAddRow(PTR dest, PTR src)
|
|
72
|
+
PTR FfAddRowPartial(PTR dest, PTR src, int first, int len)
|
|
73
|
+
PTR FfSubRow(PTR dest, PTR src)
|
|
74
|
+
PTR FfSubRowPartial(PTR dest, PTR src, int first, int len)
|
|
75
|
+
FEL FfExtract(PTR row, int col)
|
|
76
|
+
void FfInsert(PTR row, int col, FEL mark)
|
|
77
|
+
int FfFindPivot(PTR row, FEL *mark)
|
|
78
|
+
FEL FfScalarProduct(PTR a, PTR b)
|
|
79
|
+
void FfSwapRows(PTR dest, PTR src)
|
|
80
|
+
void FfPermRow(PTR row, long *perm, PTR result)
|
|
81
|
+
int FfCmpRows(PTR p1, PTR p2)
|
|
82
|
+
|
|
83
|
+
## multiple rows
|
|
84
|
+
PTR FfAlloc(int nor) except NULL
|
|
85
|
+
void FfExtractColumn(PTR mat,int nor,int col,PTR result)
|
|
86
|
+
int FfStepPtr(PTR *x) # Advance to next row
|
|
87
|
+
PTR FfGetPtr(PTR base, int row) # Advance to "row" rows after base
|
|
88
|
+
void FfInsert(PTR row, int col, FEL mark)
|
|
89
|
+
void FfMapRow(PTR row, PTR matrix, int nor, PTR result)
|
|
90
|
+
|
|
91
|
+
############
|
|
92
|
+
## Skip: Application, error handling, i/o
|
|
93
|
+
|
|
94
|
+
############
|
|
95
|
+
## Matrices
|
|
96
|
+
############
|
|
97
|
+
ctypedef struct Matrix_t:
|
|
98
|
+
int Field, Nor, Noc # Field, #rows, #columns
|
|
99
|
+
PTR Data # Pointer to data area
|
|
100
|
+
int RowSize # Size (in bytes) of one row
|
|
101
|
+
int *PivotTable # Pivot table (if matrix is in echelon form)
|
|
102
|
+
|
|
103
|
+
## Basic memory operations
|
|
104
|
+
Matrix_t *MatAlloc(int field, int nor, int noc) except NULL
|
|
105
|
+
int MatFree(Matrix_t *mat)
|
|
106
|
+
PTR MatGetPtr(Matrix_t *mat, int row) except NULL
|
|
107
|
+
int MatCompare(Matrix_t *a, Matrix_t *b) except -2
|
|
108
|
+
int MatCopyRegion(Matrix_t *dest, int destrow, int destcol, Matrix_t *src, int row1, int col1, int nrows, int ncols) except -1
|
|
109
|
+
Matrix_t *MatCut(Matrix_t *src, int row1, int col1, int nrows, int ncols) except NULL
|
|
110
|
+
Matrix_t *MatCutRows(Matrix_t *src, int row1, int nrows) except NULL
|
|
111
|
+
Matrix_t *MatDup(Matrix_t *src) except NULL
|
|
112
|
+
Matrix_t *MatId(int fl, int nor) except NULL
|
|
113
|
+
Matrix_t *MatLoad(char *fn) except? NULL
|
|
114
|
+
int MatSave(Matrix_t *mat, char *fn) except -1
|
|
115
|
+
|
|
116
|
+
## Basic Arithmetic ## general rule: dest is changed, src/mat are unchanged!
|
|
117
|
+
Matrix_t *MatTransposed(Matrix_t *src) except NULL
|
|
118
|
+
Matrix_t *MatAdd(Matrix_t *dest, Matrix_t *src) except NULL
|
|
119
|
+
Matrix_t *MatAddMul(Matrix_t *dest, Matrix_t *src, FEL coeff) except NULL
|
|
120
|
+
Matrix_t *MatMul(Matrix_t *dest, Matrix_t *src) except NULL
|
|
121
|
+
Matrix_t *MatMulScalar(Matrix_t *dest, FEL coeff) except NULL
|
|
122
|
+
Matrix_t *MatPower(Matrix_t *mat, long n) except NULL
|
|
123
|
+
int StablePower(Matrix_t *mat, int *pwr, Matrix_t **ker) except -1
|
|
124
|
+
FEL MatTrace(Matrix_t *mat) except 255
|
|
125
|
+
Matrix_t *MatMulStrassen(Matrix_t *dest, Matrix_t *A, Matrix_t *B) except NULL
|
|
126
|
+
void StrassenSetCutoff(size_t size)
|
|
127
|
+
|
|
128
|
+
## "Higher" Arithmetic
|
|
129
|
+
Matrix_t *MatTensor(Matrix_t *m1, Matrix_t *m2) except NULL
|
|
130
|
+
Matrix_t *TensorMap(Matrix_t *vec, Matrix_t *a, Matrix_t *b) except NULL
|
|
131
|
+
|
|
132
|
+
int MatClean(Matrix_t *mat, Matrix_t *sub) except -1
|
|
133
|
+
int MatEchelonize(Matrix_t *mat) except -1
|
|
134
|
+
int MatOrder(Matrix_t *mat) except? -1
|
|
135
|
+
long MatNullity(Matrix_t *mat)
|
|
136
|
+
Matrix_t *MatInverse(Matrix_t *src) except NULL
|
|
137
|
+
Matrix_t *MatNullSpace(Matrix_t *mat) except NULL
|
|
138
|
+
Matrix_t *MatNullSpace__(Matrix_t *mat) except NULL
|
|
139
|
+
|
|
140
|
+
## Error handling
|
|
141
|
+
cdef extern int MTX_ERR_NOMEM, MTX_ERR_GAME_OVER, MTX_ERR_DIV0, MTX_ERR_FILEFMT, MTX_ERR_BADARG
|
|
142
|
+
cdef extern int MTX_ERR_RANGE, MTX_ERR_NOTECH, MTX_ERR_NOTSQUARE, MTX_ERR_INCOMPAT
|
|
143
|
+
cdef extern int MTX_ERR_BADUSAGE, MTX_ERR_OPTION, MTX_ERR_NARGS, MTX_ERR_NOTMATRIX, MTX_ERR_NOTPERM
|
|
144
|
+
ctypedef struct MtxFileInfo_t:
|
|
145
|
+
char *Name
|
|
146
|
+
char *BaseName
|
|
147
|
+
|
|
148
|
+
ctypedef struct MtxErrorRecord_t:
|
|
149
|
+
MtxFileInfo_t *FileInfo
|
|
150
|
+
int LineNo
|
|
151
|
+
char *Text
|
|
152
|
+
|
|
153
|
+
ctypedef void MtxErrorHandler_t(MtxErrorRecord_t*)
|
|
154
|
+
MtxErrorHandler_t *MtxSetErrorHandler(MtxErrorHandler_t *h)
|
|
155
|
+
|
|
156
|
+
cdef Matrix_t *rawMatrix(int Field, list entries) except NULL
|
sage/libs/meataxe.pyx
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# distutils: libraries = mtx
|
|
2
|
+
# sage_setup: distribution = sagemath-meataxe
|
|
3
|
+
|
|
4
|
+
# ****************************************************************************
|
|
5
|
+
# Copyright (C) 2017 Simon King <simon.king@uni-jena.de>
|
|
6
|
+
#
|
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
|
9
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
10
|
+
# (at your option) any later version.
|
|
11
|
+
# https://www.gnu.org/licenses/
|
|
12
|
+
# ****************************************************************************
|
|
13
|
+
|
|
14
|
+
from cpython.exc cimport PyErr_SetObject
|
|
15
|
+
from cysignals.signals cimport sig_block, sig_unblock
|
|
16
|
+
cdef dict ErrMsg = {
|
|
17
|
+
"Not enough memory": MemoryError,
|
|
18
|
+
"Time limit exceeded": RuntimeError,
|
|
19
|
+
"Division by zero": ZeroDivisionError,
|
|
20
|
+
"Bad file format": OSError,
|
|
21
|
+
"No such file or directory": OSError,
|
|
22
|
+
"Bad argument": ValueError,
|
|
23
|
+
"Argument out of range": IndexError,
|
|
24
|
+
|
|
25
|
+
"Matrix not in echelon form": ValueError,
|
|
26
|
+
"Matrix not square": ArithmeticError,
|
|
27
|
+
"Incompatible objects": TypeError,
|
|
28
|
+
|
|
29
|
+
"Bad syntax, try `-help'": SyntaxError,
|
|
30
|
+
"Bad usage of option, try `-help'": ValueError,
|
|
31
|
+
"Bad number of arguments, try `-help'": ValueError,
|
|
32
|
+
|
|
33
|
+
"Not a matrix": TypeError,
|
|
34
|
+
"Not a permutation": TypeError
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
cdef Matrix_t *rawMatrix(int Field, list entries) except NULL:
|
|
39
|
+
"""
|
|
40
|
+
Return a meataxe matrix.
|
|
41
|
+
|
|
42
|
+
INPUT:
|
|
43
|
+
|
|
44
|
+
- ``Field`` -- integer; the field size
|
|
45
|
+
- ``entries`` -- list of lists, the entries of the matrix, also
|
|
46
|
+
defining the matrix dimensions. It is *not* tested that all rows
|
|
47
|
+
in ``entries`` have the same length, and it is assumed that both
|
|
48
|
+
the number of rows and the number of columns is positive. All
|
|
49
|
+
elements are given by ints, they are automatically interpreted as
|
|
50
|
+
field elements.
|
|
51
|
+
"""
|
|
52
|
+
cdef Matrix_t *M = MatAlloc(Field, len(entries), len(entries[0]))
|
|
53
|
+
cdef PTR x = M.Data
|
|
54
|
+
cdef int idx, i, j
|
|
55
|
+
cdef list dt_i
|
|
56
|
+
for i in range(M.Nor):
|
|
57
|
+
idx = 0
|
|
58
|
+
dt_i = entries[i]
|
|
59
|
+
for j in range(M.Noc):
|
|
60
|
+
FfInsert(x, j, FfFromInt(dt_i[j]))
|
|
61
|
+
FfStepPtr(&(x))
|
|
62
|
+
return M
|
|
63
|
+
|
|
64
|
+
###############################################################
|
|
65
|
+
## It is needed to do some initialisation. Since the meataxe
|
|
66
|
+
## version used in Sage (SharedMeatAxe) is a dynamic (shared)
|
|
67
|
+
## library, it sufficed to do this initialisation only once.
|
|
68
|
+
## For convenience, the meataxe_init() function is called in
|
|
69
|
+
## this module. Hence, `import sage.libs.meataxe` is enough
|
|
70
|
+
## to make sure that MeatAxe is initialised.
|
|
71
|
+
|
|
72
|
+
from sage.cpython.string cimport str_to_bytes, char_to_str
|
|
73
|
+
|
|
74
|
+
cdef void sage_meataxe_error_handler(const MtxErrorRecord_t *err) noexcept:
|
|
75
|
+
sig_block()
|
|
76
|
+
ErrText = char_to_str(err.Text)
|
|
77
|
+
BaseName = char_to_str(err.FileInfo.BaseName)
|
|
78
|
+
LineNo = err.LineNo
|
|
79
|
+
PyErr_SetObject(ErrMsg.get(ErrText.split(': ')[-1], RuntimeError), f"{ErrText} in file {BaseName} (line {LineNo})")
|
|
80
|
+
sig_unblock()
|
|
81
|
+
|
|
82
|
+
cdef inline meataxe_init() noexcept:
|
|
83
|
+
## Assign to a variable that enables MeatAxe to find
|
|
84
|
+
## its multiplication tables.
|
|
85
|
+
global MtxLibDir
|
|
86
|
+
from sage import env
|
|
87
|
+
mtxdir = str_to_bytes(env.MTXLIB)
|
|
88
|
+
if len(mtxdir) >= 1024:
|
|
89
|
+
raise RuntimeError(f"the path for the meataxe library {mtxdir!r} is too long, it needs to be of length < 1024")
|
|
90
|
+
MtxLibDir[:len(mtxdir)] = mtxdir
|
|
91
|
+
MtxLibDir[len(mtxdir)] = c'\0'
|
|
92
|
+
## Error handling for MeatAxe, to prevent immediate exit of the program
|
|
93
|
+
MtxSetErrorHandler(sage_meataxe_error_handler)
|
|
94
|
+
|
|
95
|
+
meataxe_init()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-meataxe
|
|
Binary file
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-meataxe
|
|
2
|
+
|
|
3
|
+
# ***************************************************************************
|
|
4
|
+
# Copyright (C) 2015 Simon King <simon.king@uni-jena.de>
|
|
5
|
+
#
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
# https://www.gnu.org/licenses/
|
|
11
|
+
# ***************************************************************************
|
|
12
|
+
|
|
13
|
+
from sage.matrix.matrix_dense cimport Matrix_dense
|
|
14
|
+
from sage.structure.element cimport Matrix
|
|
15
|
+
from sage.libs.meataxe cimport *
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
cdef class FieldConverter_class:
|
|
19
|
+
cdef field # A function converting an int to a field element
|
|
20
|
+
cdef FEL zero_FEL # the FEL representation of zero
|
|
21
|
+
cpdef fel_to_field(self, FEL x) noexcept
|
|
22
|
+
cpdef FEL field_to_fel(self, x) except 255
|
|
23
|
+
|
|
24
|
+
cdef FieldConverter_class FieldConverter(field) noexcept
|
|
25
|
+
|
|
26
|
+
cdef class Matrix_gfpn_dense(Matrix_dense):
|
|
27
|
+
cdef Matrix_t *Data
|
|
28
|
+
cdef readonly FieldConverter_class _converter
|
|
29
|
+
|
|
30
|
+
cdef set_slice_unsafe(self, Py_ssize_t i, Matrix_gfpn_dense S) noexcept
|
|
31
|
+
cdef inline int get_unsafe_int(self, Py_ssize_t i, Py_ssize_t j) noexcept
|
|
32
|
+
cpdef Matrix_gfpn_dense get_slice(self, Py_ssize_t i, Py_ssize_t j) noexcept
|
|
33
|
+
cpdef list _rowlist_(self, i, j=*) noexcept
|
|
34
|
+
cpdef Matrix_gfpn_dense _multiply_classical(Matrix_gfpn_dense self, Matrix_gfpn_dense right) noexcept
|
|
35
|
+
cpdef Matrix_gfpn_dense _multiply_strassen(Matrix_gfpn_dense self, Matrix_gfpn_dense right, cutoff=*) noexcept
|
|
36
|
+
|
|
37
|
+
cdef Matrix_gfpn_dense new_mtx(Matrix_t* mat, Matrix_gfpn_dense template) noexcept
|