dense-evolution 8.3.0__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dashboard_core/__init__.py +115 -0
- dashboard_core/_gate_tables.py +30 -0
- dashboard_core/band_structure.py +71 -0
- dashboard_core/circuit_builder_component.py +232 -0
- dashboard_core/circuit_diagram.py +216 -0
- dashboard_core/crypto_protocols.py +77 -0
- dashboard_core/engine.py +326 -0
- dashboard_core/graphical_builder.py +114 -0
- dashboard_core/hamiltonians.py +593 -0
- dashboard_core/mass_decomposition_tool.py +47 -0
- dashboard_core/mitigation.py +343 -0
- dashboard_core/native_hf_diagnostics.py +62 -0
- dashboard_core/noise_tools.py +125 -0
- dashboard_core/qasm_library.py +233 -0
- dashboard_core/qmmm.py +16 -0
- dashboard_core/rag_tool.py +45 -0
- dashboard_core/state_visuals.py +288 -0
- dashboard_core/system_limits.py +60 -0
- dashboard_core/vector_healing.py +102 -0
- dashboard_core/visuals.py +158 -0
- dashboard_core/vqe.py +533 -0
- dashboard_core/wormhole.py +580 -0
- dense_evolution/__init__.py +114 -0
- dense_evolution/autodiff.py +10 -0
- dense_evolution/backends/__init__.py +5 -0
- dense_evolution/backends/chunk/__init__.py +37 -0
- dense_evolution/backends/chunk/_engine_imports.py +57 -0
- dense_evolution/backends/chunk/circuit_chunker.py +55 -0
- dense_evolution/backends/chunk/core.py +432 -0
- dense_evolution/backends/chunk/disk_overflow.py +232 -0
- dense_evolution/backends/chunk/geometry.py +95 -0
- dense_evolution/backends/chunk/guard.py +190 -0
- dense_evolution/backends/chunk/kernels.py +531 -0
- dense_evolution/backends/mps.py +1569 -0
- dense_evolution/backends/statevector.py +616 -0
- dense_evolution/chunk.py +25 -0
- dense_evolution/circuits/__init__.py +20 -0
- dense_evolution/circuits/compiler.py +488 -0
- dense_evolution/circuits/diagram.py +94 -0
- dense_evolution/circuits/gates.py +91 -0
- dense_evolution/circuits/parser.py +632 -0
- dense_evolution/circuits/qft.py +66 -0
- dense_evolution/circuits/random_circuit.py +85 -0
- dense_evolution/circuits/registry.py +74 -0
- dense_evolution/circuits/topology.py +79 -0
- dense_evolution/circuits/trotter.py +265 -0
- dense_evolution/circuits/uccsd.py +275 -0
- dense_evolution/cli.py +199 -0
- dense_evolution/compiler.py +9 -0
- dense_evolution/config.py +49 -0
- dense_evolution/drawing.py +10 -0
- dense_evolution/entropy.py +9 -0
- dense_evolution/fermions.py +9 -0
- dense_evolution/gates.py +9 -0
- dense_evolution/harrison_tb.py +16 -0
- dense_evolution/healing.py +18 -0
- dense_evolution/interop/__init__.py +18 -0
- dense_evolution/interop/qiskit_pennylane.py +406 -0
- dense_evolution/measurement.py +10 -0
- dense_evolution/mitigation/__init__.py +54 -0
- dense_evolution/mitigation/healing.py +215 -0
- dense_evolution/mitigation/kl_divergence.py +93 -0
- dense_evolution/mitigation/magic_entropy.py +163 -0
- dense_evolution/mitigation/magic_entropy_shadows.py +262 -0
- dense_evolution/mitigation/renyi.py +168 -0
- dense_evolution/mitigation/stabilizer_renyi_entropy.py +103 -0
- dense_evolution/mitigation/zne.py +990 -0
- dense_evolution/mps.py +9 -0
- dense_evolution/native_hf/__init__.py +26 -0
- dense_evolution/native_hf/_libcint/LICENSE-libcint +10 -0
- dense_evolution/native_hf/_libcint/libdecint.dll +0 -0
- dense_evolution/native_hf/assembly.py +304 -0
- dense_evolution/native_hf/basis.py +117 -0
- dense_evolution/native_hf/boys.py +35 -0
- dense_evolution/native_hf/bridge.py +112 -0
- dense_evolution/native_hf/cartesian.py +64 -0
- dense_evolution/native_hf/coulomb.py +196 -0
- dense_evolution/native_hf/differentiable.py +53 -0
- dense_evolution/native_hf/gaussians.py +79 -0
- dense_evolution/native_hf/kinetic.py +52 -0
- dense_evolution/native_hf/libcint_bridge.py +167 -0
- dense_evolution/native_hf/overlap.py +91 -0
- dense_evolution/native_hf/scf.py +404 -0
- dense_evolution/noise/__init__.py +79 -0
- dense_evolution/noise/coherent_attack.py +264 -0
- dense_evolution/noise/cosmic_ray.py +61 -0
- dense_evolution/noise/density_matrix_channels.py +78 -0
- dense_evolution/noise/differentiable.py +66 -0
- dense_evolution/noise/kraus/__init__.py +6 -0
- dense_evolution/noise/kraus/amplitude_damping.py +47 -0
- dense_evolution/noise/kraus/bitflip.py +22 -0
- dense_evolution/noise/kraus/combined.py +16 -0
- dense_evolution/noise/kraus/depolarizing.py +47 -0
- dense_evolution/noise/kraus/ideal.py +10 -0
- dense_evolution/noise/kraus/phaseflip.py +21 -0
- dense_evolution/noise/kraus_channels.py +285 -0
- dense_evolution/noise/oscillating.py +32 -0
- dense_evolution/noise/pink.py +80 -0
- dense_evolution/observables.py +11 -0
- dense_evolution/parser.py +9 -0
- dense_evolution/physics/__init__.py +27 -0
- dense_evolution/physics/entropy.py +161 -0
- dense_evolution/physics/fermions.py +322 -0
- dense_evolution/physics/observables.py +523 -0
- dense_evolution/physics/qec.py +1113 -0
- dense_evolution/physics/spectral.py +143 -0
- dense_evolution/physics/states.py +43 -0
- dense_evolution/protocols/__init__.py +27 -0
- dense_evolution/protocols/bb84.py +133 -0
- dense_evolution/protocols/di_qkd_ghz.py +199 -0
- dense_evolution/protocols/dicka_protocol2.py +124 -0
- dense_evolution/qec.py +20 -0
- dense_evolution/qft.py +9 -0
- dense_evolution/qmmm/__init__.py +13 -0
- dense_evolution/qmmm/ase_bridge.py +97 -0
- dense_evolution/qmmm/forces.py +388 -0
- dense_evolution/qmmm/propagation.py +80 -0
- dense_evolution/qmmm/region.py +137 -0
- dense_evolution/random_circuit.py +15 -0
- dense_evolution/registry.py +9 -0
- dense_evolution/simulator.py +10 -0
- dense_evolution/solvers/__init__.py +19 -0
- dense_evolution/solvers/autodiff.py +169 -0
- dense_evolution/solvers/harrison_tb.py +189 -0
- dense_evolution/solvers/vhd_tb.py +187 -0
- dense_evolution/states.py +9 -0
- dense_evolution/topology.py +9 -0
- dense_evolution/trotter.py +9 -0
- dense_evolution/utils/__init__.py +13 -0
- dense_evolution/utils/drawing.py +101 -0
- dense_evolution/utils/mass_decomposition.py +246 -0
- dense_evolution/utils/measurement.py +94 -0
- dense_evolution/vhd_tb.py +16 -0
- dense_evolution-8.3.0.dist-info/METADATA +366 -0
- dense_evolution-8.3.0.dist-info/RECORD +165 -0
- dense_evolution-8.3.0.dist-info/WHEEL +5 -0
- dense_evolution-8.3.0.dist-info/entry_points.txt +2 -0
- dense_evolution-8.3.0.dist-info/licenses/license.md +58 -0
- dense_evolution-8.3.0.dist-info/top_level.txt +5 -0
- ia_utils/__init__.py +0 -0
- ia_utils/adversarial_vector_attack.py +196 -0
- ia_utils/rag.py +288 -0
- ia_utils/vector_healing.py +399 -0
- local_site/__init__.py +0 -0
- local_site/app/__init__.py +0 -0
- local_site/app/server.py +1009 -0
- mcp_server/__init__.py +0 -0
- mcp_server/client.py +324 -0
- mcp_server/config.py +32 -0
- mcp_server/models.py +347 -0
- mcp_server/molecules.py +71 -0
- mcp_server/server.py +119 -0
- mcp_server/tools/__init__.py +0 -0
- mcp_server/tools/chemistry_tools.py +225 -0
- mcp_server/tools/circuit_tools.py +83 -0
- mcp_server/tools/crypto_tools.py +66 -0
- mcp_server/tools/mitigation_tools.py +81 -0
- mcp_server/tools/noise_tools.py +60 -0
- mcp_server/tools/retrieval_tools.py +44 -0
- mcp_server/tools/system_tools.py +149 -0
- mcp_server/tools/wormhole_tools.py +142 -0
- mcp_server/utils/__init__.py +0 -0
- mcp_server/utils/cache.py +55 -0
- mcp_server/utils/images.py +67 -0
- mcp_server/utils/truncation.py +38 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Backward-compatibility shim -- the real implementation moved to
|
|
2
|
+
dense_evolution.solvers.vhd_tb as part of the Phase 2 subpackage split
|
|
3
|
+
(see prog.txt). Kept so `from dense_evolution.vhd_tb import
|
|
4
|
+
sp3s_star_hamiltonian` (used by external consumers, e.g.
|
|
5
|
+
Dense-Evolution-Discovery) keeps working unchanged. Import from
|
|
6
|
+
dense_evolution.solvers.vhd_tb directly in new code.
|
|
7
|
+
"""
|
|
8
|
+
from dense_evolution.solvers.vhd_tb import (
|
|
9
|
+
Material, MATERIALS, sp3s_star_hamiltonian, direct_gap_at_gamma,
|
|
10
|
+
band_extrema_along_path,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"Material", "MATERIALS", "sp3s_star_hamiltonian", "direct_gap_at_gamma",
|
|
15
|
+
"band_extrema_along_path",
|
|
16
|
+
]
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dense-evolution
|
|
3
|
+
Version: 8.3.0
|
|
4
|
+
Summary: High-performance quantum simulation toolkit -- Statevector/MPS engines with JIT compilation, noise modeling, VQE, QEC, quantum chemistry, and agent-native tooling
|
|
5
|
+
Author-email: Salvatore Pennacchio <jtatopenn@libero.it>
|
|
6
|
+
License: Business Source License 1.1
|
|
7
|
+
Project-URL: Homepage, https://github.com/tatopenn-cell/Dense-Evolution
|
|
8
|
+
Project-URL: Documentation, https://github.com/tatopenn-cell/Dense-Evolution/blob/main/README.md
|
|
9
|
+
Project-URL: Repository, https://github.com/tatopenn-cell/Dense-Evolution
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/tatopenn-cell/Dense-Evolution/issues
|
|
11
|
+
Keywords: quantum-computing,quantum-simulation,statevector,mps,jax,vqe,qec,quantum-chemistry,mcp,openqasm,nisq-noise,hpc,cuda-acceleration,dashboard
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: Other/Proprietary License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.9
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: license.md
|
|
26
|
+
Requires-Dist: numpy>=1.22.0
|
|
27
|
+
Requires-Dist: matplotlib>=3.5.0
|
|
28
|
+
Requires-Dist: psutil>=5.9.0
|
|
29
|
+
Requires-Dist: scipy>=1.9.0
|
|
30
|
+
Requires-Dist: jax>=0.4.0
|
|
31
|
+
Requires-Dist: jaxlib>=0.4.0
|
|
32
|
+
Provides-Extra: jax
|
|
33
|
+
Requires-Dist: jax>=0.4.0; extra == "jax"
|
|
34
|
+
Requires-Dist: jaxlib>=0.4.0; extra == "jax"
|
|
35
|
+
Provides-Extra: gpu
|
|
36
|
+
Requires-Dist: jax[cuda12]>=0.4.0; extra == "gpu"
|
|
37
|
+
Provides-Extra: dashboard
|
|
38
|
+
Requires-Dist: streamlit>=1.30.0; extra == "dashboard"
|
|
39
|
+
Requires-Dist: qiskit>=1.0.0; extra == "dashboard"
|
|
40
|
+
Requires-Dist: pylatexenc>=2.10; extra == "dashboard"
|
|
41
|
+
Requires-Dist: plotly>=5.0.0; extra == "dashboard"
|
|
42
|
+
Requires-Dist: rdkit>=2023.9.1; extra == "dashboard"
|
|
43
|
+
Requires-Dist: basis_set_exchange>=0.9; extra == "dashboard"
|
|
44
|
+
Provides-Extra: qiskit
|
|
45
|
+
Requires-Dist: qiskit>=1.0.0; extra == "qiskit"
|
|
46
|
+
Provides-Extra: pennylane
|
|
47
|
+
Requires-Dist: pennylane>=0.35.0; extra == "pennylane"
|
|
48
|
+
Requires-Dist: basis_set_exchange>=0.9; extra == "pennylane"
|
|
49
|
+
Provides-Extra: stim
|
|
50
|
+
Requires-Dist: stim>=1.13.0; extra == "stim"
|
|
51
|
+
Provides-Extra: pymatching
|
|
52
|
+
Requires-Dist: pymatching>=2.0.0; extra == "pymatching"
|
|
53
|
+
Provides-Extra: composer
|
|
54
|
+
Requires-Dist: fastapi>=0.110.0; extra == "composer"
|
|
55
|
+
Requires-Dist: uvicorn>=0.29.0; extra == "composer"
|
|
56
|
+
Requires-Dist: pydantic>=2.0.0; extra == "composer"
|
|
57
|
+
Requires-Dist: pennylane>=0.35.0; extra == "composer"
|
|
58
|
+
Requires-Dist: basis_set_exchange>=0.9; extra == "composer"
|
|
59
|
+
Provides-Extra: mcp
|
|
60
|
+
Requires-Dist: mcp>=2.0.0; extra == "mcp"
|
|
61
|
+
Requires-Dist: httpx>=0.27; extra == "mcp"
|
|
62
|
+
Requires-Dist: pydantic>=2.0.0; extra == "mcp"
|
|
63
|
+
Provides-Extra: qmmm
|
|
64
|
+
Requires-Dist: rdkit>=2023.9.1; extra == "qmmm"
|
|
65
|
+
Provides-Extra: ase
|
|
66
|
+
Requires-Dist: ase>=3.22.0; extra == "ase"
|
|
67
|
+
Provides-Extra: rag
|
|
68
|
+
Requires-Dist: scikit-learn>=1.0.0; extra == "rag"
|
|
69
|
+
Requires-Dist: sentence-transformers>=2.2.0; extra == "rag"
|
|
70
|
+
Provides-Extra: armor
|
|
71
|
+
Requires-Dist: dense-armor>=1.1.18; extra == "armor"
|
|
72
|
+
Provides-Extra: full
|
|
73
|
+
Requires-Dist: cupy-cuda12x>=12.0.0; extra == "full"
|
|
74
|
+
Requires-Dist: streamlit>=1.30.0; extra == "full"
|
|
75
|
+
Requires-Dist: qiskit>=1.0.0; extra == "full"
|
|
76
|
+
Requires-Dist: pylatexenc>=2.10; extra == "full"
|
|
77
|
+
Requires-Dist: plotly>=5.0.0; extra == "full"
|
|
78
|
+
Requires-Dist: pennylane>=0.35.0; extra == "full"
|
|
79
|
+
Requires-Dist: basis_set_exchange>=0.9; extra == "full"
|
|
80
|
+
Requires-Dist: fastapi>=0.110.0; extra == "full"
|
|
81
|
+
Requires-Dist: uvicorn>=0.29.0; extra == "full"
|
|
82
|
+
Requires-Dist: pydantic>=2.0.0; extra == "full"
|
|
83
|
+
Requires-Dist: mcp>=2.0.0; extra == "full"
|
|
84
|
+
Requires-Dist: httpx>=0.27; extra == "full"
|
|
85
|
+
Provides-Extra: dev
|
|
86
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
87
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
88
|
+
Requires-Dist: pytest-env>=1.0.0; extra == "dev"
|
|
89
|
+
Provides-Extra: docs
|
|
90
|
+
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
|
|
91
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
|
|
92
|
+
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "docs"
|
|
93
|
+
Requires-Dist: mkdocs-include-markdown-plugin>=6.0.0; extra == "docs"
|
|
94
|
+
Requires-Dist: ruff>=0.4.0; extra == "docs"
|
|
95
|
+
Requires-Dist: pennylane>=0.35.0; extra == "docs"
|
|
96
|
+
Requires-Dist: basis_set_exchange>=0.9; extra == "docs"
|
|
97
|
+
Requires-Dist: plotly>=5.0.0; extra == "docs"
|
|
98
|
+
Requires-Dist: rdkit>=2023.9.1; extra == "docs"
|
|
99
|
+
Dynamic: license-file
|
|
100
|
+
|
|
101
|
+
<p align="center">
|
|
102
|
+
<img src="docs/assets/banner.svg" alt="Dense Evolution — NISQ quantum simulation toolkit, JAX-native" width="900">
|
|
103
|
+
</p>
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
<!-- mcp-name: io.github.tatopenn-cell/dense-evolution -->
|
|
108
|
+
**A high-performance quantum simulation toolkit
|
|
109
|
+
Statevector/MPS engines with compilation, noise, VQE, QEC, chemistry, and agent-native tooling.**
|
|
110
|
+
|
|
111
|
+
<p align="center">
|
|
112
|
+
<img src="docs/assets/favicon.svg" width="32" alt=""><br>
|
|
113
|
+
<b>Download the Dense Evolution Dashboard (Streamlit)</b><br>
|
|
114
|
+
<a href="https://github.com/tatopenn-cell/Dense-Evolution/raw/main/tools/installer/install-dashboard.bat">Windows (.bat)</a> ·
|
|
115
|
+
<a href="https://github.com/tatopenn-cell/Dense-Evolution/raw/main/tools/installer/install-dashboard.sh">macOS / Linux (.sh)</a>
|
|
116
|
+
</p>
|
|
117
|
+
|
|
118
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/actions/workflows/ci.yml)
|
|
119
|
+
[](https://tatopenn-cell.github.io/Dense-Evolution/)
|
|
120
|
+
[](https://codecov.io/gh/tatopenn-cell/Dense-Evolution)
|
|
121
|
+
[](https://pypi.org/project/dense-evolution/)
|
|
122
|
+
[](https://pypi.org/project/dense-evolution/)
|
|
123
|
+
[](https://www.python.org/)
|
|
124
|
+
[](LICENSE.md)
|
|
125
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/actions)
|
|
126
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution-Discovery/actions/workflows/ci.yml)
|
|
127
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/releases)
|
|
128
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/commits/main)
|
|
129
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/issues)
|
|
130
|
+
[](https://github.com/tatopenn-cell/Dense-Evolution/stargazers)
|
|
131
|
+
[](https://github.com/google/jax)
|
|
132
|
+
[](https://doi.org/10.5281/zenodo.21855643)
|
|
133
|
+
[](https://github.com/qosf/awesome-quantum-software)
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Table of Contents
|
|
138
|
+
- [What It Is](#-what-it-is)
|
|
139
|
+
- [Install](#-install)
|
|
140
|
+
- [Quick Start](#-quick-start)
|
|
141
|
+
- [Key Features](#-key-features)
|
|
142
|
+
- [Benchmarks](#-benchmarks)
|
|
143
|
+
- [Composer & MCP Server](#-composer--mcp-server)
|
|
144
|
+
- [Key Resources](#-key-resources)
|
|
145
|
+
|
|
146
|
+
## ▍ What It Is
|
|
147
|
+
|
|
148
|
+
Run up to 28 qubits in about 3 seconds, without crashing. **Dense Evolution** JIT-compiles statevector circuits through JAX XLA, automatically chunks and — past even that RAM ceiling — spills to disk when memory fills up, so a real simulation stays alive instead of OOM-ing.
|
|
149
|
+
|
|
150
|
+
📖 **[Full documentation, API reference, and worked examples →](https://tatopenn-cell.github.io/Dense-Evolution/)**
|
|
151
|
+
|
|
152
|
+
A local Streamlit dashboard and web-based Composer editor are also included — see [Composer & MCP Server](#-composer--mcp-server) below.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## ▍ Install
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
pip install dense-evolution # JAX is a core dependency, installed by default
|
|
160
|
+
|
|
161
|
+
# full stack: GPU · dashboard · Qiskit/PennyLane interop
|
|
162
|
+
pip install dense-evolution[full]
|
|
163
|
+
|
|
164
|
+
# just the interop bridge
|
|
165
|
+
pip install dense-evolution[qiskit]
|
|
166
|
+
pip install dense-evolution[pennylane]
|
|
167
|
+
|
|
168
|
+
# Composer's local kernel (see "Composer" below)
|
|
169
|
+
pip install dense-evolution[composer]
|
|
170
|
+
|
|
171
|
+
# MCP server for the Composer kernel (see "MCP Server" below)
|
|
172
|
+
pip install dense-evolution[mcp]
|
|
173
|
+
|
|
174
|
+
# development
|
|
175
|
+
git clone https://github.com/tatopenn-cell/Dense-Evolution.git
|
|
176
|
+
cd Dense-Evolution && pip install -e .[full]
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
<details>
|
|
180
|
+
<summary>⚠️ macOS + <code>dense-evolution[qiskit]</code> users</summary>
|
|
181
|
+
|
|
182
|
+
Qiskit's own `QuantumCircuit.__init__` is known to segfault the whole process on macOS/arm64 (an upstream Qiskit bug, not something Dense-Evolution can fix from its side — see [release v8.1.43](https://github.com/tatopenn-cell/Dense-Evolution/releases/tag/v8.1.43) for the full reproduction). `dense_evolution/interop.py` now warns (`RuntimeWarning`, once per process) the first time you touch the Qiskit bridge on `sys.platform == 'darwin'`, but it does not block — some Qiskit/macOS combinations may work fine. If you hit a crash, `pip install dense-evolution[pennylane]` gives the same circuit-interop functionality without constructing any Qiskit object.
|
|
183
|
+
|
|
184
|
+
</details>
|
|
185
|
+
|
|
186
|
+
**Google Colab (3 lines):**
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
!git clone https://github.com/tatopenn-cell/Dense-Evolution.git
|
|
190
|
+
%cd Dense-Evolution
|
|
191
|
+
!pip install -e .
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## ▍ Quick Start
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
from dense_evolution import DenseSVSimulator, QASMParser
|
|
200
|
+
|
|
201
|
+
# parse any OpenQASM 2.0 / 3.0 string -- single-qubit rotations, a barrier
|
|
202
|
+
# (a real OpenQASM synchronization marker: parsed like hardware would, no
|
|
203
|
+
# effect on the simulated state), then an entangling layer
|
|
204
|
+
qasm = """
|
|
205
|
+
OPENQASM 2.0;
|
|
206
|
+
include "qelib1.inc";
|
|
207
|
+
qreg q[3];
|
|
208
|
+
rx(pi/3) q[0];
|
|
209
|
+
ry(pi/4) q[1];
|
|
210
|
+
h q[2];
|
|
211
|
+
barrier q;
|
|
212
|
+
cx q[0], q[1];
|
|
213
|
+
cx q[1], q[2];
|
|
214
|
+
rz(pi/6) q[2];
|
|
215
|
+
"""
|
|
216
|
+
|
|
217
|
+
parser = QASMParser()
|
|
218
|
+
circuit = parser.parse(qasm)
|
|
219
|
+
|
|
220
|
+
sim = DenseSVSimulator(n_qubits=3)
|
|
221
|
+
sim.run_circuit_jit(circuit.to_tuples())
|
|
222
|
+
|
|
223
|
+
probs = sim.get_probabilities()
|
|
224
|
+
sv = sim.get_statevector()
|
|
225
|
+
# probs = [0.3201 0.3201 0.0549 0.0549 0.0183 0.0183 0.1067 0.1067]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Noise:**
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
import numpy as np
|
|
232
|
+
from dense_evolution import DenseSVSimulator, QASMParser, NoiseModel
|
|
233
|
+
|
|
234
|
+
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[2]; h q[0]; cx q[0],q[1];'
|
|
235
|
+
circuit = QASMParser().parse(qasm)
|
|
236
|
+
|
|
237
|
+
sim = DenseSVSimulator(n_qubits=2)
|
|
238
|
+
sim.run_circuit_jit(circuit.to_tuples())
|
|
239
|
+
|
|
240
|
+
noisy_sv = NoiseModel.apply_to_sv(np.asarray(sim.sv), n=2, model='depolarizing', p=0.05, rng=np.random.default_rng(0))
|
|
241
|
+
np.abs(noisy_sv) ** 2
|
|
242
|
+
# [0. 0.5 0.5 0. ]
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**VQE:**
|
|
246
|
+
|
|
247
|
+
```python
|
|
248
|
+
import jax
|
|
249
|
+
import jax.numpy as jnp
|
|
250
|
+
from dense_evolution import QASMParser, circuit_to_energy_fn
|
|
251
|
+
|
|
252
|
+
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; ry(0.0) q[0];'
|
|
253
|
+
circuit = QASMParser().parse(qasm)
|
|
254
|
+
energy_fn, n_params = circuit_to_energy_fn(circuit, n_qubits=1)
|
|
255
|
+
h = jnp.array([[1.0, 0.0], [0.0, -1.0]], dtype=jnp.complex128) # Pauli Z
|
|
256
|
+
|
|
257
|
+
theta = jnp.array([0.1])
|
|
258
|
+
grad_fn = jax.value_and_grad(energy_fn, argnums=0, has_aux=True)
|
|
259
|
+
for _ in range(40):
|
|
260
|
+
(energy, sv), grad = grad_fn(theta, h)
|
|
261
|
+
theta = theta - 0.5 * grad
|
|
262
|
+
# energy = -1.0, theta = [3.14159265]
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Mitigation (ZNE):**
|
|
266
|
+
|
|
267
|
+
```python
|
|
268
|
+
import dense_evolution as de
|
|
269
|
+
|
|
270
|
+
e1, e2, e3 = 1.234, 0.876, 0.611 # values at 1x, 2x, 3x noise
|
|
271
|
+
de.zero_noise_extrapolation([e1, e2, e3], [1.0, 2.0, 3.0])
|
|
272
|
+
# 1.622
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Dashboard (local, Streamlit):**
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
pip install "dense-evolution[dashboard]" # JAX already included by default
|
|
279
|
+
streamlit run tools/dashboard/app.py
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Anti-OOM for large circuits:**
|
|
283
|
+
|
|
284
|
+
```python
|
|
285
|
+
from dense_evolution import Chunk, QASMParser
|
|
286
|
+
|
|
287
|
+
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[27]; h q[0:27];'
|
|
288
|
+
circuit = QASMParser().parse(qasm)
|
|
289
|
+
|
|
290
|
+
sim = Chunk(27)
|
|
291
|
+
sim.run_chunk(circuit.to_tuples(), chunk_size_gates=500)
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
## ▍ Key Features
|
|
298
|
+
|
|
299
|
+
<img src="docs/assets/readme_hero_circuit.png" width="400px" align="right">
|
|
300
|
+
|
|
301
|
+
- **JIT-fused statevector engine.** No Kronecker-product overhead — stride-sliced linear kernel fusion compiled through JAX XLA, real GPU/TPU dispatch with no code change. [Simulator](https://tatopenn-cell.github.io/Dense-Evolution/api/simulator/) · [MPS backend](https://tatopenn-cell.github.io/Dense-Evolution/api/mps/) for low-entanglement circuits at scale.
|
|
302
|
+
- **Anti-OOM `Chunk` engine.** Circuits too large for one array, split dynamically and sized off the real compute device's own free memory — with disk-backed overflow past even that ceiling. [Chunk guide](https://tatopenn-cell.github.io/Dense-Evolution/api/chunk/).
|
|
303
|
+
- **Real noise, real mitigation.** Stochastic Kraus channels, real-device noise imported from Qiskit backends, and Zero-Noise Extrapolation to correct for it. [Noise](https://tatopenn-cell.github.io/Dense-Evolution/api/noise/) · [Mitigation](https://tatopenn-cell.github.io/Dense-Evolution/api/mitigation/) · [what noise/mitigation/healing each mean](https://tatopenn-cell.github.io/Dense-Evolution/concepts/).
|
|
304
|
+
- **Differentiable VQE, from scratch.** `circuit_to_energy_fn` is the same JAX-differentiable engine real molecular VQE runs on — real Hartree-Fock Hamiltonians, UCCSD/hardware-efficient ansätze, Adam optimization. [Autodiff](https://tatopenn-cell.github.io/Dense-Evolution/api/autodiff/).
|
|
305
|
+
- **libcint integrals on Windows, macOS and Linux.** `pip install dense-evolution` ships libcint compiled for each system: the full two-electron tensor of ethanol in 6-31G* in 0.32 s. [native_hf](https://tatopenn-cell.github.io/Dense-Evolution/api/native_hf/).
|
|
306
|
+
- **OpenQASM 2.0/3.0, both directions.** A real parser, plus Qiskit/PennyLane interop bridges. [QASM Parser](https://tatopenn-cell.github.io/Dense-Evolution/api/parser/) · [Interop](https://tatopenn-cell.github.io/Dense-Evolution/api/interop/).
|
|
307
|
+
- **Code-agnostic QEC decoding**, Majorana/Jordan-Wigner fermion mapping, from-scratch Hartree-Fock for elements outside PennyLane's own basis set, a traversable-wormhole-inspired teleportation protocol, and real QM/MM region partitioning (ring-safe BFS, Diffuse2Seg-derived relevance propagation) — see the [full API reference](https://tatopenn-cell.github.io/Dense-Evolution/api/) for all of it.
|
|
308
|
+
|
|
309
|
+
## ▍ Benchmarks
|
|
310
|
+
|
|
311
|
+
Measured on Windows, CPU only, 8 GB RAM — PennyLane's `default.qubit` allocates the full statevector; Dense Evolution's `Chunk` holds constant ~2 GB regardless of qubit count.
|
|
312
|
+
|
|
313
|
+
| Qubits | Hilbert Space | PennyLane | Dense Evolution | Chunk Geometry |
|
|
314
|
+
|:------:|:-------------:|:---------:|:----------------:|:--------------:|
|
|
315
|
+
| 26 | 67,108,864 | ✅ 1,074 MB | ✅ 2,050 MB | 1× (2²⁷) |
|
|
316
|
+
| 28 | 268,435,456 | ❌ OOM | ✅ 2,050 MB | 2× (2²⁷) |
|
|
317
|
+
| 32 | 4,294,967,296 | ❌ OOM | ✅ 2,048 MB | 32× (2²⁷) |
|
|
318
|
+
|
|
319
|
+
On Google Colab (12 GB RAM), n=28 runs in ~3s end-to-end (JIT-compiled, `num_chunks=2`) — the multi-chunk path is fast, not just OOM-safe. Past the real RAM ceiling (`Chunk` alone raises `MemoryPressureError` cleanly rather than crashing the process), `allow_disk_overflow=True` falls back to a slower disk-backed path instead of failing — correctness-first, not benchmarked for speed yet. Full measured table: [docs/api/chunk.md](https://tatopenn-cell.github.io/Dense-Evolution/api/chunk/).
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
## ▍ Composer & MCP Server
|
|
323
|
+
|
|
324
|
+
A real circuit editor (graphical or OpenQASM) running on your own machine, plus an MCP server exposing 22 tools so an agent (Claude Code, Claude Desktop, ...) can drive it directly. [Composer](https://tatopenn-cell.github.io/Dense-Evolution/composer/) · [MCP Server](https://tatopenn-cell.github.io/Dense-Evolution/mcp/).
|
|
325
|
+
|
|
326
|
+
## ▍ Key Resources
|
|
327
|
+
|
|
328
|
+
- [Full documentation & API reference](https://tatopenn-cell.github.io/Dense-Evolution/)
|
|
329
|
+
- [Getting Started guide](https://tatopenn-cell.github.io/Dense-Evolution/getting-started/)
|
|
330
|
+
- [Worked examples](https://tatopenn-cell.github.io/Dense-Evolution/examples/)
|
|
331
|
+
- [Issue Tracker](https://github.com/tatopenn-cell/Dense-Evolution/issues)
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## ▍ Changelog
|
|
336
|
+
|
|
337
|
+
📜 [Full Changelog & Releases](https://github.com/tatopenn-cell/Dense-Evolution/releases) — every version, latest first.
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## ▍ License
|
|
342
|
+
|
|
343
|
+
**Business Source License 1.1** — converts automatically to **Apache 2.0** on **1 June 2029**.
|
|
344
|
+
|
|
345
|
+
- Non-commercial use: unrestricted
|
|
346
|
+
- Commercial use: ≤ 24 allocated qubits · ≤ 1,000 circuits/day · ≤ 10,000 shots/circuit
|
|
347
|
+
- Attribution required: `© 2026 Salvatore Pennacchio <jtatopenn@libero.it> — Dense Evolution`
|
|
348
|
+
|
|
349
|
+
Full text: [LICENSE.md](LICENSE.md)
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## ▍ Cite This
|
|
354
|
+
|
|
355
|
+
If Dense-Evolution is useful in academic work, please cite it via the metadata in [CITATION.cff](CITATION.cff) (recognized by GitHub's own "Cite this repository" button, and by reference managers that support the [Citation File Format](https://citation-file-format.github.io/)).
|
|
356
|
+
|
|
357
|
+
Archived on [Zenodo](https://zenodo.org/):
|
|
358
|
+
|
|
359
|
+
- **Concept DOI** (always resolves to the latest version): [10.5281/zenodo.21855643](https://doi.org/10.5281/zenodo.21855643)
|
|
360
|
+
- **This release (v8.2.0)**: [10.5281/zenodo.22818319](https://doi.org/10.5281/zenodo.22818319)
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
<div align="center">
|
|
365
|
+
<sub>© 2026 Salvatore Pennacchio — Dense Evolution</sub>
|
|
366
|
+
</div>
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
dashboard_core/__init__.py,sha256=v3UC2p4KLIHADL6A6x5eAZXnEA8BE8l6LZNie6hSgqA,5793
|
|
2
|
+
dashboard_core/_gate_tables.py,sha256=J0GIVgvNkj0f9PkzKFmyYytznBSB5Yh4IibvY5vd0uc,1530
|
|
3
|
+
dashboard_core/band_structure.py,sha256=VS-kLmrPl-ze1zsGMYj-OpIX4Wl5VKs7ZV44G0vVN2U,3274
|
|
4
|
+
dashboard_core/circuit_builder_component.py,sha256=EFld8OPXyUF_nTCrmrKTu80-WmtSlbkXhzYVJGjmYbQ,9328
|
|
5
|
+
dashboard_core/circuit_diagram.py,sha256=WxvRPW_DxFwZwTZFXj5nTQOWtcQkYMyaH5r50_E9oyA,9107
|
|
6
|
+
dashboard_core/crypto_protocols.py,sha256=vxe4gb2utxRhn7JeW0ykh0kykSaTMBUggXw91rg7F3k,3423
|
|
7
|
+
dashboard_core/engine.py,sha256=PaRwB9g0l2F8OWTf6ulMwD3FrDu_MuVwUoCNDE8jvQ0,14703
|
|
8
|
+
dashboard_core/graphical_builder.py,sha256=dUbz0pjsFIYBAIon8ujpMy7gDEBsvRL8DTP-AN82JAs,5126
|
|
9
|
+
dashboard_core/hamiltonians.py,sha256=xMF9MyrthnD25tD0tCeZjKDyPG3E1VEJjZhBPCZC6B4,29166
|
|
10
|
+
dashboard_core/mass_decomposition_tool.py,sha256=bWsECNPKZm8l03H-VmUWrWk54uI-Jjb-oys5Dad4D68,2065
|
|
11
|
+
dashboard_core/mitigation.py,sha256=DD53ZHhHS-1xC8JVqKFsSVg8g3YGwP3sw6G9aIFwyeo,15078
|
|
12
|
+
dashboard_core/native_hf_diagnostics.py,sha256=_SS0I49gqtSMAaffdCPwTaxSnCJpKz-eecNG8ZNePng,2773
|
|
13
|
+
dashboard_core/noise_tools.py,sha256=VZbfB8mN6Vy46qXHYwHyDSW8EZZAjpv15hFH1fyUEPk,5046
|
|
14
|
+
dashboard_core/qasm_library.py,sha256=-p1Wop7nJ8AwwoV0u0ISVuS_630C5s8Jr4ZFDEvJy_s,10718
|
|
15
|
+
dashboard_core/qmmm.py,sha256=w0gHuLN5hTQ4ToMz03_CgMG9fIKNfHPldGHwB_W4fEA,755
|
|
16
|
+
dashboard_core/rag_tool.py,sha256=y-tCR-g-UonWmypdZ6AIl_sxjiaOKEmohwvaZbarQ5s,2210
|
|
17
|
+
dashboard_core/state_visuals.py,sha256=nAFCVUwZ-ESclZbS0NrSyKByKBiakSFp_lC7puI_7o8,13867
|
|
18
|
+
dashboard_core/system_limits.py,sha256=15qJTS2HopljEvegZpVOazntgR4A1TT_MygI2mWdCdA,2694
|
|
19
|
+
dashboard_core/vector_healing.py,sha256=CM3UADOJH2ikIvdlLsfHIeN2-CA7tyAwSXs0Kmv2MvM,4736
|
|
20
|
+
dashboard_core/visuals.py,sha256=4RLu0nLO-Tku5vOlAClWUuc_XBBLa5puosCYdwmfslM,7688
|
|
21
|
+
dashboard_core/vqe.py,sha256=bM4cJzzGJ9n-n6PXh3WVw03j5yXHRvWcWcqBaBSK3IA,26006
|
|
22
|
+
dashboard_core/wormhole.py,sha256=bSJGLyTty05lcDJoWBlUPXhGZjXWuuA0q0I3cTlao70,29989
|
|
23
|
+
dense_evolution/__init__.py,sha256=MmiWPqS-2OdVareCakUYdk3XdJ-yw3DRqBIPR9GZE_Y,7025
|
|
24
|
+
dense_evolution/autodiff.py,sha256=y_X0fcoAVeC1mPCSIs9zjWhcENupYQ0t9e2YH4l8jXI,493
|
|
25
|
+
dense_evolution/chunk.py,sha256=vYO9R6qJE33M6TUEh5tBLWZ5Hsp8XG1cD_nhzg_D4mI,1261
|
|
26
|
+
dense_evolution/cli.py,sha256=LtWB_oVT28rcpD3bZ6je2wZf6t_lPbLmrd9XCRLknOw,8399
|
|
27
|
+
dense_evolution/compiler.py,sha256=bYNrQuSSE88oeirlDxufzJytUB5SyjT5J4dhSGA0vJU,486
|
|
28
|
+
dense_evolution/config.py,sha256=9M7iO5wZH3Aix2YFgTvvRuVnthiDVoitiJRSSDLiDPs,2207
|
|
29
|
+
dense_evolution/drawing.py,sha256=UpQ_crrFIllLADJmv-NYID8HNlAh3oS4b2ZJQw5fULY,460
|
|
30
|
+
dense_evolution/entropy.py,sha256=EP1I8lrnhLDxdUMgvffl7RpIJvNeRIpG1bgLasg7FkE,628
|
|
31
|
+
dense_evolution/fermions.py,sha256=EpGRRkKbUHF8dvWVqUl4IXEULKYIm68oNnQZRHpF4UM,492
|
|
32
|
+
dense_evolution/gates.py,sha256=uzEh2QRGukOuJvARwkY0ZUYmzQSY6Dh6iRl5fEi44Do,498
|
|
33
|
+
dense_evolution/harrison_tb.py,sha256=UiK65K437ncw1nfhcyOIHVtNgZu1k1QHMZCgUUwRhrc,741
|
|
34
|
+
dense_evolution/healing.py,sha256=m1ciCAhFPTn-l-NFIgd122bUyyZP6LvNrL6XzZhzmPo,951
|
|
35
|
+
dense_evolution/measurement.py,sha256=IIh7c8ACUMAHUG_ci4zHpUVWdAD8mXiy0CM6W_vCNAw,515
|
|
36
|
+
dense_evolution/mps.py,sha256=T-GpOmK-gHxt-QYM6XeGFZaHekhEn5_dtOJAOl0sY6Y,451
|
|
37
|
+
dense_evolution/observables.py,sha256=gL904u6_a1kRdO3jwCBTL4fZgOQOasfh27vWunjlr-A,704
|
|
38
|
+
dense_evolution/parser.py,sha256=t8HS8XuUuhBTHj5I8Ms4GuxYFWVqjWdJDrPAokyquxM,485
|
|
39
|
+
dense_evolution/qec.py,sha256=UPyi2vhza4cFEfAVBBoWtHcfiGnvb8L8uBRNx-FT_Mw,1175
|
|
40
|
+
dense_evolution/qft.py,sha256=h2DV_tnOMwUMUCJb7cl1vRwuKg3eCSVSd7_PJtrVMKY,424
|
|
41
|
+
dense_evolution/random_circuit.py,sha256=Oj2MTy-NE9dbKxy19izC7JcQsIpYnJnMKQ8THjHFFU8,791
|
|
42
|
+
dense_evolution/registry.py,sha256=ejY3baJ7KvkxAH-7vHNk8OXpvubJMrp-xFUp6wVf6Rg,558
|
|
43
|
+
dense_evolution/simulator.py,sha256=4tu2JAaYKkR6Jt8xHgbgA_1X4yF0gpaCeUDBQt2aWN8,495
|
|
44
|
+
dense_evolution/states.py,sha256=UfYA7k5UL5NVpd-DMo6o6bEqhxPxGBLzPVxBFnPYhvs,451
|
|
45
|
+
dense_evolution/topology.py,sha256=A-mF-vr9EdI7Vd4PCWMTSiaEcNbcHD2m7mKL8A3UUOs,517
|
|
46
|
+
dense_evolution/trotter.py,sha256=DGrpf-eVAMM_qP14QYs5hjXGJoxpzsAGkTYoPL1hnbY,527
|
|
47
|
+
dense_evolution/vhd_tb.py,sha256=Vi7UnQ3Vjh2I0H_TD083inB5iFBkN1at7cS4oSTAJfI,660
|
|
48
|
+
dense_evolution/backends/__init__.py,sha256=_B6vgt5TxUz_yzm8PDbnTL1d4qnGZFqfTlgCQju-Q-Q,199
|
|
49
|
+
dense_evolution/backends/mps.py,sha256=0xOIXzHU-XkoABE0UPKmYiGsbRPyQ1T5g2mkHmJlwCg,79020
|
|
50
|
+
dense_evolution/backends/statevector.py,sha256=R0XZobQ5Vp1z5MhLhBXI0NbkFYO3IDm96g5I22GoxuA,29532
|
|
51
|
+
dense_evolution/backends/chunk/__init__.py,sha256=S6pqc246By2TevR2l0ySf7b9gzIuYnmc2FfvWkFnbmI,1655
|
|
52
|
+
dense_evolution/backends/chunk/_engine_imports.py,sha256=MVyhXtEfJU79h04fGHTddS7TMHffrj8hkNU1UAYSSwg,2966
|
|
53
|
+
dense_evolution/backends/chunk/circuit_chunker.py,sha256=l1sIj8LFEvRlnuioWhaagPTqJsKcAu52__hyAWZiUUc,2171
|
|
54
|
+
dense_evolution/backends/chunk/core.py,sha256=A63I94Rif3i4ZUYr5uVekLUiwoWinFbFZNWypmO-BuM,21228
|
|
55
|
+
dense_evolution/backends/chunk/disk_overflow.py,sha256=o8OBgBk7NWPklN3OTvSbSPykla8z2ylrVBI2cfavvss,10662
|
|
56
|
+
dense_evolution/backends/chunk/geometry.py,sha256=k5hPqX0WpQ9eODGm4CWropdY5XbNq3D7Z6ZwVZl6kuw,4275
|
|
57
|
+
dense_evolution/backends/chunk/guard.py,sha256=8sfaCMz_ncP4o2qC7SbRLyx9A7LJrS-35My1nqEaMb8,9802
|
|
58
|
+
dense_evolution/backends/chunk/kernels.py,sha256=q6yc9SVSNerLnJwzgOLUHqEQCv_q40daDQ_1kjT-6bo,27789
|
|
59
|
+
dense_evolution/circuits/__init__.py,sha256=CHsfE60864jsrM2IeJIbD_1-RihueDEvhPeYw6x0M80,798
|
|
60
|
+
dense_evolution/circuits/compiler.py,sha256=J5gpaT8vba9E0cqhYYwoSWSz-ggBI1vPZEsUSA2g_Kg,24494
|
|
61
|
+
dense_evolution/circuits/diagram.py,sha256=_73Grozzvgf3RnjFDbHi1qIqNoc-SXNq6s0RrKtaErw,3900
|
|
62
|
+
dense_evolution/circuits/gates.py,sha256=bbpx_g5wHcJiWSTjjVzyyOUnHK7ti3Muki7UeRRK-YM,5770
|
|
63
|
+
dense_evolution/circuits/parser.py,sha256=agTRPElkxPz5JdI4oeQ_08HNcO-lxnlrAG5hx_O2WwE,31610
|
|
64
|
+
dense_evolution/circuits/qft.py,sha256=pF7SBR0CuY8qmX6Nkd1TWyIUUezOSReXPcnAi-byAvc,2170
|
|
65
|
+
dense_evolution/circuits/random_circuit.py,sha256=bCb8_bbQfz8bDrWuZI0Psw-tM8e2NwPGBJ6R28e4bEg,3325
|
|
66
|
+
dense_evolution/circuits/registry.py,sha256=65dahA3ag8NHCs4Yc9t53-qgSLR1mXRQT9NUkD-uojg,3091
|
|
67
|
+
dense_evolution/circuits/topology.py,sha256=8BCp4XxoVXcQPyeb_n09U8519bfsBAWSRRIhAsPq8DI,3319
|
|
68
|
+
dense_evolution/circuits/trotter.py,sha256=zkeXagbdqcLWvMiPQbGHA5jC3d5LFDmN9YB4wq4lnwk,12089
|
|
69
|
+
dense_evolution/circuits/uccsd.py,sha256=9GMK-gyOIDCZlUXk-VJjNUrUv0eKzetioNGlZeYNOc0,12281
|
|
70
|
+
dense_evolution/interop/__init__.py,sha256=7kRUBudcFdPx8UvdgJgtJxPwLMx-9Kf5B35OE6kvcd4,432
|
|
71
|
+
dense_evolution/interop/qiskit_pennylane.py,sha256=zr9ceNa-s53vHpssjHJ-QPBN-2LBG6qEw1RPNoi8nIQ,19475
|
|
72
|
+
dense_evolution/mitigation/__init__.py,sha256=U5CE6JqNwYzw1M5uj5cO2LLGSPL8v0QhUYfIi2lGhn0,2988
|
|
73
|
+
dense_evolution/mitigation/healing.py,sha256=lyzLi_h-ZqAJcmEeQzQa-ICxRidt9Q7Bc8V6Lg-qE5s,10892
|
|
74
|
+
dense_evolution/mitigation/kl_divergence.py,sha256=XlG6SvaSzUFBukO3SbKLVtCTMQo9S5G_s4GUbcqWtQs,4664
|
|
75
|
+
dense_evolution/mitigation/magic_entropy.py,sha256=1f2mLFP5d-UkT0c8BKAxLvEKxYI39bv25er_fOs6Agk,8557
|
|
76
|
+
dense_evolution/mitigation/magic_entropy_shadows.py,sha256=mVFgfynpOncW9AaNbx0hf-9bLYn1uapHGFhTjVUNXdQ,13156
|
|
77
|
+
dense_evolution/mitigation/renyi.py,sha256=JHEZTGLl9qtrpkpkWevrDW0Zk12I28q2EnFCzCed3a8,8648
|
|
78
|
+
dense_evolution/mitigation/stabilizer_renyi_entropy.py,sha256=JTG6WWzARCTHlnZSvddTZLab1dFkJW0HptkL8HJ77L0,4782
|
|
79
|
+
dense_evolution/mitigation/zne.py,sha256=yrRhhTwt90yaTl9oBKa4wg4uKBFC0AIPTC9QREIdNVQ,54324
|
|
80
|
+
dense_evolution/native_hf/__init__.py,sha256=JMp5EBNEoYAsRKQhcSnt8l0_ZBYoGm65rPjJjtJ3FIQ,1456
|
|
81
|
+
dense_evolution/native_hf/assembly.py,sha256=z4deCOHeTzZNSfkAvsen5xgNnGZNmR47BnAncfXw_70,14722
|
|
82
|
+
dense_evolution/native_hf/basis.py,sha256=1ue35oN8tHH2_uOMiUSkr-wzNFOCtkslJ3GEXRR9SAM,5160
|
|
83
|
+
dense_evolution/native_hf/boys.py,sha256=IW-DHdTm-o0aZ1strkiXiSjSYZnyyVkbTC4e1uhwdac,1231
|
|
84
|
+
dense_evolution/native_hf/bridge.py,sha256=PVl-7MEZwVtG7xg6QB2gWctxZY0_nEHzhg_kYmGqi7Q,4566
|
|
85
|
+
dense_evolution/native_hf/cartesian.py,sha256=_GmlgReiR_OKiZ_KxdYoahwTNcNXIIiJdfll3TC51Xw,2906
|
|
86
|
+
dense_evolution/native_hf/coulomb.py,sha256=0o3pR49opy3T2A5XPVRKW1aM26ejjlSMu_Btf23Ab7g,8414
|
|
87
|
+
dense_evolution/native_hf/differentiable.py,sha256=WVk-mZPcAbj0XM2v1ixBzqgmNvOeLoU00FOM2KJLbdo,2558
|
|
88
|
+
dense_evolution/native_hf/gaussians.py,sha256=m3cEGvj5T3xfhAuRx30riaT85NN7zCLalPjc5Jb3U2Y,2693
|
|
89
|
+
dense_evolution/native_hf/kinetic.py,sha256=DnRMUucGxOGg4kQJcrPvZQu9iDEsi3vnVHaTB6lPmdk,2128
|
|
90
|
+
dense_evolution/native_hf/libcint_bridge.py,sha256=4DL2bMb-eaqU1toh4764h61s6dI6nzst7xj9aDgVChY,8197
|
|
91
|
+
dense_evolution/native_hf/overlap.py,sha256=_hZJbAfBGWB3CuD6bficJUgDdmW76iZgXM4i6A8zknY,3586
|
|
92
|
+
dense_evolution/native_hf/scf.py,sha256=OYj5IjQPkpog3w9Xt03V45ihogJludpJ8ohKX7Fm6O0,19700
|
|
93
|
+
dense_evolution/native_hf/_libcint/LICENSE-libcint,sha256=J78eTQ0vTxBbVwezpAaR4ZS985-4WjH7j3x2KE0gEkQ,1299
|
|
94
|
+
dense_evolution/native_hf/_libcint/libdecint.dll,sha256=_g3YLmmxNQVdjWqsz2SHuhv8VDwxYOH23YUrIUKGN2E,1312898
|
|
95
|
+
dense_evolution/noise/__init__.py,sha256=xEZz4Oa5sfwdp7mt4F2mRGEbUBlJwvizMci90fAyD3c,3898
|
|
96
|
+
dense_evolution/noise/coherent_attack.py,sha256=DJz1eqx_o_H53YbOteV-Qz0YIUpsh4Y7GALdB1Y5FPo,11772
|
|
97
|
+
dense_evolution/noise/cosmic_ray.py,sha256=vsF-nMXQ0AVoqIBCVxpmtsGkFjuJrMepPCqNCi2FbeI,3019
|
|
98
|
+
dense_evolution/noise/density_matrix_channels.py,sha256=0UDI0JnX2Cv2lpis9D9RRMVyky5NEzbimCVU1Gh7h-o,4058
|
|
99
|
+
dense_evolution/noise/differentiable.py,sha256=16tivbT8K7rJQSYYYjfLPLvdEkPR_6aVEx5HK_SY7NU,2724
|
|
100
|
+
dense_evolution/noise/kraus_channels.py,sha256=PZtolU_zXzaYuxbC9bJA6GFCm2ykeAY1F3dLOdYWMTk,12606
|
|
101
|
+
dense_evolution/noise/oscillating.py,sha256=6xfhvkw-vmIIp4ozBgVD6vv_AtDefvuvQrIxNSJ8-Xo,1405
|
|
102
|
+
dense_evolution/noise/pink.py,sha256=enIdCTShjVyRsPtCWfGrewKc1zRYCxNQltDsYYUOqFE,3950
|
|
103
|
+
dense_evolution/noise/kraus/__init__.py,sha256=XFmGEBUq4k7yUQXHOUK0BgmfQv0F2ZMTtgBETJohXK8,369
|
|
104
|
+
dense_evolution/noise/kraus/amplitude_damping.py,sha256=eqr8mLhZfQwENhfoNj9xVLb05SyHMxSr07Cpn26tn94,2168
|
|
105
|
+
dense_evolution/noise/kraus/bitflip.py,sha256=ANwahkTZLfOtrJoTKyywo_vWTkDExgeS13pPRhgFACw,771
|
|
106
|
+
dense_evolution/noise/kraus/combined.py,sha256=NT7duiCxdOLL2sG7c3RU6ExRxgLB00o8kqg6Dp7b50w,696
|
|
107
|
+
dense_evolution/noise/kraus/depolarizing.py,sha256=JkhyS6Vj6ajaJ_ck_nZwUOR6JENsMW8ac1zF7QfY3xw,1829
|
|
108
|
+
dense_evolution/noise/kraus/ideal.py,sha256=wi00KhHJytkD513l38FuJQF15J972jVcel7kboQsEIA,359
|
|
109
|
+
dense_evolution/noise/kraus/phaseflip.py,sha256=BXqm8Nyg_9Ch33J9FXDfy256A0f0g97vjJP3ryM4oaU,704
|
|
110
|
+
dense_evolution/physics/__init__.py,sha256=WFBzAXqi-qc0HWgpAH9HjtVi-jq_sL-viyUqeSWvojQ,1967
|
|
111
|
+
dense_evolution/physics/entropy.py,sha256=UZpIt3vqwBkQAKACEUBdl6UeFv8POQGs3bjb5sJcELM,7847
|
|
112
|
+
dense_evolution/physics/fermions.py,sha256=rjNHmMkE8cCv4IHAAvC85zJWDolbr1z3Lrn6hLaTIZw,15368
|
|
113
|
+
dense_evolution/physics/observables.py,sha256=qovsf-1G_Fhockno1ftUXr54imPvJGyTJCDzcMSkrp8,22928
|
|
114
|
+
dense_evolution/physics/qec.py,sha256=YywznfyMvb9Z1-BFc5bWxNFWZhl4aNA8NMr539K9pgU,50907
|
|
115
|
+
dense_evolution/physics/spectral.py,sha256=vMSOIAqYT4RfboBUtvqNcx-JJXkZHwXbI4D4PE3_bZ8,5690
|
|
116
|
+
dense_evolution/physics/states.py,sha256=ey49uTwCANbP-deBCYX9gFquftF8gg5xL-2p816KeJQ,1538
|
|
117
|
+
dense_evolution/protocols/__init__.py,sha256=QNgrDui0imyM9V2nOc9ijTapOQnPvfdSXx9sywYx7aM,1596
|
|
118
|
+
dense_evolution/protocols/bb84.py,sha256=ak4nuydLOWRWO7v9DCaIvXgq_ey2ePT5N5xGBrqvg_M,5108
|
|
119
|
+
dense_evolution/protocols/di_qkd_ghz.py,sha256=0bdRlqwl1DD_SkIm_wNx3mA91umSHOjVvBHuaWkuxvE,8349
|
|
120
|
+
dense_evolution/protocols/dicka_protocol2.py,sha256=36yEBUSfmZfeF3hg1aJXmViojk0JlokNAAJqp55Pvxw,5045
|
|
121
|
+
dense_evolution/qmmm/__init__.py,sha256=XP52aZtLcSwNRVGk7XJZBepL8ejxGLXVUuAKotK7n7k,587
|
|
122
|
+
dense_evolution/qmmm/ase_bridge.py,sha256=wXSdADRA-KpkROiDwyIlDPIG6TeU-4VdaB4uE1yKQHk,4453
|
|
123
|
+
dense_evolution/qmmm/forces.py,sha256=uMgOXqsm77NLaE3C_QZSF668E-UIosnoUA2b4c99Ekw,20586
|
|
124
|
+
dense_evolution/qmmm/propagation.py,sha256=0rEV8Y4D_31aFWczazr5H4Ag9DMMDDj2YkBDRA4zwg4,3972
|
|
125
|
+
dense_evolution/qmmm/region.py,sha256=aPVz4xJfvBRVaNGSxfVNiE5E1Qt72piJkxfBYGb0CbQ,6232
|
|
126
|
+
dense_evolution/solvers/__init__.py,sha256=WZJEA5BY1ptO-ZhZmUZLSalT00-q18bf_prXC2OPykU,745
|
|
127
|
+
dense_evolution/solvers/autodiff.py,sha256=KW-3j2YxNwfxU0Y1W6cYIQmwQeszV7LKaOdkW74TRlg,7977
|
|
128
|
+
dense_evolution/solvers/harrison_tb.py,sha256=edWKzu-tUiirUSQ7lNCTLeJn4hIV7UiEElBpiQGdcMA,8735
|
|
129
|
+
dense_evolution/solvers/vhd_tb.py,sha256=z02kqj8fIVengQck9AmEjUbVyMsuib6wTWBFLLF5HN4,9899
|
|
130
|
+
dense_evolution/utils/__init__.py,sha256=MoNYHpkOR-o1ff386nlxvQ4GK0hcTKFEtNsRIu3HcGQ,558
|
|
131
|
+
dense_evolution/utils/drawing.py,sha256=s6C6QCzXpU4q2bwIPdANKt9hibg5dWBJnmjiy0IUBiM,3763
|
|
132
|
+
dense_evolution/utils/mass_decomposition.py,sha256=ZbXe1_U3jMBWqBp-iFGG3ccAO1-Pk9rsnWRjWLmR1fc,11686
|
|
133
|
+
dense_evolution/utils/measurement.py,sha256=1CuKNbU05n19gA_-RSSST0xOwmad1mDJyLcHeUau7_M,3582
|
|
134
|
+
dense_evolution-8.3.0.dist-info/licenses/license.md,sha256=sA57UO4p45sz6OnAqaloQjdkWFTpQy-gz5Cyppl0ato,4939
|
|
135
|
+
ia_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
136
|
+
ia_utils/adversarial_vector_attack.py,sha256=rrbrREKsreOyR_gp7kWkKDXBb4IE5jBTixijHvFhhtY,9629
|
|
137
|
+
ia_utils/rag.py,sha256=QDk-EDcxhjCnG9P3s0ygzQOXiYOpWOTnbIi51SVua4A,12451
|
|
138
|
+
ia_utils/vector_healing.py,sha256=TJkkSAVUMfv-VJxs8qmJoEC1CifBtr1VGuTwELjO3K0,22372
|
|
139
|
+
local_site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
+
local_site/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
+
local_site/app/server.py,sha256=Bj7lNAYvzD376HvQiaCY20T2RspiFSLoSrn3Nxn3LcM,41947
|
|
142
|
+
mcp_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
|
+
mcp_server/client.py,sha256=XJUpaMHTqmvUEGcey3sy7owINwOA8RqV825TuqvPJ9Y,15886
|
|
144
|
+
mcp_server/config.py,sha256=yLLuqa40jIXKyO6y78Taf3H_IrL3IC4k6nYG4pRrMZc,1448
|
|
145
|
+
mcp_server/models.py,sha256=CFVxzaHp7-O4_iG0SgwfmG5p8e6Vv2iU-yCBqEam5yY,23355
|
|
146
|
+
mcp_server/molecules.py,sha256=u1T7eaUWCAb5donbLrEglxmPvlc30IMKD1urKUb13-A,3296
|
|
147
|
+
mcp_server/server.py,sha256=-yXw5bDRUelz4P0h1NffxT3UXFyYoKxWJ-e-PkwUqXA,6228
|
|
148
|
+
mcp_server/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
+
mcp_server/tools/chemistry_tools.py,sha256=SdUA_4_bMPFwVJcUZDZWyslmsKk1zcFOzee4PbJRUbE,11412
|
|
150
|
+
mcp_server/tools/circuit_tools.py,sha256=s5TunV0GM7swmn5e-sl5HNmJ5IsPEumydBD90svpwSU,4281
|
|
151
|
+
mcp_server/tools/crypto_tools.py,sha256=vQ32Qx8_Qu8kfFNSCcsrKSxC42BZ1Qem5QNeIKYHLJg,3096
|
|
152
|
+
mcp_server/tools/mitigation_tools.py,sha256=2qV9ufElqDdGqDTIAFH9cBSxvHuhhKKWhyql6D2OpMk,3903
|
|
153
|
+
mcp_server/tools/noise_tools.py,sha256=j8lSLo_plSZmrtqNi90cXFZyRGmneX7R4LFCZCpG7Vc,2782
|
|
154
|
+
mcp_server/tools/retrieval_tools.py,sha256=3Dk7ROH_qbCPCiuioXHRxQAHuGH_kWGmCRJCBpw_6vs,2158
|
|
155
|
+
mcp_server/tools/system_tools.py,sha256=_K_HA-Zb905prQRJunxkCjiz5Asg110-dfI5Fj10PL4,6988
|
|
156
|
+
mcp_server/tools/wormhole_tools.py,sha256=kGJOjYz3pDQftfVE1cQFCVYzJ_61t9oF28GtCQM7uPM,7457
|
|
157
|
+
mcp_server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
158
|
+
mcp_server/utils/cache.py,sha256=UykmN57yUo25B0d2Qa7_swu3ayDgQbgblqQUiZ7SOmU,2431
|
|
159
|
+
mcp_server/utils/images.py,sha256=LQ__U5ybdub_8Z3XykQH5X0u9H-5H5sB9I57yZAukQs,3317
|
|
160
|
+
mcp_server/utils/truncation.py,sha256=gGLwegKonvYMmlUmlj-Njt0JqU2dSqat47GBfHhPU-o,1811
|
|
161
|
+
dense_evolution-8.3.0.dist-info/METADATA,sha256=GaksKJwpTeCGBuMyCThQBJ44jhgzxuzOOk80N-eqFTo,18197
|
|
162
|
+
dense_evolution-8.3.0.dist-info/WHEEL,sha256=3I5VVWZdsFlU417aCS2bMRuerS8wsfvBq99MyatBV3A,97
|
|
163
|
+
dense_evolution-8.3.0.dist-info/entry_points.txt,sha256=EjDs7d425xj9P6Y_9nDoF4yuquQQFoP7wNc4NWCDEOQ,61
|
|
164
|
+
dense_evolution-8.3.0.dist-info/top_level.txt,sha256=CC1ZM2qjv-AO48aHQ1ZJFC-3Y3FGWdObVUFabfyj2mQ,62
|
|
165
|
+
dense_evolution-8.3.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Business Source License 1.1 (BSL 1.1)
|
|
2
|
+
|
|
3
|
+
**Software:** Dense Evolution
|
|
4
|
+
**Licenziante:** Salvatore Pennacchio <jtatopenn@libero.it>
|
|
5
|
+
|
|
6
|
+
La presente Business Source License (la "Licenza") si applica al codice sorgente, agli algoritmi, ai file di configurazione e all'oggetto del software denominato "Dense Evolution" (il "Software").
|
|
7
|
+
|
|
8
|
+
## 1. Parametri della Licenza
|
|
9
|
+
|
|
10
|
+
* **Licenziante:** Salvatore Pennacchio <jtatopenn@libero.it>
|
|
11
|
+
* **Software:** Dense Evolution (inclusi aggiornamenti, patch, ottimizzazioni di kernel e opere derivate fornite dal Licenziante)
|
|
12
|
+
* **Data di Modifica:** 1 Giugno 2029
|
|
13
|
+
* **Licenza di Modifica:** Apache License, Versione 2.0 (o successive, a discrezione del Licenziante)
|
|
14
|
+
* **Uso Consentito per la Produzione:** Uso strettamente non commerciale. Per l'uso in ambienti di produzione commerciale o industrializzata, si applicano inderogabilmente i limiti stabiliti nella Sezione 4 (Concessione di Utilizzo Aggiuntivo).
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. Concessione della Licenza e Obbligo di Attribuzione
|
|
19
|
+
|
|
20
|
+
Il Licenziante concede al Licenziatario una licenza non esclusiva, valida in tutto il mondo, esente da royalty e irrevocabile (fatto salvo il pieno rispetto dei termini e delle limitazioni qui stabiliti) per l'uso, la riproduzione, da parte di terzi, la distribuzione, la modifica e la creazione di opere derivate del Software.
|
|
21
|
+
|
|
22
|
+
**Condizione Tassativa di Attribuzione:** Qualsiasi copia, porzione o opera derivata del Software (inclusi software terzi, piattaforme cloud o interfacce API che integrino Dense Evolution) deve includere in modo visibile, inalterato e permanente il copyright originale e l'attribuzione al Licenziante nella forma:
|
|
23
|
+
`© 2026 Salvatore Pennacchio <jtatopenn@libero.it> - Dense Evolution`.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 3. Condizioni e Limiti Generali di Utilizzo
|
|
28
|
+
|
|
29
|
+
Il Software può essere utilizzato, riprodotto, distribuito e modificato, a condizione che tale utilizzo non sia destinato a scopi di produzione commerciale o all'erogazione di servizi cloud/computazionali commerciali che competano direttamente con i prodotti o i servizi offerti dal Licenziante, ad eccezione di quanto espressamente previsto dalla Sezione 4 o a partire dalla Data di Modifica (Sezione 5).
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 4. Concessione di Utilizzo Aggiuntivo (Uso Commerciale Limitato)
|
|
34
|
+
|
|
35
|
+
In deroga alle restrizioni della Sezione 3, il Licenziatario è autorizzato a utilizzare il Software per scopi di produzione commerciale, industriale o di consulenza tariffata, senza necessità di una licenza separata a pagamento, esclusivamente se vengono rispettati i seguenti limiti computazionali:
|
|
36
|
+
|
|
37
|
+
* **Limite di Qubit Complessivi:** La simulazione quantistica eseguita non deve superare la dimensione di **24 qubit allocati in memoria**. Tale limite si applica alla somma cumulativa di tutte le istanze, processi, thread o nodi di cluster paralleli eseguiti contemporaneamente dalla medesima organizzazione o utente finale.
|
|
38
|
+
* **Limite di Circuiti e Campionamenti:** Il volume massimo di calcolo consentito in ambiente di produzione è fissato a **1000 strutture di circuiti quantistici distinti al giorno**, ciascuno dei quali può essere eseguito per un massimo di **10.000 campionamenti (shots) equivalenti** per singolo circuito.
|
|
39
|
+
|
|
40
|
+
Qualsiasi utilizzo che ecceda o aggiri (tramite tecniche di splitting o wrapping) uno solo dei parametri sopra indicati richiede obbligatoriamente la preventiva sottoscrizione di una licenza commerciale separata con il Licenziante.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 5. Transizione alla Licenza di Modifica
|
|
45
|
+
|
|
46
|
+
A partire dal **1 Giugno 2029** (la "Data di Modifica"), la presente Licenza cesserà automaticamente di avere effetto sul Software e su tutte le versioni rilasciate antecedentemente a tale data. Da quel momento, il Software diventerà permanentemente e liberamente disponibile sotto i termini della **Apache License 2.0**. Fino alla Data di Modifica, la presente Licenza BSL 1.1 rimarrà pienamente in vigore, valida e vincolante.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 6. Esclusione di Garanzia e Limitazione di Responsabilità
|
|
51
|
+
|
|
52
|
+
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA ALCUNA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE DEI DIRITTI DI TERZI. IN NESSUN CASO IL LICENZIANTE O L'AUTORE SARÀ RESPONSABILE PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, PER ILLECITO CIVILE O EXTRA-CONTRATTUALE, DERIVANTE DA, O IN CONNESSIONE CON IL SOFTWARE, IL SUO UTILIZZO O ALTRE OPERAZIONI EFFETTUATE SUL SOFTWARE STESSO.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 7. Legge Applicabile e Foro Competente
|
|
57
|
+
|
|
58
|
+
La presente Licenza è regolata, interpretata e disciplinata in conformità alle leggi dello **Stato Italiano**. Qualsiasi controversia derivante da, o connessa con l'interpretazione, l'esecuzione o la validità della presente Licenza sarà devoluta alla giurisdizione esclusiva del **Foro di Milano**.
|
ia_utils/__init__.py
ADDED
|
File without changes
|