Showing preview only (1,328K chars total). Download the full file or copy to clipboard to get everything.
Repository: google-deepmind/alphaevolve_results
Branch: main
Commit: 4226acbf237f
Files: 5
Total size: 1.3 MB
Directory structure:
gitextract_avi_5b8y/
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
└── mathematical_results.ipynb
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
================================================
FILE: CONTRIBUTING.md
================================================
# How to Contribute
## Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution,
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.
You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.
## Code reviews
All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.
## Community Guidelines
This project follows [Google's Open Source Community
Guidelines](https://opensource.google/conduct/).
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
# Results of AlphaEvolve
This repository accompanies the technical report
> Novikov et al.
[AlphaEvolve: A coding agent for scientific and algorithmic discovery](https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/AlphaEvolve.pdf).
*Technical report*. 2025.
Specifically, the repository contains a Google Colab notebook with the
mathematical discoveries of AlphaEvolve outlined in Section 3 of the paper, as
well as the corresponding code for verifying their correctness. The notebook is
divided into sections, one for each of the considered mathematical problems.
Note that the notebook contains only the instances where the results from
AlphaEvolve outperforms the state-of-the-art. To avoid clutter, we exclude those
problems where the results matched but did not outperform the best known
constructions.
This repository does *not* contain the code to run AlphaEvolve.
## Installation
No installation required. The provided notebook can be opened and run in Google
Colab.
## Usage
The notebook `mathematical_results.ipynb` can be opened via
[](https://colab.research.google.com/github/google-deepmind/alphaevolve_results/blob/master/mathematical_results.ipynb).
## Citing this work
If you use the code or data in this package, please cite:
```
@article{alphaevolve,
title={Alpha{E}volve: A coding agent for scientific and algorithmic discovery},
author={Novikov, Alexander and V\~{u}, Ng\^{a}n and Eisenberger, Marvin and Dupont, Emilien and Huang, Po-Sen and Wagner, Adam Zsolt and Shirobokov, Sergey and Kozlovskii, Borislav and Ruiz, Francisco J. R. and Mehrabian, Abbas and Kumar, M. Pawan and See, Abigail and Chaudhuri, Swarat and Holland, George and Davies, Alex and Nowozin, Sebastian and Kohli, Pushmeet and Balog, Matej},
year={2025},
journal={arXiv preprint arXiv:2506.13131}
}
```
## License and disclaimer
Copyright 2025 Google LLC
All software is licensed under the Apache License, Version 2.0 (Apache 2.0);
you may not use this file except in compliance with the Apache 2.0 license.
You may obtain a copy of the Apache 2.0 license at:
https://www.apache.org/licenses/LICENSE-2.0
All other materials are licensed under the Creative Commons Attribution 4.0
International License (CC-BY). You may obtain a copy of the CC-BY license at:
https://creativecommons.org/licenses/by/4.0/legalcode
Unless required by applicable law or agreed to in writing, all software and
materials distributed here under the Apache 2.0 or CC-BY licenses are
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the licenses for the specific language governing
permissions and limitations under those licenses.
This is not an official Google product.
================================================
FILE: mathematical_results.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "bC4Vo85hPHfn"
},
"source": [
"Copyright 2025 Google DeepMind Technologies Limited\n",
"\n",
"All software is licensed under the Apache License, Version 2.0 (Apache 2.0);\n",
"you may not use this file except in compliance with the Apache 2.0 license.\n",
"You may obtain a copy of the Apache 2.0 license at:\n",
"https://www.apache.org/licenses/LICENSE-2.0\n",
"\n",
"All other materials are licensed under the Creative Commons Attribution 4.0\n",
"International License (CC-BY). You may obtain a copy of the CC-BY license at:\n",
"https://creativecommons.org/licenses/by/4.0/legalcode\n",
"\n",
"Unless required by applicable law or agreed to in writing, all software and\n",
"materials distributed here under the Apache 2.0 or CC-BY licenses are\n",
"distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n",
"either express or implied. See the licenses for the specific language governing\n",
"permissions and limitations under those licenses.\n",
"\n",
"This is not an official Google product."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5RChGCn7d8eP"
},
"source": [
"# > **[Please read me first](https://github.com/google-deepmind/alphaevolve_results/blob/main/README.md)**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DUBRLLV4dJdV"
},
"source": [
"# Tensor decompositions (algorithms for matrix multiplication)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VbmY-XVldLBX"
},
"source": [
"This section contains several low-rank tensor decompositions, discovered by AlphaEvolve, and the code to verify their correctness. A tensor with parameters $\\langle n,m,p\\rangle$ corresponds to multiplying an $n \\times m$ and an $m \\times p$ matrix, and the rank of the decomposition corresponds to the number of scalar multiplications needed to perform the matrix multiplication."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "JCmE5JpLeJ2B"
},
"outputs": [],
"source": [
"#@title Verification function\n",
"import numpy as np\n",
"\n",
"def verify_tensor_decomposition(decomposition: tuple[np.ndarray, np.ndarray, np.ndarray], n: int, m: int, p: int, rank: int):\n",
" \"\"\"Verifies the correctness of the tensor decomposition.\n",
"\n",
" Args:\n",
" decomposition: a tuple of 3 factor matrices with the same number of columns.\n",
" (The number of columns specifies the rank of the decomposition.) To\n",
" construct a tensor, we take the outer product of the i-th column of the\n",
" three factor matrices, for 1 <= i <= rank, and add up all these outer\n",
" products.\n",
" n: the first parameter of the matrix multiplication tensor.\n",
" m: the second parameter of the matrix multiplication tensor.\n",
" p: the third parameter of the matrix multiplication tensor.\n",
" rank: the expected rank of the decomposition.\n",
"\n",
" Raises:\n",
" AssertionError: If the decomposition does not have the correct rank, or if\n",
" the decomposition does not construct the 3D tensor which corresponds to\n",
" multiplying an n x m matrix by an m x p matrix.\n",
" \"\"\"\n",
" # Check that each factor matrix has the correct shape.\n",
" factor_matrix_1, factor_matrix_2, factor_matrix_3 = decomposition\n",
" assert factor_matrix_1.shape == (n * m, rank), f'Expected shape of factor matrix 1 is {(n * m, rank)}. Actual shape is {factor_matrix_1.shape}.'\n",
" assert factor_matrix_2.shape == (m * p, rank), f'Expected shape of factor matrix 1 is {(m * p, rank)}. Actual shape is {factor_matrix_2.shape}.'\n",
" assert factor_matrix_3.shape == (p * n, rank), f'Expected shape of factor matrix 1 is {(p * n, rank)}. Actual shape is {factor_matrix_3.shape}.'\n",
"\n",
" # Form the matrix multiplication tensor <n, m, p>.\n",
" matmul_tensor = np.zeros((n * m, m * p, p * n), dtype=np.int32)\n",
" for i in range(n):\n",
" for j in range(m):\n",
" for k in range(p):\n",
" matmul_tensor[i * m + j][j * p + k][k * n + i] = 1\n",
"\n",
" # Check that the tensor is correctly constructed.\n",
" constructed_tensor = np.einsum('il,jl,kl -> ijk', *decomposition)\n",
" assert np.array_equal(constructed_tensor, matmul_tensor), f'Tensor constructed by decomposition does not match the matrix multiplication tensor <{(n,m,p)}>: {constructed_tensor}.'\n",
" print(f'Verified a decomposition of rank {rank} for matrix multiplication tensor <{n},{m},{p}>.')\n",
"\n",
" # Print the set of values used in the decomposition.\n",
" np.set_printoptions(linewidth=100)\n",
" print('This decomposition uses these factor entries:\\n', np.array2string(np.unique(np.vstack((factor_matrix_1, factor_matrix_2, factor_matrix_3))), separator=', '))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4nYzMG9peJ2C"
},
"source": [
"## Rank-32 decomposition of <2,4,5> over 0.5*Z"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "LICVJaCBeJ2C"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_245 = (np.array([[-0. , 0.5, -0. , 0.5, 0. , 0. , 0.5, 0. , -0.5, -0.5, -0. ,\n",
" -0.5, -0. , -0. , 0.5, 0. , 0.5, -1. , -0.5, -0. , -0.5, -0. ,\n",
" 0.5, -0. , -0.5, 0.5, -1. , 0. , 0.5, 0. , 0.5, -0. ],\n",
" [ 0.5, -0.5, 0. , 0.5, -0. , 0.5, -0.5, -0. , 0. , -0.5, 0. ,\n",
" 0. , -0.5, 0.5, 0. , 0.5, 0. , -0. , -0. , -0.5, -0. , 0. ,\n",
" 0. , 0.5, -0.5, 0. , -0. , 0. , 0. , 0. , -0. , 0.5],\n",
" [ 0. , -0. , -0.5, -0. , 0.5, -0.5, -0. , 0. , -0. , 0. , 0. ,\n",
" 0.5, -0.5, -0. , 0.5, 0. , 0.5, -0.5, 0.5, 0. , 0. , -0.5,\n",
" -0.5, 0. , -0. , 0.5, 0.5, -0. , 0. , -0. , 0. , 0. ],\n",
" [-0.5, 0. , 0.5, -1. , 0.5, 0. , 0. , -0. , -0.5, 0. , -0. ,\n",
" 0. , -0. , -0.5, -0. , 0.5, -0. , -0.5, -0. , -0.5, -0.5, 0.5,\n",
" -0. , 0.5, -1. , 0. , 0.5, -0. , -0.5, -0. , -0.5, -0.5],\n",
" [ 0. , 0.5, 0. , 0.5, 0. , 0. , -0.5, -0. , -0.5, -0. , -0. ,\n",
" 0.5, -0. , -0. , 0. , -0. , -0. , 0. , 0. , -0. , -0. , -0. ,\n",
" -0. , -0. , -0.5, -0.5, 0. , 0.5, 0.5, -0. , 0. , -0. ],\n",
" [-0.5, -0.5, -0. , -0.5, -0. , -0.5, 0.5, -0.5, -0. , 0. , 0.5,\n",
" 0. , 0.5, -0.5, -0. , -0. , 0.5, -0. , -0.5, 0.5, -0. , -0. ,\n",
" -0. , -0.5, 0.5, -0. , 0. , 0.5, 0. , 0. , 0. , -0. ],\n",
" [-0. , 0. , 0.5, 0. , -0. , 0.5, -0. , 0.5, 0. , 0. , 0.5,\n",
" -0.5, 0.5, -0.5, -0. , 0. , -0.5, 0.5, -0.5, 0. , 0. , -0.5,\n",
" -0. , 0.5, -0. , -0.5, -0.5, -0. , 0. , -0.5, -0. , -0. ],\n",
" [ 0.5, -0. , -0.5, -0. , -0. , -0. , 0. , 0. , -0.5, 0. , 0. ,\n",
" -0. , -0. , 0. , -0. , -0. , -0. , -0.5, -0. , 0.5, -0. , 0.5,\n",
" -0. , 0. , -0. , -0. , 0.5, 0. , -0.5, -0.5, 0. , -0. ]],\n",
" dtype=np.float32), np.array([[ 0.5, -0. , -0. , 0. , -0. , -0.5, 0. , 0. , 1. , -0. , -0. ,\n",
" -0. , 0.5, -0.5, 0.5, 0. , -0. , -0.5, -0. , 0.5, -0.5, 0. ,\n",
" -0.5, -0.5, 0. , -0. , 0.5, 0. , -1. , 0. , 0.5, 0. ],\n",
" [ 0.5, 0. , 0. , 1. , 0. , 0.5, 2. , 0. , -0. , -0. , 0. ,\n",
" 0. , -0.5, 0.5, -0.5, 0. , 0. , 0.5, -0. , 0.5, 0.5, 0. ,\n",
" 0.5, 0.5, -1. , 0. , -0.5, -0. , 0. , -0. , -0.5, 0. ],\n",
" [ 0.5, 0. , -0. , -0. , 0. , -0.5, -0. , -1. , -0. , 0. , 1. ,\n",
" 1. , 0.5, -0.5, -0.5, 0. , -1. , 0.5, 1. , 0.5, -0.5, -0. ,\n",
" 0.5, -0.5, -0. , 1. , -0.5, -2. , -0. , -0. , 0.5, -0. ],\n",
" [-0.5, -0. , -0. , 0. , 0. , 0.5, 0. , 0. , -0. , 0. , -0. ,\n",
" -1. , -0.5, 0.5, -0.5, 0. , -0. , -0.5, 0. , -0.5, 0.5, 0. ,\n",
" 0.5, 0.5, -0. , -1. , 0.5, -0. , 0. , -0. , -0.5, 0. ],\n",
" [ 0. , 0. , 0. , 1. , -0. , -1. , 0. , -0. , -0. , -0. , -0. ,\n",
" -1. , -1. , -0. , -0. , -1. , -1. , -0. , -1. , -0. , -1. , -0. ,\n",
" -0. , -0. , 1. , 1. , -0. , -0. , -0. , -0. , -1. , -1. ],\n",
" [ 0.5, -2. , -0. , 1. , 0. , -0.5, 0. , 0. , 1. , 0. , -0. ,\n",
" 0. , 0.5, -0.5, 0.5, 1. , -0. , -0.5, -0. , 0.5, 0.5, -0. ,\n",
" -0.5, -0.5, -1. , -0. , 0.5, -0. , -1. , -0. , -0.5, -1. ],\n",
" [ 0.5, -0. , 0. , 0. , 0. , 0.5, 0. , -0. , -0. , -0. , 0. ,\n",
" -0. , -0.5, 0.5, -0.5, -1. , 0. , 0.5, -0. , 0.5, -0.5, 0. ,\n",
" 0.5, 0.5, -0. , 0. , -0.5, -0. , -0. , 0. , 0.5, 1. ],\n",
" [-0.5, -0. , -0. , -0. , -0. , -0.5, 0. , 1. , 0. , 0. , -1. ,\n",
" 0. , 0.5, 0.5, 0.5, -0. , 0. , -0.5, -0. , -0.5, 0.5, -0. ,\n",
" -0.5, 0.5, -0. , 0. , 0.5, -0. , -0. , -0. , -0.5, 0. ],\n",
" [ 0.5, 0. , -0. , -0. , -0. , 0.5, 0. , 0. , 0. , 2. , 0. ,\n",
" 0. , -0.5, -0.5, 0.5, -0. , 1. , 0.5, -1. , 0.5, -0.5, -0. ,\n",
" -0.5, -0.5, -0. , 0. , -0.5, -0. , -0. , 0. , 0.5, -0. ],\n",
" [ 0. , -0. , -0. , -1. , 0. , -1. , 0. , 0. , -0. , 0. , -0. ,\n",
" -1. , -1. , 0. , -0. , 1. , -1. , -0. , -1. , -0. , 1. , -0. ,\n",
" -0. , -0. , -1. , 1. , -0. , -0. , -0. , -0. , 1. , 1. ],\n",
" [ 0. , 0. , -0. , -0.5, 0. , 0.5, 0. , -0. , 1. , 0. , 0. ,\n",
" 0.5, 0.5, 0. , 1. , 0.5, 0.5, -1. , 0.5, -0. , 0.5, 2. ,\n",
" 1. , -0. , -0.5, -0.5, -1. , 0. , 1. , -0. , 0.5, 0.5],\n",
" [ 0. , 0. , -0. , 0.5, 2. , -0.5, 0. , 0. , -0. , 0. , -0. ,\n",
" 0.5, -0.5, 1. , 0. , 0.5, 0.5, -0. , 0.5, 0. , -0.5, -0. ,\n",
" 0. , -1. , 0.5, -0.5, -0. , -0. , -0. , 0. , -0.5, 0.5],\n",
" [-0. , -0. , 0. , -0.5, 0. , 0.5, 0. , -1. , -0. , -0. , -1. ,\n",
" -0.5, 0.5, -0. , 0. , 0.5, -0.5, 0. , -0.5, -0. , 0.5, 0. ,\n",
" -0. , 0. , -0.5, 0.5, -0. , -0. , -0. , 0. , 0.5, 0.5],\n",
" [-0. , 0. , 0. , 0.5, -0. , -0.5, -0. , -0. , 0. , 0. , -0. ,\n",
" 0.5, -0.5, 0. , -1. , -0.5, -0.5, 0. , -0.5, -0. , -0.5, 0. ,\n",
" -1. , -0. , 0.5, -0.5, 0. , 0. , 0. , -0. , -0.5, -0.5],\n",
" [-1. , 0. , -0. , -0. , -0. , 1. , -0. , -0. , 0. , -0. , 0. ,\n",
" 0. , -1. , 1. , 1. , 0. , -0. , -1. , -0. , -1. , 1. , 0. ,\n",
" -1. , 1. , 0. , -0. , 1. , -0. , -0. , 0. , -1. , -0. ],\n",
" [-0. , -0. , 0. , -0.5, -0. , 0.5, -0. , 0. , 1. , 0. , 0. ,\n",
" 0.5, 0.5, 0. , -0. , 0.5, 0.5, -0. , 0.5, 0. , -0.5, -0. ,\n",
" -0. , -0. , -0.5, -0.5, -0. , 0. , 1. , 0. , -0.5, 0.5],\n",
" [-1. , -0. , -0. , -0.5, 0. , -0.5, -0. , 0. , 0. , 0. , -0. ,\n",
" -0.5, -0.5, 0. , 0. , -0.5, -0.5, -0. , -0.5, 1. , 0.5, 0. ,\n",
" 0. , -0. , -0.5, 0.5, 0. , -0. , 0. , 0. , 0.5, -0.5],\n",
" [ 1. , -0. , -0. , 0.5, 0. , 0.5, 0. , 1. , -0. , -0. , 1. ,\n",
" 0.5, 0.5, -1. , 0. , -0.5, 0.5, 0. , 0.5, -1. , -0.5, 0. ,\n",
" -0. , 1. , 0.5, -0.5, -0. , 0. , 0. , 2. , -0.5, -0.5],\n",
" [ 0. , 0. , 2. , 0.5, 0. , -0.5, -0. , 0. , -0. , -0. , -0. ,\n",
" 0.5, -0.5, 0. , 0. , -0.5, -0.5, -1. , -0.5, -0. , 0.5, -0. ,\n",
" -0. , 0. , 0.5, -0.5, -1. , -0. , -0. , 0. , 0.5, -0.5],\n",
" [-1. , -0. , -0. , 0. , 0. , 1. , -0. , 0. , -0. , 0. , 0. ,\n",
" -0. , -1. , 1. , -1. , -0. , 0. , 1. , 0. , -1. , -1. , 0. ,\n",
" 1. , 1. , -0. , 0. , -1. , -0. , 0. , -0. , 1. , -0. ]],\n",
" dtype=np.float32), np.array([[ 0. , 0.5, 0.5, 0.5, -0. , -0. , 0.5, 0. , -0. , -0. , -0. ,\n",
" -0. , -0. , 0. , 0. , 0. , -0. , 0.5, 0. , -0. , 1. , -0.5,\n",
" -0. , -0. , 0.5, 0. , -0.5, -0. , -0. , 0. , 1. , 0. ],\n",
" [-0. , 0.5, -0.5, -0.5, -0. , -0. , -0.5, 0. , -1. , -0. , -0. ,\n",
" -0. , 0. , 0. , 0. , 0. , -0. , -0.5, 0. , -0. , -1. , -0.5,\n",
" 0. , -0. , -0.5, -0. , 0.5, 0. , -1. , 0. , -1. , 0. ],\n",
" [ 0. , 0.5, -0. , 0.5, 1. , -0. , 0.5, -0. , 0. , 0. , -0. ,\n",
" 0. , 0. , -0. , 0. , -1. , -0. , 0. , 0. , -0. , 0. , 0. ,\n",
" 0. , 0. , 0.5, 0. , 0. , -0. , 0. , 0. , -0. , 1. ],\n",
" [-1. , 0.5, 0. , 0.5, -0. , 0. , -0.5, 0. , 0. , -0. , 0. ,\n",
" -0. , -0. , -1. , 0. , -1. , -0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , -1. , 0.5, -0. , 0. , -0. , -0. , -1. , 0. , 1. ],\n",
" [-0. , -0. , 0. , -0. , 1. , -1. , 0. , -1. , -0. , -1. , -1. ,\n",
" -0. , -1. , 1. , 0. , 0. , -1. , -0. , -1. , -0. , 0. , 0. ,\n",
" 0. , 1. , -0. , -0. , 0. , -0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , -0. , -0. , 0. , 0. , -1. , -0. , 0. , -1. ,\n",
" 0. , 0. , -0. , -0. , 0. , 0. , 0. , 0. , -0. , -0. , 0. ,\n",
" 0. , -0. , 0. , -0. , 0. , -1. , 0. , -1. , 0. , 0. ],\n",
" [-0. , -0. , 0.5, -0. , 0. , 0. , 0. , 0. , -0. , -1. , -0. ,\n",
" 0. , -0. , 0. , -1. , 0. , -0. , 0.5, -0. , -0. , -0. , -0.5,\n",
" 1. , -0. , -0. , 0. , -0.5, 0. , -0. , -0. , 0. , 0. ],\n",
" [ 0. , -0. , -0.5, 0. , 0. , 0. , -0. , -0. , -0. , 0. , 0. ,\n",
" -1. , 0. , -0. , -1. , 0. , 1. , 0.5, 1. , 0. , -0. , -0.5,\n",
" 1. , 0. , 0. , 1. , -0.5, -1. , -0. , 0. , 0. , -0. ],\n",
" [ 0. , 0. , -0. , -0. , -0. , -0.5, -0. , -0.5, -0. , 0. , 0.5,\n",
" -0. , 0.5, -0.5, 0.5, 0.5, -0.5, 0. , 0.5, -0. , 0.5, 0. ,\n",
" 0.5, 0.5, -0. , 0. , 0. , -0. , 0. , -0. , -0.5, 0.5],\n",
" [-0.5, -0. , 0. , 0.5, 0. , 0. , 0. , -0.5, -0.5, -0. , 0.5,\n",
" -0.5, -0. , -0.5, 0.5, 0.5, -0.5, -0.5, 0.5, -0.5, -0.5, -0. ,\n",
" 0.5, 0.5, -0.5, -0.5, -0.5, 0. , 0.5, 0. , 0.5, 0.5]],\n",
" dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "WoxFZ8V9eJ2C"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 2\n",
"m = 4\n",
"p = 5\n",
"rank = 32\n",
"\n",
"verify_tensor_decomposition(decomposition_245, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Nx23dA23eJ2D"
},
"source": [
"## Rank-45 decomposition of <2,4,7> over Z"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "Y2CpfjKHeJ2D"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_247 = (np.array([[ 0., -1., -1., 0., 1., 1., 1., -1., -1., 0., -0., -0., 0.,\n",
" 0., -0., 1., -0., -1., 0., 0., -0., -0., -0., -1., -0., 0.,\n",
" -0., 0., 0., 0., 0., 1., -1., -0., -0., -0., -0., 1., -0.,\n",
" -0., 0., -1., -1., -0., 0.],\n",
" [ 0., 0., 0., 0., -0., -0., 0., -0., -0., 1., -0., 0., -1.,\n",
" -0., -0., -0., -0., -0., 1., -0., 1., -0., 1., 1., -1., -1.,\n",
" 0., -1., -0., 0., -0., -1., -0., -0., 1., -1., -0., -0., 0.,\n",
" 0., -0., 1., 0., -0., 1.],\n",
" [ 0., 0., -0., 0., 1., 1., -0., -1., 0., -1., 0., -0., -0.,\n",
" 1., -0., 1., 1., 0., -0., 0., 0., -1., -0., -1., 0., 0.,\n",
" -0., 0., -0., 0., -1., 0., -1., -0., 0., 0., 1., 1., -0.,\n",
" -0., 0., -1., -1., -1., -0.],\n",
" [-0., 1., -0., 0., -1., -0., -1., 0., 1., 0., 0., 0., 0.,\n",
" -0., -1., -1., 0., 1., -0., 1., 0., 0., 1., 1., 0., 1.,\n",
" -0., -0., -0., 0., 1., -0., -0., 0., -0., -0., -0., -1., 0.,\n",
" 0., 0., -0., 0., 0., -0.],\n",
" [-1., -1., -1., -0., 1., 1., 0., -1., -0., -0., -0., -0., 0.,\n",
" -0., -0., 1., 1., -1., -0., 0., 0., -0., -0., -0., -0., -0.,\n",
" 0., 0., 1., -1., -0., -0., 0., -0., 1., -0., -0., -0., 0.,\n",
" 1., 0., -1., -0., -0., 0.],\n",
" [ 1., 0., -0., 0., -1., -0., -0., 0., -1., 1., 0., 1., 0.,\n",
" -0., -0., -0., -1., -0., -0., -0., 1., -0., 1., -0., 0., -0.,\n",
" -1., -1., -1., -0., 0., -0., 0., -0., 0., -1., -0., -0., -0.,\n",
" -1., -1., 1., -1., 0., 1.],\n",
" [-1., 0., 0., -1., 1., -0., 0., -1., 1., -1., -0., -0., -0.,\n",
" 0., 0., 1., 1., 0., -0., -0., -1., -1., -0., 0., 0., -0.,\n",
" 0., -0., 1., -0., 0., 0., 0., 1., -0., 0., -0., -0., -0.,\n",
" 0., 1., -1., 0., -0., -0.],\n",
" [ 0., -0., -0., 0., 0., -0., -0., -0., 0., -0., 1., -1., 0.,\n",
" 1., -0., -1., -0., 1., 1., 1., -0., -0., 1., 0., 0., 0.,\n",
" -1., -0., -1., 0., 0., 0., -0., -1., -0., -1., -0., 0., -1.,\n",
" 0., 0., 0., -1., -0., -0.]], dtype=np.float32), np.array([[-0., 0., 0., 1., 1., 1., -0., -1., 0., -0., -0., -1., -0.,\n",
" -1., 0., 0., 1., 0., 1., -0., -0., 1., 0., -0., 0., -1.,\n",
" 0., -0., 0., -0., 0., -1., -0., -1., 1., -0., 0., 1., -0.,\n",
" 1., -0., -0., -0., -1., 0.],\n",
" [-0., 1., 1., 1., -0., 1., -0., -0., -1., -0., 0., 0., 0.,\n",
" 0., -1., 0., 0., -0., 0., 0., -1., -0., 0., 1., 1., -0.,\n",
" 0., -1., -1., -0., -0., -0., 0., 0., 1., 1., -1., 0., -1.,\n",
" 1., 0., -0., -1., 0., -1.],\n",
" [ 0., 0., 1., -0., 0., 0., 0., 0., 0., -0., -0., -0., 1.,\n",
" -0., -0., -0., -0., 0., -0., 0., 0., -0., 0., -0., 0., 0.,\n",
" -0., 0., -0., -0., 0., 1., 0., -0., -1., -0., -0., 0., -0.,\n",
" -0., 0., -0., -0., 0., -0.],\n",
" [-0., 1., 1., -0., -1., -0., 0., 0., -0., 0., 0., 1., -0.,\n",
" 1., 0., -1., -1., -1., -1., -0., 0., -1., 0., -0., 0., 1.,\n",
" 0., 0., -0., -1., -1., 1., 0., 0., -1., 0., -0., 0., -1.,\n",
" -1., -0., -0., 0., 1., -0.],\n",
" [-0., -1., -0., -0., 0., 0., 1., 0., 0., 0., -0., 0., -0.,\n",
" 0., 1., -0., -0., 0., -0., 0., -0., 0., -0., -0., -0., 0.,\n",
" 0., 0., 0., 1., -0., 0., 0., -0., -0., -0., 0., -0., -0.,\n",
" -0., 0., -0., -0., -0., 0.],\n",
" [ 0., -0., 0., -0., 0., 1., 0., 0., 0., -0., -0., -0., -0.,\n",
" 0., 0., 0., 0., -0., 0., -0., 0., 0., -0., 0., -0., 0.,\n",
" -0., -0., -0., -1., -0., -0., 1., -0., -0., -0., -1., -0., -0.,\n",
" 0., 0., -0., 0., -0., 0.],\n",
" [ 0., -0., -1., -0., -0., 0., 0., -0., -0., -0., 0., 0., 0.,\n",
" 0., 0., 0., -0., 0., 0., -0., 0., 0., -0., 0., -0., 0.,\n",
" 0., -0., -0., -1., -0., -0., -0., -0., -0., -0., 0., 0., -0.,\n",
" -0., 0., -0., 0., -0., -0.],\n",
" [ 0., -0., -0., 0., 0., 0., -0., -0., 0., 0., -1., -1., 0.,\n",
" 0., 0., 0., 0., 0., 1., 0., -0., -0., 0., -0., -0., -0.,\n",
" 0., 1., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0.,\n",
" -0., -0., 0., 0., 0., 0.],\n",
" [ 0., 0., -0., -0., -0., 0., 0., -0., 0., 0., -0., 0., -0.,\n",
" 0., 0., 0., 0., -0., 0., 0., -0., -0., 0., 0., 1., -0.,\n",
" -0., -0., -0., 0., 0., -0., 0., -0., -0., -0., 0., 0., -0.,\n",
" -0., 0., 0., -0., 0., 1.],\n",
" [-0., 0., 0., 0., -0., 0., 0., 0., -0., -0., -0., -0., 1.,\n",
" 0., -0., -0., -0., -0., 0., -0., 0., -0., 0., -0., -0., -0.,\n",
" 0., -1., -0., -0., -0., -0., 0., 0., 0., -0., 0., 0., 0.,\n",
" -0., -0., 0., 0., -0., -0.],\n",
" [-0., 1., 1., 0., -1., -0., -0., 0., 0., 0., -0., 1., -0.,\n",
" 1., -0., -1., 0., -1., -1., 0., -0., -0., 0., 0., -0., 1.,\n",
" 0., -0., 0., -1., -1., -0., 0., -0., -1., -0., 0., -0., -1.,\n",
" -1., -0., -1., 0., 1., -0.],\n",
" [ 0., -0., 0., -0., -0., -0., -0., -0., -0., -0., -0., 0., 0.,\n",
" 0., -0., -0., -0., -0., 0., -0., -0., 0., 0., -0., -1., -0.,\n",
" -1., -0., 0., -0., 0., 0., -0., -0., 0., -1., 0., -0., 1.,\n",
" 0., -0., -0., -0., -0., -0.],\n",
" [ 0., 0., 0., 1., -0., 0., -0., -0., 0., 0., -0., 0., 0.,\n",
" 0., -0., -0., -0., -0., 0., -0., -1., -0., 0., -0., 1., 0.,\n",
" 0., 0., -0., -0., -0., 0., -0., 0., 0., -0., -0., -0., -0.,\n",
" 0., 1., -0., -0., 0., -0.],\n",
" [-0., 0., -0., -0., -0., 0., 0., -0., 0., 0., 0., -0., 0.,\n",
" -0., 0., 0., -0., -0., -0., 0., -0., 0., 0., 0., -0., -0.,\n",
" -0., 1., -0., -1., -0., 0., 0., 0., -1., -0., -0., 0., -0.,\n",
" -1., 0., 0., 0., 0., -0.],\n",
" [ 0., 0., 0., -0., -0., -0., -0., -0., 0., 0., -1., -0., -0.,\n",
" 1., 0., -0., -0., 0., 0., -0., -0., -1., 0., -0., -0., -0.,\n",
" 0., 0., 0., -0., 0., -0., -0., 1., -0., -0., -0., -0., -0.,\n",
" -0., -0., -0., -0., -0., 0.],\n",
" [-0., -0., 0., -0., 0., 0., -0., -0., -0., 1., -0., -0., -0.,\n",
" -0., -0., -0., 0., -0., -0., 0., 1., 0., -0., -0., -0., 0.,\n",
" -0., -0., -0., -0., 0., -0., 0., 0., -0., 0., 1., -0., 0.,\n",
" -0., 0., 0., -0., 0., 1.],\n",
" [-1., -0., -1., -1., -0., -1., -0., 1., -0., 0., 0., -0., 0.,\n",
" 0., 0., 0., -1., 0., -0., 0., -0., -0., -0., -0., -0., 0.,\n",
" -0., 0., -0., -0., 0., -0., 0., -0., -0., 0., -0., 0., -0.,\n",
" -1., -0., 0., 0., 1., -0.],\n",
" [ 0., 0., -0., 0., 0., 0., -0., 0., 0., 0., 0., -0., 0.,\n",
" -0., -0., -0., 0., 0., 0., 0., 0., 1., -0., -0., -0., -0.,\n",
" 0., 0., 0., 0., 0., 0., -0., -0., -0., 0., -0., 0., -0.,\n",
" -0., -0., 0., -0., 1., 0.],\n",
" [ 0., -0., -1., -1., 0., -1., -1., 1., 1., -1., 0., -0., -0.,\n",
" 0., 0., 0., 0., 0., 0., -0., 0., 0., 0., -1., -1., -0.,\n",
" -1., 1., -0., -1., -0., 0., 0., -0., -1., -1., 0., 0., 1.,\n",
" -1., 0., 0., -0., -0., 0.],\n",
" [-0., 0., -0., 1., 0., 0., -0., -0., -0., 0., -0., 0., -0.,\n",
" 0., 0., -0., -0., -0., -0., 0., -0., -0., -0., -0., 0., -0.,\n",
" -0., -0., -0., -0., 0., 0., 0., 0., 0., -0., 1., 0., 0.,\n",
" -0., -0., -0., 0., -0., 0.],\n",
" [ 0., 0., 1., 1., 0., 1., -0., -1., -0., 0., 0., -0., 0.,\n",
" -0., 0., -0., -0., -0., -0., -0., -0., 0., 0., -0., -0., 0.,\n",
" -0., 0., -0., 0., 0., -0., 0., -0., -0., 0., -0., -0., 0.,\n",
" -0., -0., -0., 0., -0., 0.],\n",
" [ 0., 0., -0., -0., -0., 0., 0., -0., -0., 0., -1., -0., -0.,\n",
" -0., -0., 0., 0., 0., 0., -1., -0., 0., -0., -0., -0., 0.,\n",
" -0., -0., 0., -0., -0., 0., 0., 0., 0., 0., 0., 0., -0.,\n",
" -0., -0., -0., 0., -0., 0.],\n",
" [-0., 0., 0., 0., 0., -0., 0., 0., 0., 0., -0., -0., 0.,\n",
" -0., -1., 0., -0., -0., -0., -0., -0., 0., -1., -0., 0., 0.,\n",
" 0., -0., -0., -0., 0., -0., 0., 0., 0., 1., -0., -0., 0.,\n",
" 0., -0., -0., 0., -0., -1.],\n",
" [ 0., -0., 0., 0., -0., 0., 0., 0., 0., 0., 0., 0., 1.,\n",
" 0., 0., 0., -0., 0., 1., 1., -0., -0., -0., -0., -0., -1.,\n",
" 0., 0., 0., -0., -0., 0., -0., 0., 0., 0., -0., -0., 0.,\n",
" -0., -0., 0., -0., 0., 0.],\n",
" [ 0., 0., -0., -0., 0., 0., 0., 0., 0., -0., 0., -0., 0.,\n",
" 1., 0., 0., -0., 0., -0., 1., 0., -0., -0., 0., -0., 0.,\n",
" 0., -0., 0., 0., -1., 0., -0., 0., -0., -0., -0., 0., -0.,\n",
" -0., 0., -0., 0., 1., 0.],\n",
" [-0., -0., -0., -0., 0., 0., 0., 0., 0., 0., -0., -0., 0.,\n",
" 0., 1., 0., -0., -0., 0., 0., -0., 0., 0., 0., -0., -0.,\n",
" -0., -0., 0., -0., -0., 0., 0., -0., 0., 0., 0., -0., -1.,\n",
" -0., 0., 0., 0., 0., -0.],\n",
" [-0., -1., -1., -1., 0., 0., 0., 0., 0., 0., -0., -0., -0.,\n",
" -0., -0., -0., 0., 1., 0., 0., 1., -0., -1., -1., -1., 0.,\n",
" 0., 1., 0., -1., 0., -0., 1., -0., -1., -0., 0., -0., 1.,\n",
" -1., -1., 0., 1., -0., -0.],\n",
" [ 0., -1., -1., -0., 0., 0., 0., 0., 0., -0., 0., 0., -0.,\n",
" 0., 0., -0., 0., 1., -0., 0., 0., 0., -0., 0., 0., -0.,\n",
" 0., 0., 0., 0., -0., 0., 0., -0., -0., -0., -0., -0., 1.,\n",
" -0., 0., -0., 0., -0., -0.]], dtype=np.float32), np.array([[ 0., -0., -0., 0., 0., 0., 0., 0., -0., -0., 1., -0., 0.,\n",
" 1., -0., -0., 0., 0., 1., -1., 0., 0., -0., -0., -0., -1.,\n",
" -0., 0., 0., -0., -1., -0., 0., -0., -0., 0., -0., 1., 0.,\n",
" -0., -0., -0., 0., 0., 0.],\n",
" [-0., 0., -0., -0., 1., 0., -0., 0., -0., 0., -1., -1., 0.,\n",
" 0., 0., -1., 0., -0., -0., -0., -0., 0., 0., 0., -0., 0.,\n",
" -0., 0., 0., 0., -0., 0., -0., 1., 0., -0., 0., -1., 0.,\n",
" -0., -0., 0., -0., 0., -0.],\n",
" [ 0., -0., -0., -0., -0., -0., 0., 0., 1., -1., 0., -0., -0.,\n",
" -0., -0., -0., 0., 0., -0., -0., 1., 0., -1., 1., -1., 0.,\n",
" -1., 0., -0., 0., 0., 0., 0., -0., -0., 1., 0., -0., 0.,\n",
" 0., -1., 0., 1., -0., 0.],\n",
" [ 0., -0., 0., -0., -0., -0., -0., 0., -0., 0., 0., -0., 0.,\n",
" 0., -0., 0., -0., -0., 0., 0., -1., 0., 0., 0., 1., 0.,\n",
" 1., 0., -1., 0., 0., 0., 0., 0., 0., -1., -0., -0., -0.,\n",
" -0., 1., 0., -0., -0., 1.],\n",
" [-1., 0., -0., 0., 1., 0., 0., 0., 0., 0., -0., -0., -1.,\n",
" 0., -0., 0., -1., -0., -0., 0., -0., 0., 0., 0., 0., -1.,\n",
" -0., -0., 0., 0., 0., 1., -0., 0., 0., 0., -0., 0., 0.,\n",
" 0., -0., 1., 0., 0., 0.],\n",
" [ 1., 0., 0., 0., 0., -0., 0., -0., 0., 0., 0., -1., 1.,\n",
" -0., -0., -0., 0., -0., 1., 0., 0., 0., 0., -0., -0., 0.,\n",
" 0., 1., -0., 0., -0., -0., 0., 0., -1., -0., 0., -0., 0.,\n",
" 1., -0., -0., 0., -0., -0.],\n",
" [ 1., -0., -0., -0., -1., 0., -0., -0., 0., -0., 0., 0., -0.,\n",
" 0., 0., -0., 1., 0., 0., -0., -0., -0., -0., -0., -0., -0.,\n",
" -0., 0., 0., -0., -1., -0., -0., -0., 0., -0., 0., 1., 0.,\n",
" -0., 0., -1., 0., -1., -0.],\n",
" [-1., 0., -0., -0., 1., 0., 0., 0., 0., 0., -0., -0., 0.,\n",
" 1., -0., -1., -1., -0., -0., -0., 0., -1., 0., 0., 0., 0.,\n",
" -0., 0., -0., 0., 0., -0., -0., 1., -0., 0., -0., -1., 0.,\n",
" -0., -0., 0., 0., 1., -0.],\n",
" [-0., 0., 0., -0., 0., 0., 1., 0., -0., 0., -0., -0., 0.,\n",
" 0., -1., 0., -0., -0., 0., 0., 0., 0., -1., 1., 0., 0.,\n",
" -1., 0., -0., -0., 0., 0., 0., -0., 0., 1., -0., -0., 0.,\n",
" -0., -0., 0., 1., 0., -0.],\n",
" [ 0., 1., -0., 0., -0., 0., -1., -0., 1., -0., 0., 0., -0.,\n",
" -0., -0., -0., 0., 1., 0., -0., 0., -0., -0., -0., 0., -0.,\n",
" 1., 0., -1., 0., 0., 0., -0., -0., -0., 0., -0., -0., 1.,\n",
" -0., 0., -0., 0., 0., -0.],\n",
" [ 0., -0., -0., 0., 0., 0., 0., 0., -1., 1., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., -0., -0., -1., 0., -0., -1., -0., -0.,\n",
" 0., 0., -0., -0., -0., 0., -1., 0., 0., -0., 1., 0., 0.,\n",
" 0., 1., -0., 0., 0., 0.],\n",
" [ 0., 0., 0., -1., 0., 1., -0., -1., 0., -0., 0., 0., 0.,\n",
" 0., -0., 0., -0., -0., -0., -0., -0., -0., 0., 0., -0., -0.,\n",
" -0., 0., 1., -0., 0., 0., 1., -0., 0., -0., 0., 0., -0.,\n",
" 0., -1., -0., -1., -0., 0.],\n",
" [-1., -1., 1., 0., 1., 1., 1., 0., 0., -0., 0., -0., -0.,\n",
" 0., 0., 0., -1., -0., -0., 0., 0., 0., -0., 1., -0., -0.,\n",
" -0., -0., 0., -1., 0., 1., 1., 0., -1., -0., 0., -1., -0.,\n",
" 0., 0., 1., -0., 0., 0.],\n",
" [ 1., 1., -0., -0., -1., -1., -1., 1., 1., -0., -0., 0., 0.,\n",
" -0., -0., 1., 0., 1., -0., 0., -0., -0., -0., -0., 0., -0.,\n",
" 0., -0., -1., 1., 0., 0., -1., -0., -0., -0., 0., 1., -0.,\n",
" 1., -0., -0., 1., -0., -0.]], dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "rDCvOrOIeJ2D"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 2\n",
"m = 4\n",
"p = 7\n",
"rank = 45\n",
"\n",
"verify_tensor_decomposition(decomposition_247, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nxg6Bt_9eJ2D"
},
"source": [
"## Rank-51 decomposition of <2,4,8> over Z\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "AU5YeR83eJ2E"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_248 = (np.array([[-1., -0., -0., 1., 0., 0., -0., 1., 0., -0., 0., 0., -0.,\n",
" -1., 0., 0., 1., 0., 0., 1., 1., -0., -0., -1., -0., -0.,\n",
" 0., 0., 0., 1., -0., 0., 1., -0., 0., -0., 0., -0., -0.,\n",
" -1., 1., -0., -0., -0., -0., 0., 0., 1., 0., 1., -0.],\n",
" [-0., 0., 0., -0., 0., -0., 0., 0., -1., -0., -0., 0., 0.,\n",
" 1., 0., -0., 0., -0., 0., -1., 0., 1., -1., 1., 0., -0.,\n",
" -0., 0., 0., 0., -1., 1., 1., -0., 0., -0., -0., 1., 1.,\n",
" 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., -0., -1.],\n",
" [ 0., 0., -0., 0., -0., 0., -0., -1., -1., 0., -0., 1., -1.,\n",
" 0., 0., -0., -1., 0., -0., -0., -1., -0., -1., 0., 0., -0.,\n",
" -0., -0., -0., -1., 1., 0., -0., -1., 1., -1., -0., -0., -1.,\n",
" 0., -1., -0., -1., -0., -0., 0., 0., 0., -0., 0., 0.],\n",
" [-0., -0., -1., 0., 0., -0., 0., -0., 1., -1., 0., 0., 1.,\n",
" -0., -0., 0., 0., 0., 1., 0., 0., -0., -0., 0., 1., -0.,\n",
" -0., 0., 1., 0., 0., -1., 0., -0., 0., -0., 1., 0., -1.,\n",
" -0., -0., -1., -0., -1., 0., 0., 1., -1., -0., -1., -0.],\n",
" [-1., 0., -0., 1., -0., -1., 0., -0., -0., -0., -1., -0., -0.,\n",
" 0., -1., 0., 1., -1., -0., -0., -0., -0., -0., 0., 1., 1.,\n",
" 0., -0., 1., -0., -0., 0., -0., -0., 0., -1., 0., 0., -0.,\n",
" -1., -0., 0., -0., -0., -0., -1., -0., -0., 0., -0., 1.],\n",
" [-0., -1., -1., -0., -0., 0., -0., 0., 0., -0., 0., -0., 0.,\n",
" -0., -0., 1., 0., 0., -0., -1., -1., 0., -1., 1., -0., 1.,\n",
" 1., -1., 0., 0., -1., 1., -0., 0., 0., -0., 1., -0., -0.,\n",
" 1., 0., 0., -1., -0., 1., -0., -0., 0., -1., 0., -0.],\n",
" [-0., -1., 1., 0., -0., 0., 1., 0., 0., 0., 1., -0., -1.,\n",
" 0., -0., 0., -1., -0., -0., 1., -1., -1., -1., 0., 0., -0.,\n",
" 1., 1., 0., 0., 1., 0., 0., -1., 1., 0., 1., 0., 0.,\n",
" 0., -1., 0., -0., -0., -0., -0., 0., -0., 1., 0., 0.],\n",
" [-0., 1., 0., 0., -1., 1., -1., -0., -0., -1., 0., 0., 1.,\n",
" 0., 1., -1., 0., -0., -0., 0., -0., 1., -0., -1., -0., 0.,\n",
" 0., 0., -0., 0., 0., -1., -0., 1., 0., -0., -0., -0., 0.,\n",
" -0., 1., 0., 1., -1., 0., -0., -0., 0., 1., 0., 0.]],\n",
" dtype=np.float32), np.array([[ 0., 0., 0., 1., 0., -0., -0., -0., -0., 0., 0., -0., 0.,\n",
" -0., 0., -0., 0., -1., -0., 0., -0., -0., -0., -0., 0., -0.,\n",
" 0., -0., 0., 0., 0., 0., -0., 0., 0., -0., -0., 0., 0.,\n",
" -0., -0., -0., 0., 0., 0., -0., -0., 0., 0., 0., 0.],\n",
" [-1., -0., 0., 0., -0., -0., -0., -1., 0., -0., -0., -1., 0.,\n",
" -0., 0., -0., 0., -0., -0., 0., 0., 0., -0., -0., -0., 0.,\n",
" 0., -0., -0., 0., -0., -0., 0., -0., -0., 1., 0., -0., -0.,\n",
" -0., -0., -0., -0., -0., -0., -0., -0., -0., 0., -0., 0.],\n",
" [-0., -0., -1., 0., -0., -0., -0., -0., 0., -0., -0., -0., -1.,\n",
" -0., -1., 0., 0., 0., 1., 0., 0., -0., 0., 1., 0., 0.,\n",
" 0., 1., 0., -0., -0., -1., 0., 1., 1., 0., 0., -0., 0.,\n",
" 1., -0., -0., 0., -0., -0., 0., 1., 0., -1., 0., 0.],\n",
" [-0., -0., 0., 0., 1., 1., 0., -0., 0., -0., -0., -0., 0.,\n",
" -0., 0., -0., -1., -0., 0., 0., 0., 0., 0., -0., -0., 0.,\n",
" 0., -0., 0., 0., -0., 0., 0., 1., 1., 0., 0., -0., 0.,\n",
" 0., 1., 0., 0., 0., 0., 0., -0., 0., 0., -0., 0.],\n",
" [-0., -0., -0., -1., -0., -0., -0., -0., 0., -0., -0., -0., 0.,\n",
" -0., -0., -0., 0., -0., 0., 0., -0., 0., -0., 0., -0., -0.,\n",
" 0., 0., -0., 0., -0., -0., -1., -0., -0., 0., 0., 1., 0.,\n",
" 0., -0., -0., 0., 0., -0., 0., 0., -0., -0., -0., -1.],\n",
" [ 0., -0., 0., -0., -0., -0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., -0., -1., -0., -0., 0., 0., 0., -0., -1., 0.,\n",
" 0., -0., 0., 0., 0., 0., -0., -0., -0., -0., 0., -0., 0.,\n",
" -0., -0., 1., -0., -0., 0., -0., 0., 0., 0., -1., 0.],\n",
" [-1., 0., -0., -0., -0., -0., 0., 0., -0., -0., 0., 0., -0.,\n",
" -0., -0., 0., 0., 0., 1., -0., -0., 0., -0., 0., 0., -0.,\n",
" -0., 0., 1., -0., 0., -0., 0., 0., 0., -0., -0., -0., -0.,\n",
" 0., -0., -0., -0., -0., 0., -0., -0., 1., -0., 0., 0.],\n",
" [-1., 0., -0., 0., -0., -0., -0., 0., -0., -0., 0., 0., -0.,\n",
" 0., -0., -0., 0., 0., 0., -0., -0., -0., -0., 0., 0., 0.,\n",
" 0., 0., -0., -0., -0., -0., 0., 0., 0., -0., 0., -0., -0.,\n",
" 0., -0., -0., -0., -0., -0., 1., 0., -0., -0., 0., 0.],\n",
" [ 0., -0., 0., 0., -0., 0., -0., -0., 0., -0., 0., -0., 0.,\n",
" 0., -0., 0., 0., 1., -0., -0., 0., 0., -0., 0., -0., -1.,\n",
" -0., 0., -0., -0., 0., 0., -0., 0., 0., 0., 0., -0., -0.,\n",
" 0., 0., -0., -0., 0., 1., -0., -0., -0., 0., -0., 1.],\n",
" [ 0., -0., -0., 0., 0., 0., 0., -0., 0., 0., 0., -1., 1.,\n",
" 0., -0., 0., 0., -0., -0., -0., -0., 0., -0., 0., -0., 0.,\n",
" -0., 0., -0., -0., -0., 1., 0., -1., -1., 0., -0., 0., 1.,\n",
" 0., -0., -0., 1., 0., 0., -0., -1., -0., -0., -0., -0.],\n",
" [ 0., -0., -1., 0., -0., -0., 0., 0., 0., -0., -0., -0., -1.,\n",
" -0., 0., -1., 0., 0., 1., 0., 0., 0., 0., -0., 0., 0.,\n",
" 0., 1., 0., -0., -0., -1., -0., 1., 1., -0., 0., 0., 0.,\n",
" -0., -0., -0., 0., -0., 0., 0., 1., -0., -1., 0., -0.],\n",
" [ 0., 1., -0., -0., -0., -0., -1., 0., 0., 0., 0., -0., 0.,\n",
" -0., -0., -0., -0., 0., 0., -0., 0., -1., 0., 0., 0., -0.,\n",
" 0., 0., -0., -0., 0., 0., -0., -0., -0., -0., 0., 0., 0.,\n",
" 0., -0., -0., 0., 0., -1., 0., -0., -0., -0., 0., -0.],\n",
" [ 0., -0., -0., -0., 0., -0., 0., 0., -0., 0., -0., -0., 0.,\n",
" -0., -0., -0., 0., 0., 0., 0., 0., -0., 0., 0., 0., -0.,\n",
" -0., 0., -0., -0., 0., 0., -0., 0., 0., -0., -0., -1., 0.,\n",
" -0., -0., 0., 0., 0., -1., 0., -0., -0., -0., 0., 0.],\n",
" [ 0., -1., 0., 0., -1., -1., 1., 0., -0., -0., 0., 0., -0.,\n",
" 0., -0., -0., -0., 1., 0., 0., 1., 1., 1., -0., 1., 0.,\n",
" -0., -0., 0., -0., 0., -0., -1., -1., -1., -0., -0., 0., -0.,\n",
" 0., -1., -1., -0., -0., 1., -0., 0., 0., 0., 1., -0.],\n",
" [-0., 0., -0., 0., 0., 0., 0., 1., -0., 0., -1., 0., 1.,\n",
" 0., 1., -1., -0., -0., 1., 1., -0., 0., -0., -1., -0., -0.,\n",
" -0., -1., 1., 0., 0., 1., 0., -1., -1., -1., -0., -0., 1.,\n",
" 0., 0., 0., 1., -0., 0., -0., -1., 1., -0., -0., 0.],\n",
" [-0., 0., -0., 0., 0., 0., 0., 1., -0., 0., -1., 0., 1.,\n",
" -1., -0., 0., -0., -0., 0., 1., -0., -0., -0., 0., -0., -0.,\n",
" -0., -1., -0., 0., 0., 1., 0., -1., -1., -1., -0., 0., 1.,\n",
" 0., 0., 0., 1., 0., 0., 1., -1., -0., -0., -0., 0.],\n",
" [ 0., -1., 0., -0., -1., 0., -0., -0., 1., -0., 0., -0., -0.,\n",
" -0., 0., 0., -0., -1., 0., 0., 1., 1., -0., -0., 0., 1.,\n",
" -0., -0., 0., -1., -0., -0., -1., -1., -1., -0., 1., 0., 0.,\n",
" 0., 0., -1., -0., 0., -0., -0., -0., 0., 0., 0., -1.],\n",
" [ 0., -0., -0., -0., -0., 0., -0., 0., 0., 0., 0., -1., -0.,\n",
" -0., -0., 0., 0., 0., -0., -0., -0., 0., 0., 0., -0., -0.,\n",
" 0., 0., -0., 0., 0., -0., 0., 0., -1., 0., 0., -0., -0.,\n",
" -0., 0., -0., -0., 0., -0., -0., 0., -0., -0., -0., 0.],\n",
" [ 0., -0., 0., -0., -0., 0., -0., -0., 0., 0., 0., -0., 0.,\n",
" 0., 0., -1., -0., -0., -0., -0., -0., 0., -0., -0., -0., -0.,\n",
" 0., -0., -0., -0., 0., 0., 0., -0., 1., 0., 0., -0., -0.,\n",
" -0., 0., -0., 1., -0., -0., 0., -0., -0., -1., -0., 0.],\n",
" [ 0., -0., 0., -0., 1., -0., 1., 0., 0., -0., -0., -0., 0.,\n",
" -0., 0., -0., 0., -0., -0., 0., 0., 0., 0., -0., -0., 0.,\n",
" 0., -0., 0., -0., -0., 0., -0., 1., 1., -0., 0., -0., 0.,\n",
" -0., -0., 0., 0., 0., 0., 0., -0., 0., -0., -0., -0.],\n",
" [-0., 1., -0., 0., 1., -0., 0., -0., -1., 0., -0., -0., 0.,\n",
" -0., -0., -0., 0., -0., -0., -0., 0., -1., 0., 0., 0., 0.,\n",
" -1., 0., -0., -0., 0., 0., -0., 1., 1., 0., -1., 1., 0.,\n",
" -0., -0., 1., 0., 0., 0., 0., 0., -0., -0., -0., -0.],\n",
" [-0., -0., 0., 0., -0., 1., -1., -0., -0., 0., -0., 0., 0.,\n",
" 0., 0., 0., 0., -1., 0., 0., 0., 0., 0., -0., -1., -0.,\n",
" 0., 0., 0., -1., -0., 0., -0., -0., 0., -0., -0., -0., 0.,\n",
" 0., 1., 1., -0., 0., 0., -0., 0., 0., 0., -1., 0.],\n",
" [-0., 0., 1., 0., 0., -0., 0., 1., -0., 0., -1., 0., 1.,\n",
" 0., 1., -1., -0., 0., -0., 1., -0., -0., -0., -1., -0., -0.,\n",
" -0., -1., 1., 0., -1., 1., 0., -1., -1., -1., -0., -0., -0.,\n",
" 0., 0., 0., 1., -0., 0., 0., -1., 1., -0., 0., 0.],\n",
" [ 0., 0., -0., 0., -0., -0., 0., -0., -0., -0., -1., 0., -0.,\n",
" 0., -0., -0., -0., 0., 0., -0., -0., -0., 0., 0., 0., -0.,\n",
" -0., 0., 0., 0., 0., -0., 0., 0., -1., -1., -0., -0., -0.,\n",
" -0., -0., -0., -0., 0., -0., 1., 0., -0., -0., 0., 0.],\n",
" [-0., 0., 0., -0., 0., 1., 0., 0., -0., -0., -0., -0., -0.,\n",
" -0., 0., -0., 0., -1., -0., 0., -0., -0., 0., -0., -1., -0.,\n",
" -0., -0., 0., 0., -0., 0., 0., 0., 0., -0., -0., -0., 0.,\n",
" 0., -0., 0., 0., -1., 0., -0., -0., 0., 0., 0., 0.],\n",
" [ 0., -0., -0., -0., -0., 0., 0., 0., -0., -0., -0., 0., 1.,\n",
" -0., 0., 0., -0., 0., -0., 0., -0., 0., 0., -0., 0., -0.,\n",
" 0., 0., 0., -0., 0., -0., -0., -1., -1., -0., 0., -0., -0.,\n",
" -0., 0., -0., -0., 0., 0., -0., -1., 0., -0., -0., 0.],\n",
" [ 0., -0., -1., 0., -0., -0., -0., 0., 0., -0., -0., -0., -1.,\n",
" -0., 0., 0., -0., 0., 1., 0., 0., -0., 0., -0., 0., 0.,\n",
" 0., 1., 0., -0., -0., 0., -0., 1., 1., -0., 0., -0., 0.,\n",
" -0., -0., -0., 0., 0., -0., 0., 1., 0., -1., 0., -0.],\n",
" [-0., -0., -0., -0., 1., -0., 0., 0., 0., 0., -0., 0., -1.,\n",
" 0., -0., -0., 0., -0., -0., 0., 0., 0., -0., -0., -0., 0.,\n",
" 0., 0., -0., -0., -0., 0., -0., 1., 1., -0., 0., -0., 0.,\n",
" 0., -0., 0., 0., -0., 0., 0., -0., 0., -0., 0., -0.],\n",
" [-0., 1., -0., 0., 1., -0., 0., 0., 0., -0., -0., 0., -1.,\n",
" -0., 0., -0., 0., -0., 0., 0., 0., 0., 0., -0., -0., 0.,\n",
" -1., 0., -0., -0., -0., 0., 0., 1., 1., -0., -1., -0., -0.,\n",
" -0., -0., 1., 0., -0., 0., 0., -0., 0., -0., 0., 0.],\n",
" [-0., -0., 0., 0., 0., 1., 0., -0., 0., 0., -0., -0., -0.,\n",
" -0., 0., -0., 0., -1., -0., 0., 0., 0., 0., -0., -1., 0.,\n",
" 0., -0., 0., 0., -0., 0., -0., 0., 0., 0., 0., 0., 0.,\n",
" 0., -0., 1., 0., 0., 0., 0., 0., 0., 0., 0., -0.],\n",
" [ 0., -0., -0., 0., -0., -0., 0., -0., -0., 1., 0., -0., -0.,\n",
" -0., 0., 0., -0., 0., 1., -0., 0., 0., -0., 0., 0., 0.,\n",
" 0., 0., -0., -0., -0., 0., -0., 0., 0., 0., 0., 0., -0.,\n",
" -0., 0., -0., 0., 0., 0., -0., -0., -0., -0., -0., -0.],\n",
" [ 0., -0., -0., -0., -0., 0., -0., 0., -0., 1., 0., 0., -0.,\n",
" 0., -1., -0., 0., 0., -0., 0., -0., -0., -0., -0., 0., -0.,\n",
" 0., 0., -1., -0., -0., 0., -0., 0., 0., -0., 0., 0., -0.,\n",
" -0., -0., -0., 0., -0., -0., 1., 0., 0., -0., -0., -0.]],\n",
" dtype=np.float32), np.array([[-0., -0., 0., 1., -0., -0., 0., -0., -0., 0., 0., -0., 0.,\n",
" 0., -0., 0., 0., -1., 0., 0., -1., -0., 1., -0., -1., -0.,\n",
" 1., 0., 0., 0., -0., -0., -1., 0., -0., 0., -1., 0., 0.,\n",
" 0., 0., 1., -0., 0., 0., -0., 0., 0., -0., -0., -1.],\n",
" [ 0., -0., 0., 0., 0., 0., -0., -0., 0., -0., -0., 0., 0.,\n",
" -0., 0., -0., -0., 1., -0., 0., -0., -0., 0., -0., 1., -1.,\n",
" -1., -0., 0., -0., -0., -0., -0., -0., -0., -0., 1., -0., -0.,\n",
" 0., -0., -1., -0., 1., 0., 0., -0., 0., -0., 0., 0.],\n",
" [ 0., 0., 1., -0., -0., -0., 0., -1., 0., -0., 0., -1., 0.,\n",
" 0., 0., -0., 0., 0., -0., 1., -0., 0., 0., 0., 0., -0.,\n",
" 0., 1., -0., -0., 1., 0., 0., 0., -0., 0., -0., 0., 1.,\n",
" -0., -0., -0., 0., 0., -0., 0., -1., 0., -0., -0., 0.],\n",
" [ 0., 0., 0., 0., -1., 0., -0., -0., 0., -0., 1., 1., 0.,\n",
" -0., 0., 0., 0., 0., -0., 0., 0., -0., 0., -0., -0., 0.,\n",
" -0., -1., 0., 0., 0., 0., -0., -1., -1., -1., -0., -0., 0.,\n",
" 0., 0., 0., -1., -0., 0., -0., -0., -0., -1., -0., 0.],\n",
" [-0., -0., 1., 0., 0., 0., 0., -0., -0., 0., -0., 0., 0.,\n",
" -1., -0., 1., -0., -0., -0., 1., 0., 0., -0., -1., -0., 0.,\n",
" -0., 1., 0., -0., 1., -1., 0., 0., 0., -0., 0., 0., 1.,\n",
" -0., -0., 0., -1., -0., 0., -0., 0., 0., 0., -0., -0.],\n",
" [ 0., -0., 0., -0., 0., 0., -0., -0., 0., 0., 0., -0., -0.,\n",
" 1., 0., -1., 0., 0., 0., -1., 0., -0., 0., 1., 0., 0.,\n",
" 0., -1., -0., -0., 0., -0., 0., 0., 0., 0., 0., -0., 0.,\n",
" -1., 0., -0., -0., 0., 0., 0., 0., -0., -1., 0., 0.],\n",
" [ 0., -0., 0., 0., -0., 0., -1., -0., -1., 0., -0., -0., -1.,\n",
" -0., -0., 0., -0., -0., -0., 0., 1., -1., -1., -0., -0., 0.,\n",
" -1., 0., -0., 1., 0., -0., -0., -1., 0., 0., 1., -0., 0.,\n",
" -0., 1., 0., -0., -0., -0., 0., -1., 0., -0., 0., -0.],\n",
" [ 0., -1., 0., -0., -1., -0., 1., -0., -0., -0., 0., 0., -0.,\n",
" 0., 0., -0., -1., 0., -0., -0., -1., -0., -0., 0., 0., -0.,\n",
" 1., -0., 0., -1., -0., 0., 0., -0., -0., -0., 0., 0., 0.,\n",
" -0., -1., -0., -0., 0., -0., -0., -0., -0., -0., -0., -0.],\n",
" [ 0., 0., 0., -0., -0., -0., -0., -0., 1., 0., 0., -0., -0.,\n",
" -0., -0., 0., 0., 0., 0., 0., -1., -0., 1., -0., 0., -0.,\n",
" 1., 0., -0., 0., 0., -0., -1., -0., 0., 0., -1., -1., 0.,\n",
" -0., 0., -0., -0., 0., -0., 0., -0., 0., 0., -0., 0.],\n",
" [ 0., 1., 0., -0., -0., 0., 0., 0., 0., -0., 0., 0., -0.,\n",
" 0., -0., -0., -0., -0., -0., -0., -0., 1., 0., 0., -0., -1.,\n",
" -1., -0., 0., -0., 0., 0., -0., -0., -0., -0., -0., 1., -0.,\n",
" -0., -0., 0., -0., -0., -1., -0., -0., 0., -0., -0., -1.],\n",
" [ 0., 0., -0., 0., -0., 0., 0., 0., 0., -0., -0., 0., 0.,\n",
" -0., 0., -0., -0., -0., 0., -0., 1., 0., -1., 0., -0., 0.,\n",
" -1., -0., -0., 1., -0., 0., -0., 0., -0., 0., 1., 0., -0.,\n",
" 0., -0., -1., 0., -0., 0., 0., 0., 0., -0., -1., -0.],\n",
" [ 0., 0., 0., -0., 0., 1., -0., -0., -0., -0., -0., -0., -0.,\n",
" -0., 0., 0., -1., 0., -0., 0., -1., -0., -0., -0., -1., -0.,\n",
" 1., 0., 0., -1., -0., 0., 0., -0., 0., 0., -1., -0., -0.,\n",
" 0., -1., 1., -0., -1., 0., -0., 0., -0., 0., -0., 0.],\n",
" [ 0., -0., -1., -0., -0., 0., 0., 0., 0., -0., -0., -0., -0.,\n",
" 1., 0., 0., 0., -0., 1., -1., -0., -0., 0., -0., -0., 0.,\n",
" 0., -1., -0., -0., -1., -0., -0., -0., -0., 0., -0., -0., 0.,\n",
" 0., -0., 0., -0., -0., 0., 0., -0., 1., -0., 0., 0.],\n",
" [ 0., -0., 1., -0., -0., -0., -0., 0., 0., -1., -0., 0., -0.,\n",
" -1., 1., -0., 0., -0., -1., 1., 0., 0., -0., -1., 0., -0.,\n",
" -0., 1., 1., 0., -0., 0., 0., -0., -0., -0., 0., 0., -0.,\n",
" 1., 0., -0., -0., 0., -0., -0., 0., 0., -0., -0., -0.],\n",
" [ 1., 0., 0., 0., -0., -0., 0., 1., 0., -0., -0., -0., 0.,\n",
" -1., -0., -0., -0., -0., 0., -0., -0., 0., 0., 0., -0., 0.,\n",
" 0., 0., -1., -0., 0., 0., -0., 0., -0., 1., -0., 0., 0.,\n",
" -0., -0., 0., 0., 0., -0., 1., -0., -1., -0., -0., -0.],\n",
" [ 0., 0., 0., 0., -0., 0., -0., 0., 0., -0., -1., 0., 0.,\n",
" 1., -1., 0., 0., 0., -0., -1., 0., -0., 0., 1., 0., -0.,\n",
" -0., 0., -0., 0., 0., 0., -0., -0., -0., -0., 0., -0., -0.,\n",
" -1., 0., -0., -0., 0., 0., -1., -0., -0., -0., 0., 0.]],\n",
" dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "AdbcQ2QSeJ2E"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 2\n",
"m = 4\n",
"p = 8\n",
"rank = 51\n",
"\n",
"verify_tensor_decomposition(decomposition_248, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "t3O3PmJmeJ2E"
},
"source": [
"##Rank-47 decomposition of <2,5,6> over Z"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "z0X-8bNWeJ2F"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_256 = (np.array([[ 0., 0., 1., -0., 0., 0., -1., -1., 0., -0., -1., 0., -0.,\n",
" 0., 1., -0., -0., -0., 0., 0., -1., 1., -0., 0., 1., 0.,\n",
" 0., -0., -0., -1., -0., -1., 0., 0., 0., -0., 0., 1., -0.,\n",
" -0., -0., -0., 0., -0., 0., 0., -0.],\n",
" [ 0., -0., -0., 1., -0., -0., 0., 0., 0., 1., 0., 0., 0.,\n",
" 0., 1., -0., -1., 0., -0., -1., 0., 0., 0., -0., -1., -1.,\n",
" 0., -0., 0., 0., 0., 0., 1., 0., -0., -1., 0., 1., -0.,\n",
" 0., 0., -0., -0., -0., 0., -0., 0.],\n",
" [-0., -0., -0., -1., -0., 0., -0., -0., 0., -1., 0., 1., 0.,\n",
" 0., 0., -1., 1., 0., -0., -0., -1., 0., -1., -1., 1., 0.,\n",
" -0., 0., 0., -0., -0., 0., -1., -0., -0., 1., 0., -0., 0.,\n",
" 0., 0., -1., -0., -1., 1., 0., 0.],\n",
" [ 0., -0., -1., 0., -0., -0., -0., -0., 0., 0., -0., 1., 0.,\n",
" -0., 0., -1., 0., 0., 1., 0., 0., 0., -1., 0., -1., -1.,\n",
" -0., -1., -1., -0., -0., -0., -0., -0., 1., 0., 0., 0., -0.,\n",
" -0., 0., 0., 1., -1., 1., -0., 0.],\n",
" [-1., -1., -0., -0., -1., 0., -1., -1., 0., -0., -1., 0., 0.,\n",
" 0., 1., 1., 0., 1., -0., -0., 0., 1., -0., -0., -0., 0.,\n",
" -0., 0., -0., -1., -0., 0., -0., -0., -0., 0., -0., -0., -0.,\n",
" -0., 1., 1., -0., 0., -0., -0., 0.],\n",
" [ 0., -0., -1., -1., -1., 0., -0., 1., 1., -1., -0., -0., -0.,\n",
" -0., 0., -0., -0., -0., 1., -0., -0., 0., -0., -0., 0., -0.,\n",
" 1., 0., 0., -0., -1., -0., -0., 1., 0., -0., 0., -1., -1.,\n",
" 0., 0., 0., 0., 0., 1., 1., 0.],\n",
" [-0., -0., -0., 0., -1., -1., -0., -0., 1., -1., -0., 0., 0.,\n",
" 1., 0., -0., 1., 0., -0., 1., 0., 1., -0., -0., -0., -0.,\n",
" 1., -1., -0., 0., 0., 0., -1., 0., -0., -0., 0., -1., 0.,\n",
" 0., -0., 0., 0., -0., 0., -1., -0.],\n",
" [ 0., -1., 0., 0., 0., 0., -1., 0., 0., -0., 0., -1., 1.,\n",
" 0., 0., -0., 0., 0., -0., 0., -0., 0., -0., -0., 0., 0.,\n",
" -0., -0., -0., 0., -1., 0., 1., -0., -0., 0., 1., 0., 0.,\n",
" 1., -0., 1., 1., 0., -0., 1., 0.],\n",
" [-0., 0., 1., 1., 0., -1., 0., 0., 0., 0., -0., -1., 0.,\n",
" -0., 0., -0., 0., -0., -1., 0., -0., -0., -0., -0., -0., -0.,\n",
" -0., -0., 1., -0., -0., -0., 0., -1., 0., -0., 1., 0., -0.,\n",
" -0., -0., -0., 0., -0., -1., -1., -0.],\n",
" [ 1., 1., 0., 0., 0., -0., 1., 1., 1., 0., 1., -0., 0.,\n",
" 0., 0., 0., 0., 0., -0., 0., 0., 0., -0., -0., 0., -0.,\n",
" -0., -0., -0., -0., 0., 0., 0., -0., -0., 0., -1., 0., 0.,\n",
" -1., -1., -1., -1., 1., -0., -0., 1.]], dtype=np.float32), np.array([[ 0., -1., -0., -0., 0., 0., 1., -1., 0., -0., 0., 0., -1.,\n",
" -0., -0., -0., 0., 0., 0., 0., 0., -0., -0., -0., 0., 0.,\n",
" 0., 0., -0., 0., -1., -0., -0., -0., -0., 0., 0., 0., -0.,\n",
" -0., 1., -0., -0., 0., -0., -0., -0.],\n",
" [-0., 0., 1., -0., -0., 0., 0., -0., -0., 0., -0., 0., 0.,\n",
" -0., 0., 0., -0., 0., -1., -0., -0., 0., -0., 0., 0., 0.,\n",
" -0., -0., 1., 0., -0., 0., -0., -0., -0., -0., 0., -0., -1.,\n",
" -0., -0., -0., 0., 0., 0., 0., 0.],\n",
" [ 0., -0., -0., 0., 0., -0., -0., 0., -0., 1., 0., 0., -0.,\n",
" -0., -0., -0., 1., 0., 0., -1., -1., 0., -0., -1., -0., -0.,\n",
" -0., -0., 0., -0., -0., -0., 0., -0., 0., -0., -0., 1., -0.,\n",
" 0., 0., 0., -0., 0., -0., 0., -0.],\n",
" [ 0., 0., 1., -0., 0., 0., 0., 0., 0., 0., 0., -0., 0.,\n",
" 0., 0., 0., -0., -0., -1., -0., -0., 0., -0., -0., 0., 0.,\n",
" -0., -0., 1., -0., -0., 1., 0., -0., 0., -0., 0., 0., 0.,\n",
" -0., -0., -0., -0., 0., -0., -0., -0.],\n",
" [-1., -0., -0., 0., -1., 0., 0., -1., -0., -0., -1., 0., -0.,\n",
" 1., 0., -0., -0., -1., -0., 0., -0., -1., 0., 0., 0., 0.,\n",
" 1., 0., -0., 1., -0., 1., 0., 0., 0., 0., 0., -0., -0.,\n",
" 0., 0., -0., 0., -0., 0., -0., -0.],\n",
" [-1., -0., 0., 0., 0., 0., 0., -1., 0., -0., -1., -0., -0.,\n",
" -0., -0., 0., 0., 0., -0., 0., -0., 0., 0., 0., 0., 0.,\n",
" -0., -0., -0., -0., -0., 1., -0., 0., -0., 0., 0., 0., -0.,\n",
" 0., 0., -0., 0., -0., 0., 0., -0.],\n",
" [-1., 1., -0., -0., 0., -0., -1., -0., -0., -1., -1., 0., 1.,\n",
" 0., -1., 0., -0., 0., 0., 1., 1., -1., 0., 0., -0., -0.,\n",
" 1., 0., -0., 1., 1., 1., 0., 0., -0., 1., 0., 0., -0.,\n",
" 0., -1., -0., 0., -0., 0., -0., 0.],\n",
" [-0., 0., -0., -1., -0., -0., 0., 0., 0., -0., 0., 1., -0.,\n",
" 0., -0., 0., -0., -0., 1., 0., 0., -0., -0., -0., 0., -0.,\n",
" -0., 0., -1., 0., -1., -0., -1., -1., -0., -0., 0., 0., 1.,\n",
" 0., -0., 0., -0., 0., 1., 1., 0.],\n",
" [-0., 0., -0., 0., 0., 0., -0., 0., 0., -0., -0., -0., 0.,\n",
" 0., -0., -0., -1., 0., 0., 1., -0., -0., -0., 1., -0., 0.,\n",
" 0., 0., -0., 0., 0., 0., -0., 0., 0., -1., -0., 0., -0.,\n",
" 0., -0., -0., 0., 0., 0., -0., -0.],\n",
" [ 0., -0., 0., 0., -0., 0., 0., 0., -0., 0., 0., -0., -0.,\n",
" 0., 0., -0., 0., -0., -0., 1., -0., 0., -0., 0., 0., 1.,\n",
" -0., -1., 0., -0., 0., 0., 0., 0., 1., -0., -0., -0., -0.,\n",
" -0., 0., 0., 0., -0., -0., -0., -0.],\n",
" [-0., -0., -0., -0., -0., -0., 0., -0., -0., 0., -0., -0., -0.,\n",
" -1., 0., 0., 0., -0., -0., 1., -0., -0., -0., -0., -0., -0.,\n",
" 0., 0., -0., 0., -0., 0., -0., 0., -0., -0., 0., -0., 0.,\n",
" 0., 0., -0., -0., -0., 0., -0., -0.],\n",
" [ 0., -0., -0., -0., 0., 0., 0., -0., -0., 0., -0., 0., -0.,\n",
" 0., -1., -0., -0., 0., 0., 1., -0., -1., -0., -0., 0., -0.,\n",
" -0., 0., -0., 1., -0., -0., -0., -0., -0., -0., -0., 0., 0.,\n",
" 0., 0., 0., -0., 0., 0., 0., -0.],\n",
" [-0., 1., -0., -0., 0., 0., 0., -0., 0., 0., -0., -0., 1.,\n",
" -0., 0., -0., 0., 0., 0., -0., 0., 0., 0., 0., 0., 0.,\n",
" -0., 0., 0., -0., -0., 0., -0., 0., -0., -0., 0., -0., 0.,\n",
" 0., -1., -1., 0., -0., 0., 0., 0.],\n",
" [ 0., -0., -0., 0., 0., 0., 0., 0., -0., -0., 0., 1., -0.,\n",
" -0., -0., -0., -0., -0., 1., 0., -0., -0., 0., 0., 0., 0.,\n",
" 0., -0., -1., 0., -1., -0., 0., 0., -0., 0., 0., -0., 1.,\n",
" 0., 0., -0., 0., -0., 1., -0., 0.],\n",
" [ 0., 0., -0., -0., 0., -0., 0., 0., 0., 0., 0., -0., -0.,\n",
" -0., -0., 0., -1., 0., -0., 1., -0., 0., -0., 1., -0., 0.,\n",
" -0., -0., 0., -0., -0., 0., 1., -0., 0., 0., 0., 0., 0.,\n",
" -0., -0., -0., 0., -0., 0., -0., 0.],\n",
" [ 0., 1., -0., -0., 0., 0., 0., -0., -0., 0., 0., -0., 1.,\n",
" -0., 0., -0., -0., 0., -0., -0., -0., 0., -1., -0., -0., -0.,\n",
" -0., 0., 0., -0., -0., -0., -0., -0., 1., -0., 0., 0., -0.,\n",
" -1., -1., -1., -1., 1., -0., 0., -1.],\n",
" [-0., -0., -0., -0., -0., 0., 0., -0., 0., -0., -0., -0., 1.,\n",
" 0., 0., -0., -1., -0., -0., 1., 0., -0., 0., -0., -0., -0.,\n",
" 0., 0., -0., 0., 0., 0., 1., -0., 0., -0., 0., -0., -0.,\n",
" -0., 0., 0., 0., 0., 0., -0., 0.],\n",
" [ 1., 0., 0., -0., 0., -0., 1., 0., -0., 0., 1., 0., -0.,\n",
" -0., 0., 0., 0., 0., 0., -0., -1., 0., -0., 0., -0., -0.,\n",
" -0., -0., 0., -0., 0., -1., -0., -0., -0., -0., -0., 0., 0.,\n",
" -0., -0., -1., -0., -0., -0., 0., 0.],\n",
" [ 0., 0., -0., -0., -0., 0., 0., 0., -0., 0., 0., -0., 0.,\n",
" -0., -0., -0., 0., 0., 0., -0., -0., -0., 0., -0., -0., -0.,\n",
" 0., 0., 1., 0., -0., -0., -0., 0., 0., 0., -1., 0., 0.,\n",
" -1., -0., -0., -1., -0., 0., -0., 0.],\n",
" [-0., 0., -0., -0., -0., 0., -0., -0., -0., 0., -0., 0., 0.,\n",
" -0., 0., 0., 0., 0., -1., -0., 0., 0., -0., -0., 0., -0.,\n",
" -0., 0., 1., -0., -0., 0., -0., 1., 0., -0., -0., -0., -1.,\n",
" -0., -0., -0., -0., -0., 0., 0., 0.],\n",
" [ 0., 0., -1., -1., 0., 0., 0., 0., 0., 1., 0., 0., -0.,\n",
" -0., -0., 0., 1., 0., -0., -1., -1., 0., 0., -1., -1., 0.,\n",
" -0., 0., -0., 0., -0., -0., -0., 0., -0., 1., -0., 1., 0.,\n",
" -0., -0., -0., -0., 0., 0., -0., 0.],\n",
" [ 0., 0., -0., 0., -0., 0., 0., -0., -0., 0., 0., -0., 0.,\n",
" -0., 0., -0., 0., 0., 0., 0., -0., 0., -0., -0., 0., 0.,\n",
" -0., -0., 1., -0., -0., -0., 0., -0., -1., -0., 0., -0., 0.,\n",
" -0., -0., -0., -0., 0., 0., -0., -0.],\n",
" [ 0., -0., 0., 0., 0., -1., 0., 0., -0., -0., 0., 0., 0.,\n",
" 1., -0., 0., -0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" -0., -1., 1., -0., 0., -0., 0., 0., 0., -0., 0., -0., 0.,\n",
" 0., 0., 0., 0., 0., 0., -0., -0.],\n",
" [-1., 1., 0., -0., 0., 0., -1., -0., -0., 0., -1., 0., 1.,\n",
" -0., 0., -0., 0., 0., -0., -0., 1., 0., -1., -0., -0., -0.,\n",
" -0., 0., 1., -0., 1., 1., -0., -1., 0., -0., -1., 0., -0.,\n",
" -1., -1., -0., -1., -0., -1., 0., 0.],\n",
" [-0., 1., 0., 0., -0., 0., 0., -0., 0., 0., -0., 0., 1.,\n",
" -0., 0., -0., 0., -0., -0., -0., -0., 0., 0., -0., 0., -0.,\n",
" -0., -0., -0., 0., -0., 0., 0., -0., 0., -0., 0., 0., -0.,\n",
" -1., -1., 0., 0., -0., 0., 0., 0.],\n",
" [ 0., 1., -0., -0., 0., -0., 0., -0., -0., 0., -1., -0., 1.,\n",
" 0., 0., 1., -0., 0., -0., -0., -0., 0., -1., -0., 0., -0.,\n",
" -0., -0., 0., 1., 0., 1., -0., 0., 0., -0., 0., -0., -0.,\n",
" -1., -1., -0., 0., 1., -0., 0., 0.],\n",
" [ 1., -1., 0., 0., 1., -0., -0., 0., -1., 0., 1., -0., -1.,\n",
" -0., -0., 0., 0., -0., -0., -0., 0., -0., -0., -0., 0., 0.,\n",
" -1., -0., 0., -1., 0., -1., -0., -0., -0., 0., -0., 0., -0.,\n",
" 1., -0., 0., -0., 0., -0., -0., -0.],\n",
" [ 0., 1., -0., 0., 0., 0., 0., -0., -0., 0., 0., 0., 1.,\n",
" 0., 0., 1., -0., -0., 0., -0., -0., 0., -1., 0., 0., 0.,\n",
" -0., -0., -0., -0., -0., -0., 0., -0., -0., -0., 0., 0., 0.,\n",
" -1., -1., 0., 0., 1., 0., -0., -1.],\n",
" [ 1., 0., -0., -0., 1., 0., -0., 0., -1., 0., 1., 0., 0.,\n",
" 0., -0., 0., 0., 1., 0., -0., 0., -0., -0., 0., -0., -0.,\n",
" -1., 0., 0., -1., 0., -1., -0., -0., -0., -0., -0., -0., 0.,\n",
" -0., -0., 0., -0., -0., -0., -0., 0.],\n",
" [ 1., 0., -0., -0., -0., 0., -0., 0., 0., 0., 1., -0., 0.,\n",
" -0., -0., 0., -0., -0., 0., 0., 0., -0., -0., 0., 0., -0.,\n",
" 0., -0., 0., -1., 0., -1., -0., -0., 0., -0., -0., -0., -0.,\n",
" -0., -0., 0., -0., 0., -0., -0., 0.]], dtype=np.float32), np.array([[-0., -1., -0., -0., -1., 0., -1., 0., -0., -1., 0., -0., -0.,\n",
" -0., -0., -1., -0., -1., 0., -0., -1., -0., -1., 0., -0., -0.,\n",
" 1., 0., 0., 0., -0., -0., -0., 0., -0., -0., 0., 1., 0.,\n",
" 1., -0., 1., -1., 0., 0., 0., 0.],\n",
" [-0., -1., -0., 0., -1., -0., 0., -0., 0., 0., 0., 1., 0.,\n",
" -0., 0., 0., 0., -1., -0., 0., 0., -0., -1., 0., 0., -0.,\n",
" 1., 0., 0., 0., 1., 0., -0., -0., -0., -0., -1., -0., -0.,\n",
" 1., 1., -0., 0., -1., -1., -0., -0.],\n",
" [-1., -0., 1., -1., -0., 0., -0., -0., -0., -0., 1., 0., -0.,\n",
" 0., 0., 0., -0., 0., -1., -0., -0., 0., 1., -0., -1., -0.,\n",
" 0., -0., -0., -0., -0., 1., -0., -1., -0., -0., -0., 0., -0.,\n",
" 0., -0., -0., 0., 1., 1., 0., 1.],\n",
" [ 0., -0., -0., 0., 0., -0., 0., 0., -0., 0., -0., -1., -0.,\n",
" -0., -0., -0., -0., 0., -0., -0., -0., 0., 1., -0., 0., 0.,\n",
" 0., 0., 0., -0., 0., -0., -0., -1., -0., -0., 0., -0., 1.,\n",
" 0., -0., -0., -0., 1., 1., -1., 1.],\n",
" [ 0., 0., 0., 0., -1., -0., 0., -0., 0., -1., -0., 0., 0.,\n",
" -0., 0., 0., 0., -1., 0., -0., 0., -0., 0., -1., 1., 0.,\n",
" 1., 0., 0., 0., 0., 0., -0., -0., -0., 1., 0., 1., 0.,\n",
" -0., -0., -0., 0., 0., 0., -0., 0.],\n",
" [-0., -1., 0., -1., -1., 0., -0., 0., -0., -1., -0., -0., -1.,\n",
" -0., -0., -0., -1., -1., 0., 0., 0., 0., 0., 0., -0., -0.,\n",
" 1., -0., 0., -0., -0., -0., 1., -0., -0., 1., 0., -0., 0.,\n",
" -0., 1., -0., 0., 0., 0., 1., -0.],\n",
" [ 1., -0., 0., -0., -0., 0., -0., 0., -0., 0., -1., -0., -0.,\n",
" 0., -0., 1., 0., -0., -0., 0., -0., 0., 0., 0., -0., -1.,\n",
" 0., -0., -0., 0., 0., -1., -0., -0., -1., 0., -0., 0., 0.,\n",
" 0., 0., 0., 0., -1., 0., 0., -1.],\n",
" [-0., -0., -0., 0., -0., -1., -0., -0., 0., -0., 0., -0., 0.,\n",
" -0., -0., -0., 0., -0., -1., -0., 0., -0., 0., 0., 0., 0.,\n",
" -0., 1., 1., 0., -0., 0., 0., -0., -1., 0., 1., -0., -1.,\n",
" 0., 0., -0., -1., 0., 0., -0., -1.],\n",
" [-0., -0., -0., 0., -0., -0., -0., 0., 0., -0., 0., 0., -0.,\n",
" -1., 1., -0., -1., 1., 0., -1., 0., -1., 0., 1., 0., 1.,\n",
" 0., 1., 0., 0., 0., -0., -0., 0., -0., 0., -0., 0., 0.,\n",
" 0., 0., 0., -0., 0., -0., -0., 0.],\n",
" [ 0., 1., -0., -0., 1., 1., -0., -0., -1., -0., 0., -0., 1.,\n",
" -1., -0., 0., -0., 1., -0., 0., -0., -0., 0., -0., -0., -0.,\n",
" 0., -0., 0., 0., -0., 0., 0., 0., -0., 0., -0., -0., -0.,\n",
" 0., -1., -0., -0., 0., 0., 0., 0.],\n",
" [-1., -0., -0., 0., 1., 0., -0., 0., -0., 1., 1., 0., 0.,\n",
" -0., -1., -0., -0., -0., 0., -0., 1., 0., 1., 0., 0., -0.,\n",
" -1., 0., -0., 1., 0., -0., -0., 0., -0., 0., 0., -1., 0.,\n",
" 0., -0., 0., -0., 1., -0., 0., 1.],\n",
" [ 0., -0., 0., -0., -0., -0., -1., -1., 1., -0., 1., -1., 0.,\n",
" -0., 0., 0., -0., -0., -0., 0., -0., -1., 1., -0., -0., -0.,\n",
" -1., 0., 0., 1., -1., 0., -0., 0., -0., -0., -0., 0., -0.,\n",
" 0., 0., -0., -0., 1., 1., 0., 1.]], dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "BGbCVEOieJ2F"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 2\n",
"m = 5\n",
"p = 6\n",
"rank = 47\n",
"\n",
"verify_tensor_decomposition(decomposition_256, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8NfePQHveJ2F"
},
"source": [
"##Rank-23 decomposition of <3,3,3> over Z"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "y7mmudQXeJ2F"
},
"outputs": [],
"source": [
"#@title Data\n",
"decomposition_333 = (np.array([[ 1., 0., -0., -0., -1., 0., 0., -0., -0., 1., -0., 0., 0.,\n",
" -0., -0., 0., -0., 0., -0., -0., 0., 0., 0.],\n",
" [-1., -0., 0., 0., -0., 0., 0., 0., -1., 0., -0., 1., -0.,\n",
" 0., 0., 0., -0., -0., -1., -0., 0., 0., 1.],\n",
" [ 0., -0., -0., -0., 0., 0., -1., -0., 0., -0., 1., 1., 0.,\n",
" 0., -0., -0., 1., 0., 0., 1., 0., -0., -0.],\n",
" [ 0., -0., 1., 1., 0., -0., -0., -0., 0., -0., 1., -0., -1.,\n",
" 0., 0., -0., 0., 0., -0., -0., -1., -0., -0.],\n",
" [-0., 1., 0., -1., 0., -1., -0., -1., 0., -0., -0., 1., -0.,\n",
" -0., -0., -0., 0., 1., -0., 1., -0., -0., 0.],\n",
" [ 0., 1., -0., 0., -0., 0., 0., 0., -0., 0., 1., 1., -0.,\n",
" -0., 0., 0., -0., -0., -0., 1., 0., 1., -0.],\n",
" [ 1., -0., -1., 0., 0., 0., -0., 1., 0., -0., 0., -0., 0.,\n",
" -0., 1., -0., 0., 0., -0., 0., -0., 0., -1.],\n",
" [-1., 0., -0., -0., 0., 0., -0., 0., 0., -0., 0., -0., 0.,\n",
" -1., -1., -0., 0., 0., -1., 0., -0., 0., 1.],\n",
" [ 0., 0., 0., 0., 0., -1., 0., 0., -0., 0., -0., -0., -1.,\n",
" -1., 0., 1., -0., -0., -1., -0., 0., -1., -0.]], dtype=np.float32), np.array([[ 0., -0., -1., -1., 1., -0., -0., -1., -0., 0., -0., -0., 0.,\n",
" 0., 0., 0., -0., 1., -0., -0., 1., -0., 0.],\n",
" [-0., 0., -1., 0., -0., -0., -0., 0., -0., 1., -0., -0., 0.,\n",
" 0., 0., -0., -0., -0., 0., -0., 1., -0., -0.],\n",
" [ 1., 0., -1., 0., 0., -0., 0., -0., 0., -0., 0., 0., 1.,\n",
" 0., 0., 1., -0., -0., -1., 0., -0., -0., 1.],\n",
" [ 0., -0., 0., 0., -0., 1., 0., -0., -0., 0., 1., 1., -1.,\n",
" -1., 0., 0., 0., 1., 0., 1., 1., 0., -0.],\n",
" [ 0., 0., 0., -0., 0., 1., -0., 1., 1., -0., 1., 1., -1.,\n",
" -1., -1., -0., -0., -0., 0., 1., 1., -0., 1.],\n",
" [-0., 0., 0., -0., -0., 1., 0., 1., -0., 0., -0., -0., 0.,\n",
" -1., -1., 1., -0., -0., -1., -0., -0., -0., 1.],\n",
" [ 0., -1., -0., -0., 0., -1., 0., -0., -0., 0., -1., 0., 1.,\n",
" -0., 0., -0., 0., -1., -0., -1., -1., 0., -0.],\n",
" [ 0., 0., -0., 0., 0., 0., -1., 0., 0., 0., -1., 0., 1.,\n",
" -0., -0., 0., -0., 0., 0., 0., -1., -1., 0.],\n",
" [ 0., 0., -0., 0., 0., 0., 0., 0., -0., -0., 0., -0., -0.,\n",
" -0., -0., -1., -1., 0., -0., 0., 0., -1., 0.]], dtype=np.float32), np.array([[-0., 1., 0., -0., -1., 0., 0., -0., 1., 0., -0., 1., -0.,\n",
" 0., 0., -0., -0., 0., -0., -1., -0., -0., -0.],\n",
" [-0., -1., -0., -1., -0., -0., -0., 0., 0., 0., -0., 0., -0.,\n",
" -0., 0., -0., -0., 1., 0., 0., -0., -0., -0.],\n",
" [-0., 0., 0., 0., -0., 1., 0., -1., 0., -0., 0., 0., -0.,\n",
" 1., -1., -0., -0., 1., -0., -0., -0., 0., 0.],\n",
" [ 0., 0., 0., 0., 0., -0., 1., 0., -1., 1., -0., 0., -0.,\n",
" 0., -0., -0., -0., -0., -0., -0., -0., -0., 0.],\n",
" [ 0., -0., -0., 1., -0., -0., -1., -0., -0., 0., -1., 0., -0.,\n",
" -0., -0., -0., -0., -1., 0., 1., -1., -0., -0.],\n",
" [-0., 0., 1., -0., 0., -1., 0., 1., 1., 0., 0., 0., -1.,\n",
" 0., 0., -0., -0., -1., -1., -0., -1., 0., 1.],\n",
" [ 1., 0., 0., -0., 0., -0., 0., 0., 1., 0., 0., 0., -0.,\n",
" 0., -1., -0., -1., -0., 0., -0., -0., -0., 1.],\n",
" [ 0., -0., -0., 0., 0., -1., 1., -0., 0., 0., 1., 0., -1.,\n",
" -0., -0., -1., -0., -0., -0., -1., -0., -1., 0.],\n",
" [ 0., 0., 0., 0., 0., -0., -0., 0., -1., 0., -0., -0., -0.,\n",
" 0., 1., -1., -0., -0., 1., 0., -0., 0., -1.]], dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "Li88v_qYeJ2F"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 3\n",
"m = 3\n",
"p = 3\n",
"rank = 23\n",
"\n",
"verify_tensor_decomposition(decomposition_333, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "AU2VrnMAeJ2F"
},
"source": [
"## Rank-54 decomposition of <3,4,6> over 0.5*Z\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "RSDDU_7keJ2G"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_346 = (np.array([[ 0.5, 0. , 0. , 0. , -1. , 1. , 0. , 1. , -1. , 0. , 0. ,\n",
" 0. , 0.5, 1. , -0.5, 0. , 0.5, 0. , 0. , 0. , 0.5, 0. ,\n",
" 0. , 0. , 0. , 1. , -1. , 1. , 0.5, -0.5, 0. , 0. , 0.5,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 1. , 0. , 0.5, -1. , 1. , -1. , 0. , 1. , 0. , -1. ],\n",
" [ 0.5, 0. , 0. , 0. , 1. , 1. , 0. , 1. , 1. , 0. , 0. ,\n",
" 0. , 0.5, -1. , 0.5, 0. , 0.5, 0. , 0. , 0. , 0.5, 0. ,\n",
" 0. , 0. , 0. , 1. , 1. , -1. , 0.5, -0.5, 0. , 0. , -0.5,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0.5, 0. , 0. , -1. , 0. , 1. , 0. , 0. ],\n",
" [-0.5, 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , -0.5, 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -0.5, 0. , -1. , 0. , -1. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , 0. , -0.5, 0. , 0.5, 0. , 0. , 0. , 0. , 0.5,\n",
" -1. , 0. , -0.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 1. , 0. , 0. , -1. , 1. , 0. , -1. , 1. , 0. , 0. ,\n",
" 0. , 0.5, -1. , -0.5, 0. , 0. , 0. , 0. , 0. , -0.5, 0. ,\n",
" 0. , 0.5, 0. , 0. , 1. , 0. , -0.5, -0.5, -1. , 0. , -0.5,\n",
" 0. , 0. , 0. , 0.5, 0. , -0.5, 0. , 0. , 0. , 0. , 0.5,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0. , 1. , 0. , 0. ],\n",
" [-0.5, 0. , -1. , -0.5, 0. , 0. , -1. , 0. , 0. , -1. , -1. ,\n",
" -1. , 0. , 0. , 0.5, -1. , -0.5, 0. , 0. , -0.5, 0.5, 0. ,\n",
" 0. , -0.5, 1. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" -0.5, 0. , 1. , 0. , -0.5, 0.5, 0. , -1. , -0.5, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0.5, 0. , -1. , 0. ],\n",
" [-0.5, 0. , 0. , -0.5, 0. , 0. , 1. , 0. , 0. , 1. , -1. ,\n",
" 0. , 0. , 0. , -0.5, 1. , 0.5, 0. , 0. , -0.5, -0.5, 0. ,\n",
" 0. , 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0.5, 0. , 1. , 0. , -0.5, -0.5, 0. , 1. , 0.5, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0.5, 0. , 0. , 0. ],\n",
" [ 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 1. , 0.5, 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , 1. , 0. ,\n",
" 0. , 0. , -1. , 0.5, 0. , 0. , 1. , 0. , 0. , 0. , -0.5,\n",
" 0. , 0. , 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , -0.5, 0. , 0. , 1. , 1. , 0. , 1. , -1. ,\n",
" 0. , 0. , 0. , 0.5, 0. , 0. , 0. , 0. , -0.5, 0.5, 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. ,\n",
" 0.5, 0. , 0. , -0.5, 0.5, 0.5, 1. , -1. , 0.5, 0. , -0.5,\n",
" 0. , 0. , 0.5, 0. , 0. , -1. , 0.5, 0. , 0. , 0. ],\n",
" [ 0. , 0. , 1. , 0.5, -1. , 1. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0.5, 0.5, 0. , 0. , 0. , 0. , -0.5, -1. , 0.5, 0. , 1. ,\n",
" 0. , 0. , -0.5, 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0.5, 0. , -1. , 0. , 0.5, 0. , 0. , 0. , 0.5, 1. , 0. ,\n",
" 1. , 0. , 0. , -1. , 0.5, 0. , 0. , 0. , 0. , -0.5],\n",
" [ 0. , 0. , 0. , 0.5, 1. , -1. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0.5, 0.5, 0. , 0. , 0. , 0. , -0.5, -1. , 0.5, 0. , -1. ,\n",
" 0. , 0. , -0.5, 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -0.5, 0. , -1. , 0. , 0.5, 0. , 0. , 0. , 0.5, -1. , 0. ,\n",
" -1. , 0. , 0. , 0. , -0.5, 0. , 0. , 0. , 0. , 0.5],\n",
" [ 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , -1. ,\n",
" -0.5, 0. , -1. , 0. , 0. , 0. , 0.5, 0. , -0.5, 0. , -1. ,\n",
" 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , -1. , 0. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 1. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0.5],\n",
" [ 0. , 1. , 0. , 0.5, -1. , 1. , 0. , 0. , 1. , -1. , 1. ,\n",
" 0. , 0.5, -1. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ,\n",
" -0.5, 0. , 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" -0.5, 0. , 0. , 0. , -0.5, 0. , 0. , 0. , -0.5, 1. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0.5, 0. , 0. , 1. , 0. , 0. ]],\n",
" dtype=np.float32), np.array([[ 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0.5, -1. ,\n",
" 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , -1. , 1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 1. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , -1. ],\n",
" [ 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" -1. , 1. , -0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. ],\n",
" [ 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , -1. , 0. ],\n",
" [-1. , 0. , -1. , 0. , 0. , -1. , 0.5, 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , -1. , 0. , 0. , 1. , 0. , -1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , -1. , 0.5, -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , -0.5, 1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 1. ],\n",
" [ 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. ,\n",
" 0. , 0. , 0. , 1. , -1. , 0. , 0. , 0. , 0. , 0. ],\n",
" [-1. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , -0.5, 0. ,\n",
" 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 1. , 1. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. ,\n",
" -1. , 1. , -0.5, 0. , 0. , 0. , -1. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , -1. , 0. , 0. , 1. ],\n",
" [ 0. , -0.5, 1. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , 0.5, 0. , 0. , 0. , 1. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , 1. , 0. , 1. , 0. , 0. , 0. , 0.5, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 1. , -1. , 0. , -0.5, 0. , 0. , 0. ,\n",
" -0.5, 1. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. ],\n",
" [ 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , -0.5, 0. , 0. , 0. , 0. , 0. , -1. , 1. , 0. ,\n",
" 0. , -1. , -1. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 1. , -1. , 0. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , -1. , 0. , 0. , -1. , 0. ],\n",
" [-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , -1. , 0. , 0. , -1. , -1. , 0.5, 1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 1. ,\n",
" 1. , 0. , 0. , 0. , 1. , 0. , -1. , 0. , 0. , -0.5, 0. ,\n",
" 1. , 0. , 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 1. , -1. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 1. , 0. , 0. , -1. , 0. , 0. , 0. , 1. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. ,\n",
" 0. , 0. , 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , -1. , 0. , 0. , 1. , 1. , 0. , 0. , 0. ],\n",
" [ 0. , 0.5, 0. , 1. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , 1. , 0. , 1. , 0. , 0. , 0. , 0.5, 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , 1. , -1. , 0. , -0.5, 0. , 0. , 0. ,\n",
" -0.5, 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 1. , 0. , -0.5, 1. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , -1. , -1. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 1. , -1. , -1. , 2. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , -1. , 0. , 0. , -1. , 0.5, 0. , 0. , -1. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , 1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , -1. , 0. , 0. , 0. , 0. , -1. , 0. , 1. , 0. ,\n",
" -1. , 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0.5, -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 1. , 1. , 0. , 0. , 1. , 1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , -1. , 0. , 1. , 0. , 0. , -0.5, 0. ,\n",
" 0. , 0. , -0.5, 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. ,\n",
" 1. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 1. ],\n",
" [ 0. , 1. , -1. , 0. , -1. , -1. , 0. , 0. , 0. , -1. , 0. ,\n",
" 0. , -1. , 0. , 0. , -1. , 2. , 0. , -1. , 0. , 0. , 0. ,\n",
" 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" -1. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 1. , 0.5, 0. ,\n",
" 0. , 0. , 0. , 1. , -1. , 0. , 0. , -1. , 0. , 0. ],\n",
" [-1. , 0. , 0. , -1. , 0. , 0. , 0. , -1. , 0. , 0. , 1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -0.5, 0. ,\n",
" 0. , 0. , 0.5, 0. , 0. , 0. , 1. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , -1. , -1. , 0. , 0. , 0. ],\n",
" [ 0. , 0.5, 0. , 1. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , -1. , 0. , 0. , 0. , -0.5, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , 1. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0.5, 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , -0.5, 1. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , -1. , 1. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 1. , 1. , 0. , 0. , -0.5, 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , -1. , 0. , 0. , -1. , -0.5, 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -1. , -1. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 1. , -1. , 0. , 0. , 0. , 0. , 0.5, -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 1. , 1. , 0. , 0. , 1. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 1. , 0. , 0. , 0. , 1. , 0. , 1. , 0. , 0. , 0.5, 0. ,\n",
" 0. , 0. , -0.5, 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. , 1. ],\n",
" [ 0. , 0. , -1. , 0. , 1. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , -1. , 0.5, 0. ,\n",
" 0. , 0. , 0. , -1. , 1. , 0. , 0. , 0. , 0. , 0. ]],\n",
" dtype=np.float32), np.array([[ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , -1. , -1. , 0. , 0. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0.5, -1. , 0. , 1. , 0. ],\n",
" [ 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , -0.5, 1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0.5, 0. , -1. , 1. , 0. , -1. , 0. , 0. , 1. ],\n",
" [ 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 1. , 0. , 1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -0.5, 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. ,\n",
" 1. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , -1. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , 1. , -1. , 0. , 1. , 0.5, 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 1. ,\n",
" 0. , 1. , 0. , 0. , 0. , 1. , 0. , 1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 0. , 1. , 0. , 1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ],\n",
" [ 0. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. ,\n",
" -1. , 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 1. , 0. , 0.5, 0. , 0. , 0. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , -1. , 0. , 0.5, 0. , 1. , 0. , 0. , -1. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ],\n",
" [ 1. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , -1. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 1. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , -0.5, -1. , 0. , 0. , -1. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , -0.5,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. ,\n",
" 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5,\n",
" 0. , 0. , 0. , 0. , 0.5, 0. , -1. , 0. , 1. , 0. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 1. , -0.5,\n",
" 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , -1. , 0. ,\n",
" -1. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. , -1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 1. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , -0.5, 0. , 0. , -0.5,\n",
" -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , -1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , -1. , 1. , 0. , 0. , 0. , 0. , 1. ],\n",
" [ 0. , 0. , 0. , 0. , -0.5, -0.5, 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 1. , 0. , 0. , 1. , -1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , 0. , 0. , 0. , 0. , 0. ],\n",
" [-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0.5, 0. , 0. , 0. ,\n",
" 0. , 0. , -1. , 1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , -1. , 0. , 0. , 1. , -1. , 0. , 0. ,\n",
" 0. , 0. , -1. , 0. , 0. , 0. , -1. , 0. , 0. , 0. ],\n",
" [ 0. , 0. , 0. , 0. , 0. , 0.5, 0. , 0. , 0. , 0. , 0. ,\n",
" 0. , 1. , 0. , 0. , 0. , 0. , 1. , 0.5, 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0. , 0. , 0. , -1. , 0. , 0. ]],\n",
" dtype=np.float32))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "fvumsx4DeJ2G"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 3\n",
"m = 4\n",
"p = 6\n",
"rank = 54\n",
"\n",
"verify_tensor_decomposition(decomposition_346, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jnyHvP2heJ2G"
},
"source": [
"##Rank-63 decomposition of <3,4,7> over 0.5*C"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "9nrBdr5deJ2G"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_347 = (np.array([[ 0. -0.j , -1. +0.j , 0. +0.j , 0. +1.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 1. +0.j , 0. +0.j , 0. -1.j , 0. +0.j ,\n",
" 1. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j , -0. +1.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j , 0. -1.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -1.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 1. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +1.j , 0. -0.j , -0. +0.j , -0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j ],\n",
" [ 0. +0.j , -0.5-0.j , -0. +0.j , 0. +0.j , 0. +0.5j, 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0.5+0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0.5+0.j , -0. +0.j , 0. +0.j , 0. +0.5j, -0. +0.5j,\n",
" -0.5-0.j , -0. +0.j , 0. +0.j , 0.5+0.j , -0.5+0.j , 0. -0.5j,\n",
" 0. +0.j , -0. +0.5j, 0. +0.j , -0. +0.j , 0. -0.j , 0.5+0.j ,\n",
" -0.5+0.j , 0.5+0.j , -0. +0.j , -0. +0.j , 0. +0.5j, -0.5+0.j ,\n",
" 0. -0.5j, -0.5+0.j , 0. +0.j , -1. +0.j , -0. +0.5j, 0. -0.5j,\n",
" -0.5-0.j , 0.5+0.j , 0. -0.5j, 0. +0.j , 0. +0.j , -0.5+0.j ,\n",
" 0.5+0.j , -0.5-0.j , 0. +0.j , -0. +0.j , 0. -0.5j, -0. +0.5j,\n",
" 0. -0.5j, -0.5+0.j , 0. +0.j , 0. +0.j , 0.5+0.j , 0.5+0.j ,\n",
" 0. +0.j , 0.5+0.j , 0. +0.j ],\n",
" [ 0. -0.j , -0. +0.j , 0. -0.j , -1. -0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. -0.j , 0. -1.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. -0.j , 1. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -1.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j ,\n",
" 1. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +1.j , -0. +0.j , -1. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -1. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -1.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 1. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +1.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -1.j , 0. -1.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -1.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +1.j , -0. +0.j , 0. -0.j , -0. +0.j , 1. +0.j ,\n",
" 0. -0.j , 0. -1.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +1.j , -0. +0.j , 0. -0.j , 0. +0.j , 1. +0.j ,\n",
" 0. -0.j , -0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +1.j , 0. +0.j ],\n",
" [-1. -0.j , 0. +1.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -1.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -1.j , -0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -1.j , 0. +0.j , 0. -0.j , 0. -1.j , 0. -0.j ,\n",
" -1. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. -1.j ,\n",
" -0. +0.j , -0. +1.j , 0. +0.j , -0.5-0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -1.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.5j, 0. -0.5j, -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.5j, -0.5+0.j , 0. +0.j , 0. +0.j , 0. -0.5j,\n",
" -0. +0.j , 0. -0.5j, -0. +0.j , 0.5+0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.5j, 0. +0.5j, 0. +0.j , 0. +0.j , -0. +0.5j, 0. +0.j ,\n",
" 0.5+0.j , 0.5+0.j , -0. +0.j , 0.5+0.j , -0. +0.j , 0. -0.5j,\n",
" 0. +0.j , -0. +0.5j, 0.5+0.j , -0. +0.j , -0. +0.j , 0. -0.5j,\n",
" -0.5+0.j , 0. -0.5j, -0.5+0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0.5+0.j , -0.5+0.j , 0. +0.j ,\n",
" 0. -0.5j, 0. +0.j , -0. +0.5j, 0. -0.5j, -0.5+0.j , 0. -0.j ,\n",
" -0.5-0.j , 0. +0.5j, 0. +0.j , 0. +0.5j, -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. -0.5j, 1. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , -1. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -1. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -1.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +1.j , 0. -0.5j, 0. +0.j , 1. +0.j ,\n",
" 0. -1.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +1.j , 0. +0.j ,\n",
" 1. +0.j , 0. +0.j , 1. +0.j , 0. +0.j , 0. +1.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , -0.5+0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j ],\n",
" [ 0. -1.j , 0. +0.j , -1. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +1.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +1.j , -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 1. +0.j , -0. +1.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 1. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -1.j , 1. +0.j , -0.5-0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 1. +0.j ,\n",
" 1. +0.j , 1. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. -1.j , 0. -1.j , 0. +0.j ,\n",
" 0. -0.j , 1. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , -0. +1.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +1.j , 0. -0.j , 1. +0.j ,\n",
" 0. -0.j , -1. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j , 1. +0.j ,\n",
" 1. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , -0. +0.j , 0.5+0.j , 0. -0.j , 0. +0.5j, 0. -0.j ,\n",
" 0.5+0.j , 0.5+0.j , 0. +0.5j, 0.5+0.j , 0.5+0.j , 0.5+0.j ,\n",
" 0. -0.5j, -0. +0.j , -0. +0.j , 0. -0.5j, 0. -0.5j, 0. +0.5j,\n",
" -0. +0.j , -0.5+0.j , 0. +0.j , 0.5+0.j , 0. +0.j , 0. -0.5j,\n",
" 0. +0.5j, 0. -0.j , -0. +1.j , -0. +0.5j, 0. +0.j , 0. +0.j ,\n",
" -0.5-0.j , -0. +0.j , 0. +0.5j, 0. -0.j , -0. +0.5j, 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -0.5j, 0. +0.j , 0. -0.j , 0. -0.5j,\n",
" 0. +0.j , 0. -0.j , -0. +0.5j, 0. +0.5j, 0. +0.5j, -0.5-0.j ,\n",
" 0. +0.j , -0.5-0.j , -0.5+0.j , 0.5+0.j , 0. +0.j , 0. -0.5j,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0.5-0.j , 0.5+0.j , 0.5+0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +1.j , 0. -1.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 1. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j , -0. +0.j , -0. +0.j ,\n",
" -1. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. -1.j , 0. +0.j , -1. -0.j , -0. +0.j , -1. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 1. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -1. -0.j , 0. +0.j , -1. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +1.j , 0. -0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. -1.j , 0. -0.j , 1. +0.j , -0. +1.j ,\n",
" 0. +0.j , 0. +0.j , -1. -0.j , 0. +1.j , 0. -0.j , 0. +0.j ,\n",
" 1. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 1. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 1. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -1.j , -0. +1.j , -0. +0.j , 1. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. -1.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ]]), np.array([[ 0. +0.j , -0. +0.j , 0. -0.5j, 0. +0.j , 0.5+0.j , -0. +1.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.5j, 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , -1. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , -1. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -0.5j, 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.5j,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -1. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , -0.5-0.j , 0. -0.j , 0. +0.5j,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , 0.5+0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , -0. +0.5j, 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.5j, 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0.5+0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0.5+0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0.5-0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. -0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j , -0.5+0.j ,\n",
" 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0.5-0.j ,\n",
" 0. -0.j , 0. -1.j , -0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -1.j , 0. +0.j , 0.5+0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.5j, -0. +0.j , 0.5+0.j , 0. -0.j , -1. -0.j , -0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.5j, 0. +0.j , 0. -0.5j, 0. -1.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 1. +0.j , 0. +0.j , -0. +0.j , 0.5+0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , -0. +0.j , -0. +1.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 1. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , -0.5+0.j , 0. +0.j , 0.5+0.j , 0. -0.j , 0. -0.5j,\n",
" 0. -0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 1. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.5j,\n",
" 0. +0.j , 0. -0.5j, 0. +0.j , 0. +0.j , -1. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0.5-0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. -1.j , -0. +0.j , -1. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. -1.j , 0. -0.j , 0. +0.j , -0. +0.j , 0.5+0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.5j, 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.5j,\n",
" 0. +0.5j, -0. +0.j , 0. +0.j , 0. -0.5j, -0. +0.j , -0. +0.j ,\n",
" 0. -1.j , 0. +0.j , 0. -0.5j, 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0.5-0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j , -0. +1.j , 0. -1.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 1. +0.j , 0. +0.5j, 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. -0.5j, 0. -0.5j, -0. +0.j ,\n",
" -0. +0.j , 0.5+0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.5j, 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0.5+0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , -0.5+0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j ],\n",
" [ 0. +1.j , 0. -1.j , 0. +0.j , -0.5-0.j , 0. +0.j , 0.5+0.j ,\n",
" 0. +0.j , 1. +0.j , 0. -0.j , 0. -0.5j, 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.5j, 0.5+0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0.5-0.j , -0. +1.j , -0.5+0.j , 0. +0.5j, -1. -0.j , 0. +0.5j,\n",
" -0. +0.5j, -0. +0.5j, 0. +0.j , 0.5+0.j , -0.5-0.j , 0. -0.5j,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. -1.j , 0.5+0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , -0.5-0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.5j, 0. +0.j , 0. +1.j ,\n",
" 0. +0.5j, 0. -0.5j, 0. +0.5j, -0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.5j, -0. +0.j , 0. +1.j , -0.5-0.j , -0. +1.j , 0. -0.5j,\n",
" -0. +0.5j, -0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. -1.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -1.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , -1. +0.j , 0. -0.j , -0. +1.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 1. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -1.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 1. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -1. -0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -1. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -1. -0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , -1. -0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , 0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +1.j , 0. -0.j , 0. -1.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -1. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 1. +0.j , -0. +0.j , -1. -0.j , 0. +0.j , 0. +1.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. -1.j ,\n",
" 0. -0.j , 0. +1.j , 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j , -1. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , -0. +1.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , 0. +1.j , 0. -0.j , -0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +1.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +1.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , -0. +1.j , 0. +1.j , 0. +0.j ,\n",
" 0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -1. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -1. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +1.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 1. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , -0.5+0.j , 0. -0.j , 0. -0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0.5+0.j , 0. +1.j , 0. +0.j , 1. +0.j ,\n",
" 1. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , 1. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , -0.5+0.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0.5-0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -1.j , -0. +0.5j, 0. +0.j , 0.5+0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [ 0. -0.j , 0. +0.5j, 0. +0.j , 1. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , -0.5+0.j , 0. +0.j ,\n",
" 1. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0.5+0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -1.j , 0.5+0.j , 0. -0.j , 0. -0.j , -1. -0.j , 0. -0.j ,\n",
" 0. -1.j , 0. +0.j , 0. -0.j , -0. +0.5j, -0. +1.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.5j,\n",
" -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.5j, 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +1.j , 0. -0.5j,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.5j,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.5j, 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0.5-0.j , -0. +0.j , 0. -0.5j, -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0.5-0.j , 0. -0.j , 0.5+0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.5j, 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , 1. +0.j , 0. -1.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +1.j , 0. +0.5j, -0. +0.j , 0. -0.5j, 0. -0.j , -0.5+0.j ,\n",
" -0. +0.j , -1. -0.j , 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -1.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0.5+0.j ,\n",
" 0. +0.j , -0.5-0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.5j, 0. +0.j ],\n",
" [ 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.5j,\n",
" 0. -0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0.5+0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0.5+0.j ,\n",
" -0.5+0.j , 0. +0.j , -0. +0.j , 0.5+0.j , 0. -0.j , 0. +0.j ,\n",
" 1. +0.j , 0. +0.j , 0.5+0.j , -0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +1.j , 0.5+0.j , 0. -0.j , 0. -0.j , 0. +0.j , 1. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0.5+0.j , 0.5+0.j , 1. +0.j ,\n",
" 0. +0.j , -0. +0.5j, -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0.5-0.j , 1. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.5j,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.5j, 0. -1.j ,\n",
" -0. +1.j , -0. +0.j , 0. +0.j ],\n",
" [-1. +0.j , 0. -0.j , -0. +0.j , 0. +0.5j, -0. +0.j , 0. +0.5j,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0.5+0.j , 0. -0.j , 0. -1.j ,\n",
" 0. +0.j , -0.5+0.j , 0. +0.5j, 0. +0.j , -0. +0.j , 0. -1.j ,\n",
" -0. +0.5j, 0. +0.j , 0. -0.5j, -0.5-0.j , 0. +0.j , -0.5-0.j ,\n",
" 0.5+0.j , -0.5-0.j , 0. -0.j , 0. -0.5j, 0. -0.5j, 0.5+0.j ,\n",
" 1. +0.j , 0. +0.j , 0. +1.j , -1. +0.j , 0. -0.5j, 0. +0.j ,\n",
" 1. +0.j , -0. +0.j , 0. -0.5j, 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0.5-0.j , 0. -0.j , 0. -0.j ,\n",
" -0.5-0.j , 0.5+0.j , -0.5+0.j , 0. +0.j , 0. +1.j , 0. +0.j ,\n",
" -0.5-0.j , 0. +0.j , -1. -0.j , 0. -0.5j, 0. -0.j , -0.5+0.j ,\n",
" 0.5+0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0.5+0.j , -0. +0.j , 0. +0.5j, 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0.5+0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -1. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0.5+0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0.5+0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.5j, 0. +0.j , -0.5+0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.5j, 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , -1. -0.j , -0. +0.j , -0.5-0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0.5+0.j , 0. -1.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0.5+0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.5j, 0. +1.j , 1. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.5j,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. -1.j , 0. +0.j ],\n",
" [-0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -1.j , -0. +0.5j,\n",
" 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.5j,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 1. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.5j, 0. +0.j , -0. +1.j , 0. +0.j ,\n",
" -0.5+0.j , -0. +0.j , 0. -0.5j, 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +1.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0.5+0.j , 0. +0.j , -0.5-0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.5j, 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.5j, 0. -0.j , -0. +0.5j, 0. +0.j , 0.5+0.j ,\n",
" -0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0.5-0.j ,\n",
" -0. +0.j , -0.5-0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.5j, 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 1. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.5j,\n",
" -0. +0.j , 0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , -1. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0.5+0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0.5-0.j ,\n",
" 0.5+0.j , 0. -0.j , 0. +0.j , -0.5-0.j , 0. +0.j , -0. +1.j ,\n",
" -1. -0.j , 0. +0.j , -0.5+0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.5j, -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , -0. +0.j , -1. +0.j , 0. +0.j , 0. -1.j , 1. +0.j ,\n",
" -0. +1.j , 0.5+0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. -0.j , 0. -0.j , 0.5+0.j , 0.5+0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.5j, 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , -0.5-0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j , 0. -0.j , -0. +0.5j,\n",
" 0. +0.j , 0. -1.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [ 1. +0.j , -0. +0.j , 0. +1.j , 0. -0.5j, -1. -0.j , 0. -0.5j,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0.5+0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0.5+0.j , 0. -0.5j, 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.5j, 0. +0.j , 0. -0.5j, -0.5-0.j , -0. +0.j , 0.5+0.j ,\n",
" -0.5-0.j , -0.5-0.j , 0. +0.j , -0. +0.5j, 0. -0.5j, -0.5+0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 1. +0.j , -0. +0.5j, 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.5j, 0. +0.j , 0. +0.j , -0. +1.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0.5+0.j , 0. +0.j , -0. +0.j ,\n",
" -0.5+0.j , -0.5-0.j , -0.5-0.j , 1. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0.5+0.j , 0. +1.j , -1. -0.j , 0. +0.5j, -0. +0.j , 0.5+0.j ,\n",
" -0.5+0.j , 1. +0.j , 0. +0.j ]]), np.array([[ 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , 1. +0.j , 0. -0.j , 0. +0.j ,\n",
" 1. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +1.j ,\n",
" 0. -0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. -0.j , -1. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -1. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , -1. +0.j ,\n",
" 0. -1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. +0.j ],\n",
" [-0.5+0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , -0. +0.j , -0. +1.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +1.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +1.j , 0. -1.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , -0. +1.j , -1. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [-0. +0.j , -0. +0.j , -0. +1.j , 0. +0.j , 0. +0.j , 0. -1.j ,\n",
" 0. +0.j , -0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -1. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 1. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. -1.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , -1. +0.j , -0. +0.j , -1. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -1. -0.j , -0. +1.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , -1. +0.j ,\n",
" 0. -0.j , 0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +1.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0.5+0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -1. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 1. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 1. +0.j , 0. -0.j , -1. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" -1. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. -0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , -0. +0.j , -1. -0.j , 1. +0.j , -0. +0.j ,\n",
" 0. +0.j , -1. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +1.j ,\n",
" -0. +1.j , -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 1. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. -1.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. -1.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j ],\n",
" [ 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -1. -0.j , 0. -0.j , 0. -0.j , -0. +1.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -1.j , 0. -1.j ,\n",
" 1. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 1. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -1.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [ 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +1.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 1. +0.j , 0. -1.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -1.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 1. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -1. +0.j , -1. -0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. +0.j , 0. -1.j , 0. -1.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -1.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +1.j , -0. +0.j , 0. +0.j ],\n",
" [-0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. -1.j , 0. -0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +1.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , -1. -0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -1.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 1. +0.j , 0. +0.j ],\n",
" [-0.5-0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +1.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , -0. +1.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 1. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +1.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , -1. +0.j , -0. +1.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. +1.j , 0. -0.j , -0. +1.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , -1. +0.j , -0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -1.j , 0. +0.j , 0. -1.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , -1. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , -0. +0.j , -0. +1.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 1. +0.j , 0. +0.j , -1. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +1.j ,\n",
" -1. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +1.j , -0. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [-0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +1.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , -0. +1.j , 0. +0.j , 1. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. -0.j ,\n",
" -1. -0.j , 0. -0.j , -0. +0.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -1. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , -1. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. -1.j , -0. +0.j , 1. +0.j ,\n",
" 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +1.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +1.j , 0. +0.j , -1. -0.j , 0. +0.j , -1. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +1.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +1.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. -0.j , 1. +0.j , -0. +0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -1. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 1. +0.j , -0. +0.j , 0. +0.j , -1. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 1. +0.j ,\n",
" -0. +0.j , 0. -1.j , -0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. -0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j , -1. +0.j , -1. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j ],\n",
" [-0.5+0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , 1. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. -1.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , -0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +1.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , -0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. +0.j , 0. -1.j ,\n",
" 1. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , -0. +0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 1. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 1. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -1.j , 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , 0. -0.j ,\n",
" -0. +0.j , 0. +0.j , -0. +0.j , 0. +1.j , 0. -0.j , -0. +0.j ,\n",
" -1. +0.j , 0. +0.j , 0. +0.j ],\n",
" [ 0. +0.j , 0. -1.j , 0. +0.j , 0. -1.j , 0. -0.j , -0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -1.j , -1. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -1. -0.j , 0. -0.j , 1. +0.j , 0. -0.j , 0. -0.j , 0. -0.j ,\n",
" 0. -0.j , -1. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. -1.j ,\n",
" -0. +0.j , -1. -0.j , 0. +0.j , 0. -0.j , -0. +0.j , 0. -1.j ,\n",
" 1. +0.j , 0. +1.j , 0. +0.j , -0. +1.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -1.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -1. -0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -1.j , 0. +0.j ],\n",
" [ 0. +0.5j, 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j ,\n",
" 0. -0.j , -0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. +0.j , 0. +0.j , 0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j ,\n",
" -0. +0.j , -0. +0.j , -0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j ,\n",
" -0. +0.j , 0. -0.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. +0.j , -0. +0.j , -0. +0.j ,\n",
" 0. -0.j , -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. +0.j ,\n",
" -0. +0.j , 0. +0.j , 1. +0.j , 0. -0.j , -0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 1. +0.j ],\n",
" [ 0. +0.j , 0. +0.j , 1. +0.j , 0. -0.j , 0. -0.j , -1. -0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +1.j , 0. -0.j , 0. +0.j , -1. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 0. -1.j , 0. +0.j , -0. +0.j ,\n",
" -0. +0.j , 0. -1.j , 0. +0.j , 0. +0.j , 0. +0.j , 0. +0.j ,\n",
" -1. -0.j , -0. +0.j , 0. +1.j , 0. -1.j , 0. -1.j , 0. +0.j ,\n",
" -0. +0.j , -0. +0.j , 0. +0.j , 0. -0.j , 0. -0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , -0. +1.j , 0. +0.j , -0. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. +0.j , 0. -0.j , -1. +0.j , 1. +0.j , 0. +0.j ,\n",
" 0. +0.j , 0. -0.j , 0. -1.j , 0. -0.j , 0. +0.j , 0. -0.j ,\n",
" 0. -0.j , 0. +0.j , 0. -0.j , 1. +0.j , 0. +0.j , -0. +0.j ,\n",
" 0. +1.j , 0. +0.j , 0. +0.j ]]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "v4Z044wzeJ2G"
},
"outputs": [],
"source": [
"#@title Verification\n",
"n = 3\n",
"m = 4\n",
"p = 7\n",
"rank = 63\n",
"\n",
"verify_tensor_decomposition(decomposition_347, n, m, p, rank)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NeghojDaeJ2G"
},
"source": [
"##Rank-74 decomposition of <3,4,8> over Z\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "vFwEQiTOeJ2G"
},
"outputs": [],
"source": [
"#@title Data\n",
"\n",
"decomposition_348 = (np.array([[ 1., -0., 0., -0., 0., 1., 0., -1., 0., -1., -0., -0., 1.,\n",
" 1., 0., -1., 0., -1., -0., -0., 0., 1., 0., 1., 0., 1.,\n",
" -1., -1., -1., 0., -0., 0., 0., 0., 0., 0., -0., -0., -0.,\n",
" 1., 1., -1., 1., 1., 0., -0., -0., 0., -0., -0., -0., 0.,\n",
" -0., -1., -0., -1., 1., -1., 0., 0., -1., -1., -0., 0., -0.,\n",
" 1., -1., -1., 1., -0., 0., -0., 0., -1.],\n",
" [-0., -0., -0., 1., -0., 1., -0., 0., -1., 0., 0., -0., 1.,\n",
" 1., -0., -1., -0., 0., -0., 0., -0., -0., -0., 1., -0., -0.,\n",
" 0., 0., 0., -1., -0., 0., 0., -0., 0., 0., -0., -0., -0.,\n",
" -0., -0., 0., 1., -0., -0., 0., 0., -0., -0., -0., 0., -0.,\n",
" 0., -1., -0., 0., -0., -1., 0., -0., 0., 0., -0., 0., -0.,\n",
" 1., 0., 0., -0., 0., -0., -0., -0., -1.],\n",
" [-0., 0., 0., -0., -0., 1., 0., -1., 0., 0., -0., 1., -0.,\n",
" -0., -0., 0., 0., -1., 0., -0., 0., -0., -0., 1., 0., -0.,\n",
" 0., 0., -1., 0., 0., -1., 0., -0., 0., 0., 0., -0., 1.,\n",
" 1., -0., -1., 1., 1., -0., 0., -0., 0., -0., 0., -0., 0.,\n",
" 0., 0., 0., -1., 1., -1., -0., 0., 0., 0., 0., -0., 1.,\n",
" -0., 0., -1., 1., -0., 0., 1., 0., -1.],\n",
" [-1., 0., 0., 1., -0., 0., -0., 1., -1., -0., -0., 0., 0.,\n",
" 0., 0., -0., 0., -0., 0., 0., -0., 0., -0., 0., 1., -1.,\n",
" -0., 1., 1., 0., -0., -0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., -1., -0., 0., -1., 0., 0., 0., -0., -0., -0., 0., 0.,\n",
" -0., -0., 0., 1., 0., -0., 0., -0., -0., 1., -0., -0., 0.,\n",
" 0., -0., -0., -1., -0., 0., 0., 0., -0.],\n",
" [ 0., 0., 0., 0., 1., 0., 0., 1., 0., -0., 0., -0., 0.,\n",
" 0., -0., -0., 1., -0., -1., -0., 0., 0., -0., -1., 0., 0.,\n",
" -0., -0., -0., 0., -1., 1., -0., 0., 1., -0., 0., 0., 0.,\n",
" -1., 0., 1., -1., 0., -0., -0., 0., 1., -1., 0., -0., 0.,\n",
" -1., -0., -1., 1., 0., -0., 0., 0., -0., -0., -1., 0., 0.,\n",
" 0., -0., 1., -1., -0., -0., -0., -0., 1.],\n",
" [-0., -0., -1., 0., -0., 0., -1., -0., -0., 0., -0., -0., 0.,\n",
" 0., 0., -0., -0., -0., -1., 1., -1., -0., 0., 0., -0., -0.,\n",
" 0., 0., -0., -0., -1., -0., 1., -0., 1., -0., -0., -1., 0.,\n",
" 0., -0., -0., 0., -0., 0., -0., -0., -0., -1., -1., 1., -1.,\n",
" 0., -0., -1., -0., -0., -0., -0., -1., 0., 0., -1., 0., 0.,\n",
" 0., 0., -0., 0., 1., 0., -0., 0., 1.],\n",
" [-0., -0., 0., -0., -0., 0., 0., 1., 0., 0., 0., 0., -0.,\n",
" -0., 0., 0., 1., 1., 0., -0., 0., -0., 0., -1., -0., -0.,\n",
" 0., 0., 1., 0., 0., 1., -0., -0., 1., -0., -0., 0., -1.,\n",
" -1., -0., 1., -1., 0., 0., 0., 0., 1., 0., 0., -0., 0.,\n",
" 0., 0., 0., 1., 0., 1., 0., 0., 0., 0., 0., -1., -1.,\n",
" -0., 0., 1., -1., -0., -0., 0., -0., 1.],\n",
" [-0., -0., 0., 0., -1., 0., -1., -1., -0., 0., 0., 0., 0.,\n",
" -0., -0., 0., 0., 0., 0., 1., -1., 0., 0., -0., 0., -0.,\n",
" -0., 0., 0., 0., 0., 0., 1., 1., 0., -0., -0., 0., -0.,\n",
" -0., -0., -1., 1., -0., -0., -0., -0., -1., 0., -1., -0., 0.,\n",
" -0., -0., -0., -1., 0., 0., -0., -1., -0., 0., 0., -0., -0.,\n",
" 0., -0., 0., -0., -0., -0., 0., -0., 0.],\n",
" [ 0., 0., 0., 0., 0., -0., -0., 0., -0., -1., 0., -0., 1.,\n",
" 0., -1., -1., 0., 0., 1., 0., -0., 1., -1., -0., -0., 1.,\n",
" -0., -1., 0., -0., -0., 0., -1., 0., -1., -1., 0., 1., 0.,\n",
" -0., -0., 0., -0., -0., -1., 0., 1., 0., 1., -0., 0., -0.,\n",
" -0., 0., -0., 0., -0., 0., 0., -0., 0., -1., -0., 0., -0.,\n",
" 1., -1., 0., -0., 0., -1., -0., -0., 0.],\n",
" [ 0., 0., -0., -0., 0., -0., 1., -0., 0., 0., -1., 0., -0.,\n",
" -0., 0., 0., -0., -0., 1., -1., -0., -0., 0., -0., 0., -0.,\n",
" -0., 0., -0., 0., 1., -0., -1., -0., -1., -1., 0., 1., 0.,\n",
" 0., -0., -0., -0., 0., 0., -1., -0., -0., 1., 1., -1., 1.,\n",
" 0., 0., 1., -0., 0., 0., -1., 1., -0., 0., -0., 0., 0.,\n",
" 1., 0., -0., 0., -1., 0., -0., 0., 0.],\n",
" [-1., -1., 0., -0., -0., -0., -0., 0., -0., 0., 0., -0., -0.,\n",
" -1., 0., 0., 0., 0., -0., 0., 0., -0., 0., -0., -0., -0.,\n",
" 1., 0., 0., -0., -0., 0., -1., 0., -1., -1., -1., 1., -0.,\n",
" -0., 0., 0., -0., -0., 0., 0., 1., 0., 1., -0., 0., -0.,\n",
" 0., -0., -0., 0., -0., 0., 0., -0., -0., 0., 0., -0., -0.,\n",
" -0., 0., 0., -0., 0., -1., 1., -0., 0.],\n",
" [-0., -0., 0., -0., -0., -0., 1., -0., 0., 1., 0., -0., 0.,\n",
" -0., -0., 1., 0., 0., -0., 0., -0., 0., 1., -0., -0., -1.,\n",
" 0., 1., -0., -0., 1., 0., 0., 0., -0., -0., -0., 0., -0.,\n",
" -0., 0., -0., 0., 0., -0., -1., -1., -0., 0., 1., -1., -0.,\n",
" -0., -0., -0., -0., -0., 0., -1., 1., 0., -0., -0., -0., -0.,\n",
" 0., -0., 0., 0., 0., -0., 0., -1., 0.]], dtype=np.float32), np.array([[ 0., -0., -0., -0., -0., -0., -0., -0., 0., -0., -0., 0., 0.,\n",
" 0., -0., -0., -0., -1., -0., -0., 0., -0., -0., -0., -0., -0.,\n",
" 0., 0., 0., 0., 0., 0., 0., -0., 0., 0., 0., -0., 1.,\n",
" -1., 0., 0., -0., -0., -0., 0., 0., 0., -0., 0., -0., -0.,\n",
" 0., 0., -0., -0., -0., -0., 0., -0., -1., -0., -0., -0., -0.,\n",
" -0., 1., -0., -0., -0., 0., 0., 0., 0.],\n",
" [-0., -0., -0., 0., -0., 0., 0., -0., -0., 0., -0., 0., -0.,\n",
" -0., -0., -0., -0., 0., 1., -0., -0., -1., -0., 0., -0., -0.,\n",
" -0., 0., 0., -0., 0., 0., 0., -0., -0., -0., 0., -0., 0.,\n",
" 0., 0., 0., 0., -0., -1., 0., -0., 0., 0., 0., 0., 1.,\n",
" -0., -0., -1., 0., 0., 0., -0., 0., -0., -0., 0., 0., 0.,\n",
" 0., -0., -0., -0., -0., -0., -0., 0., -0.],\n",
" [ 0., 0., 0., -0., -0., 0., 0., -0., 0., -1., 0., -0., 0.,\n",
" -0., -0., 0., 0., -1., 1., 1., 0., 0., 1., 0., -0., 0.,\n",
" -0., 0., 0., -0., -1., 0., -0., 1., -0., -0., -0., 0., 1.,\n",
" -1., 0., 0., -0., 0., -0., -0., 0., -0., 0., 0., 0., 1.,\n",
" 0., -0., 0., 0., 0., -0., 0., -1., -1., -0., 0., -0., 0.,\n",
" 0., -0., 0., -0., -0., -0., -0., 0., 0.],\n",
" [-0., 1., 0., -0., 0., -0., -0., 0., 0., -0., -0., 0., 0.,\n",
" -0., -0., 0., -0., -0., -1., 0., 0., -0., 0., -0., 0., 0.,\n",
" 1., -0., -0., 0., -0., -0., 0., 0., 0., -0., 0., 1., -0.,\n",
" 0., -0., -0., -0., 0., -0., -0., -0., -0., 1., -0., -0., -0.,\n",
" -0., 0., -0., -0., 0., -0., 0., -0., 0., 0., -0., 0., -0.,\n",
" -0., 1., -0., 0., 1., -1., 0., 0., 0.],\n",
" [-0., 0., -0., -0., 0., -0., 0., 0., 0., 0., 0., -0., 0.,\n",
" -0., -0., 0., 0., -1., 1., -0., -0., 0., -0., 0., 0., 0.,\n",
" 0., -0., 0., 0., -0., 0., 0., -0., -0., -0., -0., 0., 1.,\n",
" -1., -0., -0., 0., 0., 0., -0., -0., 0., 0., -0., -0., 1.,\n",
" -1., 0., -1., -0., 0., 0., 0., -0., 0., 0., -0., 0., -0.,\n",
" -0., 0., -0., 0., -0., -0., -0., -0., 0.],\n",
" [ 0., 0., 0., -0., -0., -0., -0., 0., 0., 0., 0., -0., 0.,\n",
" -0., 1., 0., -0., 0., 1., 0., -0., -0., -0., -0., 0., 0.,\n",
" 0., 0., -0., 0., 0., -1., 0., -0., -0., -0., -0., -0., -0.,\n",
" -0., -0., -0., 0., 0., 0., -0., -0., -0., -0., -0., -0., 1.,\n",
" 0., 0., -1., -0., 0., -0., 0., 0., 0., 0., 0., -0., -1.,\n",
" -0., 0., 1., 0., -0., -0., -0., -0., 0.],\n",
" [-0., 0., 0., -0., 0., -0., -0., 0., 0., -0., 0., -0., 1.,\n",
" 0., 0., -0., -0., -0., 0., 0., 0., -1., 0., -1., -0., 0.,\n",
" 0., -0., 0., 1., -0., -0., -0., 0., -0., -0., -0., 0., -1.,\n",
" -0., 0., 0., -0., -0., 0., 0., -0., -0., 0., -0., -0., 0.,\n",
" -0., 1., -0., -0., -0., -1., -0., -0., -0., -0., -0., 0., 0.,\n",
" 0., 0., -1., -0., 0., -0., -0., -0., -0.],\n",
" [ 0., 0., -0., -0., 0., 0., -0., -0., -0., -0., -0., -0., -0.,\n",
" -0., 0., 0., -0., -0., 0., 0., 0., -1., 0., 0., 1., -0.,\n",
" 0., 0., -1., -0., -0., -0., -0., 0., -0., -0., -0., -0., -1.,\n",
" -0., -1., 0., -0., 0., 0., -0., -0., -0., 0., -0., -0., 0.,\n",
" -0., -0., -0., 0., -0., 0., 0., -0., -0., 1., -0., 0., -0.,\n",
" -0., 0., -1., 1., 0., -0., -0., -0., -0.],\n",
" [ 0., -0., -0., -0., -0., -0., -0., 0., -0., -1., -0., -0., -0.,\n",
" 0., -0., -1., 0., -0., -0., 0., 1., 0., -0., 0., -0., 0.,\n",
" 0., 0., -0., -0., 0., -0., -0., 0., -0., 0., 0., 0., 0.,\n",
" 1., -0., 1., -1., 0., -0., 1., 0., -0., -0., 0., -0., 0.,\n",
" -0., -0., -0., 0., -0., 0., 0., -1., -0., -0., -0., -0., -0.,\n",
" -1., -1., 0., 0., 0., -0., 0., 0., 1.],\n",
" [ 0., 0., -0., 0., 0., -0., -0., 0., 0., -0., -1., 0., -1.,\n",
" -0., -0., -0., -0., -0., 0., 0., -0., 1., -0., 0., 0., 0.,\n",
" -0., -0., 0., 0., 0., 0., -0., 0., -0., -0., 0., -0., -0.,\n",
" -0., 0., 0., -0., -0., -0., 0., 0., 0., 0., -0., 0., -1.,\n",
" -0., -0., -0., -0., 0., -0., -0., -0., -0., 0., 0., 0., 0.,\n",
" 1., -0., 0., 0., -0., 0., -0., -0., -0.],\n",
" [ 0., 0., -0., -0., 0., 0., -0., 0., -0., 0., 0., 0., 0.,\n",
" -0., 0., 0., -0., -0., 0., -1., 1., -0., 0., -0., -0., -0.,\n",
" -0., 0., 0., 0., -0., 0., -0., -1., -0., -0., -0., -0., 0.,\n",
" 1., 0., 1., -1., 0., -0., -0., 0., -0., 0., 0., -0., -1.,\n",
" -0., 0., -0., -0., 0., -0., 0., -0., -0., -0., 0., -0., 0.,\n",
" 0., 0., -0., -0., 0., 0., -0., 0., 1.],\n",
" [ 0., 0., 0., -0., -0., -0., 0., -0., -0., 0., -0., 0., -0.,\n",
" -1., 0., 0., -0., 0., -0., -0., -0., 0., 0., -0., -0., -0.,\n",
" -1., 0., -0., -0., 0., 0., -0., -0., 0., -1., 0., -1., 0.,\n",
" 0., -0., -0., 0., 0., -0., -0., 0., -0., 0., -0., -0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., -0., -0., -0., -0., -0.,\n",
" -1., -1., 0., -0., -1., 1., 0., -0., 0.],\n",
" [ 0., -0., -0., -0., -0., -0., -0., -0., -0., 0., 0., 0., 0.,\n",
" -0., 0., 0., -0., 1., 0., 0., -0., -0., -0., 0., -0., -0.,\n",
" -0., 0., -0., -0., 0., 0., -0., 0., -0., -0., -0., -0., 0.,\n",
" 1., -0., -0., 0., 0., 0., -0., 0., 0., 0., 0., -0., -1.,\n",
" 1., 0., 1., 0., -0., 1., 0., 0., 0., -0., -1., 0., 0.,\n",
" -0., -0., 0., 0., 0., 0., 0., 0., 1.],\n",
" [ 0., 0., 1., -0., 0., 0., 0., -0., -0., 0., 0., -0., 0.,\n",
" -0., 0., 0., -0., -0., 0., -0., -0., 0., 0., -1., -0., -0.,\n",
" -0., 0., -0., -0., -0., -0., -0., -0., -0., -0., -0., -0., 0.,\n",
" 0., -0., -0., 0., 0., 0., -0., 0., -0., -0., 0., 0., 0.,\n",
" -0., 0., -0., 0., 0., -0., 0., 0., -0., -0., 0., 0., -0.,\n",
" -0., -0., -1., -0., 1., 0., -0., 0., 1.],\n",
" [ 0., 0., 0., 0., -0., -0., -0., -0., -0., -0., 0., -0., -1.,\n",
" 0., 0., 0., 0., 0., 0., -0., 0., 1., -0., 1., 0., -0.,\n",
" -0., -0., -0., -1., 0., -0., -0., -0., 0., -0., -0., -0., -0.,\n",
" 0., 0., 0., 0., -0., 0., 0., 0., -0., 0., 0., 0., -0.,\n",
" 0., 0., 0., 0., -0., -0., -0., -0., -0., 0., -0., 0., -0.,\n",
" 1., -0., 1., -0., 0., 0., -0., 0., -1.],\n",
" [ 0., 0., -1., -1., -0., -0., -0., 0., -0., -0., -0., -0., 0.,\n",
" -0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., -1., -0.,\n",
" -0., 1., -0., 0., 0., -0., -0., 0., 0., -0., -0., -0., -0.,\n",
" -0., -0., 0., -0., 0., 0., -0., -0., -0., 0., 0., -1., -0.,\n",
" 0., -0., 0., -0., 0., 0., 1., -0., -0., -1., -0., 0., 0.,\n",
" -0., 0., 1., 0., 0., 0., -0., -0., -1.],\n",
" [-0., 0., -0., -0., -0., -0., -0., -0., 0., -0., 0., 0., 0.,\n",
" 0., -0., -0., -0., 1., 0., -0., 0., 0., 0., 0., -0., -0.,\n",
" 1., 0., -0., -0., -0., 0., 0., -0., 0., -0., 0., -0., -1.,\n",
" -0., -0., 0., -0., -0., -0., 0., 0., 0., 0., 0., 0., -0.,\n",
" -0., -0., 0., -0., -1., 0., 0., -0., 1., -0., -0., -0., 0.,\n",
" -0., 0., 0., -0., -0., 0., 1., 0., 0.],\n",
" [-0., -0., 0., 0., -0., 0., 0., 0., -0., -0., -0., 1., -0.,\n",
" -0., -1., 0., -1., -0., -1., -0., -0., -0., 0., 0., 0., -0.,\n",
" -0., 0., -0., 0., -0., 1., 0., 0., -1., 0., 1., -1., -0.,\n",
" -0., -0., 0., 0., -0., -0., -0., -0., 0., 0., 0., 0., -1.,\n",
" -0., 0., 1., 0., 0., -0., 0., -0., -0., -0., 0., 0., -0.,\n",
" 0., 0., -0., -0., -1., -0., -0., 0., -0.],\n",
" [ 0., -0., -0., 0., 0., -0., 0., -0., -0., 1., 0., -0., 0.,\n",
" -0., 0., 0., 0., 1., -1., 0., 0., -0., -1., 0., 0., 0.,\n",
" -0., -0., -0., 0., 1., -0., -1., 0., -1., 0., -0., 0., -1.,\n",
" -0., -0., -1., -0., 0., 0., 0., -0., -1., -0., -0., -0., 0.,\n",
" 0., 0., -0., -0., 0., -0., 0., 1., 1., 0., 0., -0., -0.,\n",
" 0., -0., -0., 0., 0., -0., -0., -0., 0.],\n",
" [-0., -1., 0., -0., 0., -0., -0., 0., 0., 0., -0., 0., -0.,\n",
" -0., 0., -0., -0., -0., 1., -0., 0., -0., -0., -0., 0., 0.,\n",
" 0., -0., 0., 0., 0., 0., 0., 0., 1., -0., 0., 0., 0.,\n",
" -0., 0., -0., -0., 0., -0., 0., -0., -0., -1., -0., -0., -0.,\n",
" -0., -0., 0., -0., 0., 0., 0., 0., -0., -0., -0., 0., 0.,\n",
" -0., 0., -0., 0., 0., -0., 1., -0., -0.],\n",
" [ 0., -0., -0., -0., 0., -0., 0., 0., 0., -0., 0., -0., 0.,\n",
" 0., 0., 0., 0., -0., -1., -0., -0., -0., 0., 0., -0., 0.,\n",
" -0., 0., 0., 0., -0., -0., 0., -0., -1., -0., -0., 0., -1.,\n",
" -0., 0., 0., 0., 0., -0., -0., 0., 0., 1., -0., 0., 0.,\n",
" -0., -0., -0., -0., 0., 0., 0., -0., -0., -0., -0., 1., 0.,\n",
" -0., -0., -0., -0., 0., 0., -0., 0., 0.],\n",
" [ 0., -0., 0., -0., -0., -0., 0., 0., 0., -0., 0., -0., 0.,\n",
" 0., -1., 0., -1., -0., -1., 0., -0., -0., 0., -0., 0., 0.,\n",
" -0., 0., 0., 0., -0., 1., 0., 0., -1., 0., -0., -1., 0.,\n",
" -0., 0., 0., 0., 0., 0., -0., -0., 0., 0., -0., -0., -1.,\n",
" -0., -0., 1., -0., 0., 0., 0., -0., -0., 0., 0., 0., 1.,\n",
" -0., 0., 0., 0., -1., -0., -0., -0., 0.],\n",
" [-0., -0., -0., 0., 0., -1., 0., 0., 0., 0., 0., -0., 0.,\n",
" 1., 0., -0., -0., 0., -0., 0., 0., -0., -0., -0., -0., 0.,\n",
" 0., -0., -0., 0., 0., -0., -0., 0., -0., -0., -0., -0., 1.,\n",
" -0., -0., -0., -0., -0., -0., 0., 0., -0., 0., -0., -0., 0.,\n",
" -0., -1., -0., -0., -0., 1., -0., 0., 0., 0., 0., 0., -0.,\n",
" 0., 0., -0., -0., -0., -0., -1., -0., -0.],\n",
" [ 1., -0., -0., -0., 0., 0., -0., 0., 0., 0., -0., -0., 0.,\n",
" -0., -0., 0., -0., 0., -0., 0., 0., -0., -0., 0., 0., -0.,\n",
" 0., 0., 1., 0., 0., 0., -0., 0., -0., -0., -0., -0., 1.,\n",
" 0., 1., -0., -0., 1., 0., 0., -0., -0., 0., -0., -0., -0.,\n",
" -0., 0., 0., 0., -0., -0., 0., 0., 0., 0., -0., 0., 0.,\n",
" -0., 0., -0., 0., -0., 0., -1., -0., -0.],\n",
" [-0., -0., -0., -0., 0., 0., 0., 1., -0., 1., -0., 0., 0.,\n",
" 0., -0., -0., -0., 0., 0., -0., 0., -0., 0., -0., 0., 1.,\n",
" -0., -0., 0., 0., -0., 0., 0., -0., 0., 0., -0., -0., -0.,\n",
" -1., 0., -1., -0., -0., 0., 0., -0., 0., -0., -0., -0., -0.,\n",
" 0., -0., 0., 0., 0., 0., 0., -0., 0., 0., -0., -0., -0.,\n",
" -0., 1., -0., -0., -0., 0., -0., -0., 0.],\n",
" [ 0., -0., -0., -0., 0., -0., -1., 0., 0., 0., -0., -0., -0.,\n",
" 0., 0., -0., 0., 0., -0., 1., -0., -1., 0., 0., -0., 0.,\n",
" 0., -1., 0., -0., -0., -0., -0., -0., 0., -0., -0., 0., 0.,\n",
" 0., -0., 0., -0., -0., 0., 0., 0., 0., -0., -0., -0., 1.,\n",
" 0., 0., 0., -0., -0., -0., -0., -0., 0., 1., 0., -0., -0.,\n",
" 0., 0., -0., 0., 0., -0., 0., -1., -0.],\n",
" [ 0., -0., 0., -0., 0., 0., -1., 1., -0., -0., 0., -0., 0.,\n",
" -0., -0., 0., 0., 0., -0., 1., 0., 0., -0., 0., 0., -0.,\n",
" 0., 0., 0., -0., 0., -0., 0., 1., 0., -0., 0., 0., -0.,\n",
" -1., 0., -1., -0., 0., 0., -0., 0., 0., -0., 0., 0., 1.,\n",
" 0., -0., 0., -0., -0., -0., 0., -0., 0., -0., 0., -0., -0.,\n",
" 0., -0., 0., 0., -0., -0., 0., 0., 0.],\n",
" [ 1., -0., 0., 0., -0., -0., 1., -0., -0., -0., -0., -0., 0.,\n",
" -0., -0., 0., -0., -0., 0., 0., 0., -0., 0., -0., 0., -0.,\n",
" 1., 1., -0., 0., 0., 0., -1., 0., -0., -0., -0., 1., 0.,\n",
" 0., 0., 0., 0., -0., 0., 0., 1., 0., -0., 0., 0., -0.,\n",
" -0., -0., -0., 0., 0., 0., 0., 0., -0., 0., -0., 0., 0.,\n",
" -0., 1., -0., -0., 1., -1., -0., -0., 0.],\n",
" [ 0., -0., -0., -0., -1., 0., -1., -0., -0., -0., 0., -0., 0.,\n",
" -0., -0., 0., 0., -1., -0., -0., -0., 0., 0., 0., 0., -0.,\n",
" 0., 0., -1., 0., 1., -0., -0., -0., 0., -0., 0., 0., -0.,\n",
" -1., 0., 0., 0., -0., -0., 0., 0., 0., -0., 0., -0., 1.,\n",
" -1., -0., -1., 1., -0., 0., -0., 1., -0., -0., -0., -0., 0.,\n",
" -0., 0., -0., 0., -0., -0., 0., 0., 0.],\n",
" [ 0., -0., 0., -0., 0., -0., 0., -0., -0., -0., 0., 0., 0.,\n",
" -0., -0., 0., 0., 0., -0., -0., -0., -0., -0., -0., 0., -0.,\n",
" 0., 0., 0., 0., -0., 0., -0., -0., 0., -0., 0., 0., -0.,\n",
" -0., 0., 0., 0., 0., -0., -0., 0., 0., 0., 1., 1., -0.,\n",
" 0., 0., 0., 1., -0., -0., 0., 0., 0., -0., 0., 0., 0.,\n",
" -0., 0., 1., -1., -1., -0., -0., 0., 0.],\n",
" [ 0., -0., 0., 0., -0., 0., -0., -1., -1., 0., 0., 0., 1.,\n",
" -0., -0., 1., -0., -0., -0., -0., 0., -1., 0., -1., -0., -1.,\n",
" 0., 0., -0., 1., 0., 0., -0., 0., 0., -0., 0., 0., 0.,\n",
" -0., -0., -0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" -0., -0., -0., 0., -0., 0., -0., 0., -0., -0., -0., 0., 0.,\n",
" 0., 0., -1., -0., -0., -0., 0., 0., -0.],\n",
" [-0., -0., -0., -0., -0., 0., 0., 0., 0., 0., -0., 0., -0.,\n",
" -0., -0., -0., -0., -0., -0., -0., 0., -1., -0., 0., 1., 0.,\n",
" 0., -1., 0., -0., 0., 0., -0., 0., 0., -0., 0., 0., 0.,\n",
" -0., 0., -0., -0., -0., -0., 0., 0., 0., -0., 0., -0., -0.,\n",
" -0., 0., -0., -1., 0., 0., 0., 0., 0., 1., -0., -0., 0.,\n",
" -0., 0., -1., 1., -0., -0., 0., 0., -0.]], dtype=np.float32), np.array([[-0., -0., -0., -0., -0., 0., 0., 0., 1., -1., 0., 0., 0.,\n",
" -0., 0., 1., -0., -0., 0., 0., 0., 0., -1., -0., 0., -1.,\n",
" 0., -0., -0., -0., 0., -0., 0., 0., -0., -0., -0., -0., -0.,\n",
" -0., -0., 0., -0., 0., 0., 0., -0., -0., 0., -0., -0., 0.,\n",
" 0., 0., 0., -0., -1., -0., -0., -0., 1., -0., 0., -0., -0.,\n",
" -0., -0., -0., 0., -0., -0., 0., -0., -0.],\n",
" [-0., -0., 0., 0., 1., 0., -0., -0., -0., 0., -0., 0., 0.,\n",
" -0., 0., -0., -0., 1., 0., 0., -0., 0., 0., -0., -0., 0.,\n",
" -0., -0., -0., -0., -1., 0., -0., -1., 0., 0., 0., 0., 0.,\n",
" 1., 0., 1., -0., -0., 0., -1., 0., -0., -0., -0., 0., -0.,\n",
" -1., 0., -0., -0., -1., -0., -0., 1., -0., 0., -0., -0., 0.,\n",
" 0., 0., -0., 0., 0., 0., 0., -0., 0.],\n",
" [ 0., 0., -0., 0., -0., -0., -0., 0., 0., 1., 0., -0., -0.,\n",
" 0., 0., -0., 0., -0., 0., 0., -0., -0., 1., 0., 0., -0.,\n",
" 1., 0., 0., -0., 0., -0., 0., 0., -0., -0., -0., -0., 0.,\n",
" -0., -0., -0., -0., 0., -0., -1., -0., 0., 0., -0., -0., 0.,\n",
" 0., -0., 0., 0., 0., 0., -0., -0., -1., 0., 0., 0., -0.,\n",
" -0., -1., 0., -0., -0., -1., 0., -0., -0.],\n",
" [ 0., 0., 0., -0., -0., 0., -0., 0., 0., 0., -0., 1., -1.,\n",
" 0., -0., -0., -0., 0., 0., -0., 0., -1., 0., -0., -1., 0.,\n",
" 0., -0., -0., -1., -0., -0., -0., 0., 0., 0., -0., 0., -0.,\n",
" 0., -0., 0., -0., -0., -1., -0., -0., -0., -0., 0., 0., -0.,\n",
" 0., -0., -0., -0., -0., -0., 0., 0., -0., 1., -0., -0., -0.,\n",
" 0., -0., -0., 0., 0., 0., -0., 0., 0.],\n",
" [-0., -0., -0., 0., 0., -0., 0., -0., -0., 0., 1., 1., 0.,\n",
" -0., 0., 0., -0., -0., -0., 1., -0., 0., -0., 0., 0., 0.,\n",
" -0., 0., 0., 0., 0., 1., 0., -1., -0., -0., 0., -0., 0.,\n",
" -0., 0., -0., 0., 0., 0., 0., 0., 0., 0., -0., -0., 1.,\n",
" -1., 0., 1., 0., 0., 0., -0., -0., 0., -0., 0., 0., 1.,\n",
" 0., 0., 0., -0., -0., -0., 0., -0., -0.],\n",
" [-0., 0., -0., -0., -0., 0., -0., 0., 0., -0., 1., -0., -0.,\n",
" -0., -0., 0., 0., 0., 0., -0., -0., -0., 0., -0., -0., 0.,\n",
" -0., -0., -0., -0., 0., -0., 0., 0., 0., -0., -1., -0., -0.,\n",
" 0., 0., 0., -0., -0., 1., 0., -0., -0., 0., 0., -0., -0.,\n",
" 0., 0., -0., -0., -0., -0., -0., -0., 0., 0., 0., -0., -0.,\n",
" 0., 0., -0., 0., -0., 0., -0., 1., 0.],\n",
" [ 0., 0., -0., 0., 0., 0., -0., 1., 0., 1., -0., 0., -0.,\n",
" 0., 0., -1., -0., 0., 0., 0., 0., -0., 1., -0., -0., 1.,\n",
" 0., 0., -0., -0., -0., -0., 0., -0., -0., -0., -0., -0., -0.,\n",
" -0., -0., 1., -1., -0., -0., -0., -0., -1., 0., -0., 0., -0.,\n",
" 0., -0., -0., -0., -0., -0., 0., 0., 0., 0., 0., -0., -0.,\n",
" 0., -0., -0., 0., 0., -0., -0., -0., -0.],\n",
" [-0., -0., 0., -0., -1., 0., 0., -0., -0., -0., 0., 0., 0.,\n",
" -0., -0., 0., 0., 0., -0., -0., -1., 0., -0., -0., 0., -0.,\n",
" -0., -0., -0., 0., 1., 0., -0., 1., -0., -0., 0., -0., 0.,\n",
" 0., 0., 0., 0., -0., 0., 1., 0., -1., 0., 0., -0., 0.,\n",
" -0., 0., 0., -0., -0., -0., 0., -1., 0., -0., 0., -0., 0.,\n",
" 0., 0., -0., 0., -0., 0., 0., 0., 0.],\n",
" [ 0., 0., -0., 0., 0., 0., -1., 0., 0., 0., 0., -0., -0.,\n",
" 0., 0., -0., -0., -0., 0., 1., -1., -0., -1., -0., 0., 0.,\n",
" 0., 0., 0., -0., -0., -0., 1., -0., 0., -0., -0., -0., -0.,\n",
" -0., -0., 0., -0., 0., -0., 1., -1., 0., 0., -0., 0., -0.,\n",
" 0., -0., 0., -0., 0., -0., 0., -1., -0., 0., 0., -0., -0.,\n",
" -0., -0., 0., 0., -0., -0., -0., -1., -0.],\n",
" [-1., -1., 0., 0., -0., -1., 0., -0., 0., -0., 0., 0., 0.,\n",
" -1., 0., 0., 0., -0., -0., -0., 0., 0., -0., 0., -0., -0.,\n",
" -1., 0., 0., -0., 0., 0., 0., -0., -0., -0., -0., -0., 0.,\n",
" 0., 0., -0., 0., 1., 0., 0., -0., 0., 0., -0., -0., -0.,\n",
" -0., 0., 0., -0., 1., 0., 0., 0., 0., -0.,
gitextract_avi_5b8y/ ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md └── mathematical_results.ipynb
Condensed preview — 5 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,367K chars).
[
{
"path": ".gitignore",
"chars": 263,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# Distribution / packaging\n.Python\nbuild/\ndev"
},
{
"path": "CONTRIBUTING.md",
"chars": 970,
"preview": "# How to Contribute\n\n## Contributor License Agreement\n\nContributions to this project must be accompanied by a Contributo"
},
{
"path": "LICENSE",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 2904,
"preview": "# Results of AlphaEvolve\n\nThis repository accompanies the technical report\n\n> Novikov et al.\n[AlphaEvolve: A coding agen"
},
{
"path": "mathematical_results.ipynb",
"chars": 1311034,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {\n \"id\": \"bC4Vo85hPHfn\"\n },\n \"sou"
}
]
About this extraction
This page contains the full source code of the google-deepmind/alphaevolve_results GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5 files (1.3 MB), approximately 648.8k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.