diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:30:57 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-18 04:30:57 +0000 |
commit | a4d5202f3f15e2c39c2d5ee88c1efb9ecaa148c5 (patch) | |
tree | 1051f233413a77f063191bc3c386470a927bad85 | |
parent | 0e69f236aa74473b514df3b44013281515942b5d (diff) |
automatic import of python-blueqat
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-blueqat.spec | 697 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 699 insertions, 0 deletions
@@ -0,0 +1 @@ +/blueqat-2.0.4.tar.gz diff --git a/python-blueqat.spec b/python-blueqat.spec new file mode 100644 index 0000000..210c344 --- /dev/null +++ b/python-blueqat.spec @@ -0,0 +1,697 @@ +%global _empty_manifest_terminate_build 0 +Name: python-blueqat +Version: 2.0.4 +Release: 1 +Summary: Quantum Computer Library for Everyone +License: Apache 2 +URL: https://github.com/Blueqat/Blueqat +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b4/d9/58aebf50fc2f1f52363680ee70936c677789963fa329b4768a0c7f911a96/blueqat-2.0.4.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-scipy +Requires: python3-networkx +Requires: python3-matplotlib +Requires: python3-autoray +Requires: python3-quimb +Requires: python3-opt-einsum + +%description + + +# blueqat +A Quantum Computing SDK + +### Version +[](https://badge.fury.io/py/blueqat) + +### Tutorial +https://github.com/Blueqat/Blueqat-tutorials + +### Notice +The back end has been changed to tensor network. The previous backend environment can still be used with .run(backend="numpy"). + +### Install +``` +git clone https://github.com/Blueqat/Blueqat +cd Blueqat +pip3 install -e . +``` + +or + +``` +pip3 install blueqat +``` + +### Circuit +```python +from blueqat import Circuit +import math + +#number of qubit is not specified +c = Circuit() + +#if you want to specified the number of qubit +c = Circuit(50) #50qubits +``` + +### Method Chain +```python +# write as chain +Circuit().h[0].x[0].z[0] + +# write in separately +c = Circuit().h[0] +c.x[0].z[0] +``` + +### Slice +```python +Circuit().z[1:3] # Zgate on 1,2 +Circuit().x[:3] # Xgate on (0, 1, 2) +Circuit().h[:] # Hgate on all qubits +Circuit().x[1, 2] # 1qubit gate with comma +``` + +### Rotation Gate +```python +Circuit().rz(math.pi / 4)[0] +``` + +### Run +```python +from blueqat import Circuit +Circuit(50).h[:].run() +``` + +### Run(shots=n) +```python +Circuit(100).x[:].run(shots=100) +# => Counter({'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111': 100}) +``` + +### Single Amplitude +```python +Circuit(4).h[:].run(amplitude="0101") +``` + +### Expectation value of hamiltonian +```python +from blueqat.pauli import Z +hamiltonian = 1*Z[0]+1*Z[1] +Circuit(4).x[:].run(hamiltonian=hamiltonian) +# => -2.0 +``` + +### Blueqat to QASM +```python +Circuit().h[0].to_qasm() + +#OPENQASM 2.0; +#include "qelib1.inc"; +#qreg q[1]; +#creg c[1]; +#h q[0]; +``` + +### Hamiltonian +```python +from blueqat.pauli import * + +hamiltonian1 = (1.23 * Z[0] + 4.56 * X[1] * Z[2]) ** 2 +hamiltonian2 = (2.46 * Y[0] + 5.55 * Z[1] * X[2] * X[1]) ** 2 +hamiltonian = hamiltonian1 + hamiltonian2 +print(hamiltonian) + +# => 7.5645*I + 5.6088*Z[0]*X[1]*Z[2] + 5.6088*X[1]*Z[2]*Z[0] + 20.793599999999998*X[1]*Z[2]*X[1]*Z[2] + 13.652999999999999*Y[0]*Z[1]*X[2]*X[1] + 13.652999999999999*Z[1]*X[2]*X[1]*Y[0] + 30.8025*Z[1]*X[2]*X[1]*Z[1]*X[2]*X[1] +``` + +### Simplify the Hamiltonian +```python +hamiltonian = hamiltonian.simplify() +print(hamiltonian) + +#=>-2.4444000000000017*I + 27.305999999999997j*Y[0]*Y[1]*X[2] + 11.2176*Z[0]*X[1]*Z[2] +``` + +### QUBO Hamiltonian +```python +from blueqat.pauli import qubo_bit as q + +hamiltonian = -3*q(0)-3*q(1)-3*q(2)-3*q(3)-3*q(4)+2*q(0)*q(1)+2*q(0)*q(2)+2*q(0)*q(3)+2*q(0)*q(4) +print(hamiltonian) + +# => -5.5*I + 1.0*Z[1] + 1.0*Z[2] + 1.0*Z[3] + 1.0*Z[4] + 0.5*Z[0]*Z[1] + 0.5*Z[0]*Z[2] + 0.5*Z[0]*Z[3] - 0.5*Z[0] + 0.5*Z[0]*Z[4] +``` + +### Time Evolution +```python +hamiltonian = [1.0*Z(0), 1.0*X[0]] +a = [term.get_time_evolution() for term in hamiltonian] + +time_evolution = Circuit().h[0] +for evo in a: + evo(time_evolution, np.random.rand()) + +print(time_evolution) + +# => Circuit(1).h[0].rz(-1.4543063361067243)[0].h[0].rz(-1.8400416676737137)[0].h[0] +``` + +### QAOA +```python +from blueqat import Circuit +from blueqat.utils import qaoa +from blueqat.pauli import qubo_bit as q +from blueqat.pauli import X,Y,Z,I + +hamiltonian = q(0)-q(1) +step = 1 + +result = qaoa(hamiltonian, step) +result.circuit.run(shots=100) + +# => Counter({'01': 99, '11': 1}) +``` + + +### Circuit Drawing Backend +```python +from blueqat import vqe +from blueqat.pauli import * +from blueqat.pauli import qubo_bit as q + +#hamiltonian = q(0)-3*q(1)+2*q(0)*q(1)+3*q(2)*q(3)+q(4)*q(7) +hamiltonian = Z[0]-3*Z[1]+2*Z[0]*Z[1]+3*Z[2]*Z[3]+Z[4] +step = 8 + +result = vqe.Vqe(vqe.QaoaAnsatz(hamiltonian, step)).run() +result.circuit.run(backend='draw') +``` + + + +### Cloud System Connection (API Key is required) +```python +from bqcloud import register_api +api = register_api("Your API Key") + +from bqcloud import load_api +api = load_api() + +from blueqat import Circuit +from bqcloud import Device + +task = api.execute(Circuit().h[0].cx[0, 1], Device.IonQDevice, 10) +#task = api.execute(Circuit().h[0].cx[0, 1], Device.AspenM1, 10) + +# Wait 10 sec. If complete, result is returned, otherwise, None is returned. +result = task.wait(timeout=10) + +if result: + print(result.shots()) +else: + print("timeout") +``` + +### Document +https://blueqat.readthedocs.io/en/latest/ + +### Contributors +[Contributors](https://github.com/Blueqat/Blueqat/graphs/contributors) + +### Disclaimer +Copyright 2022 The Blueqat Developers. + + +%package -n python3-blueqat +Summary: Quantum Computer Library for Everyone +Provides: python-blueqat +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-blueqat + + +# blueqat +A Quantum Computing SDK + +### Version +[](https://badge.fury.io/py/blueqat) + +### Tutorial +https://github.com/Blueqat/Blueqat-tutorials + +### Notice +The back end has been changed to tensor network. The previous backend environment can still be used with .run(backend="numpy"). + +### Install +``` +git clone https://github.com/Blueqat/Blueqat +cd Blueqat +pip3 install -e . +``` + +or + +``` +pip3 install blueqat +``` + +### Circuit +```python +from blueqat import Circuit +import math + +#number of qubit is not specified +c = Circuit() + +#if you want to specified the number of qubit +c = Circuit(50) #50qubits +``` + +### Method Chain +```python +# write as chain +Circuit().h[0].x[0].z[0] + +# write in separately +c = Circuit().h[0] +c.x[0].z[0] +``` + +### Slice +```python +Circuit().z[1:3] # Zgate on 1,2 +Circuit().x[:3] # Xgate on (0, 1, 2) +Circuit().h[:] # Hgate on all qubits +Circuit().x[1, 2] # 1qubit gate with comma +``` + +### Rotation Gate +```python +Circuit().rz(math.pi / 4)[0] +``` + +### Run +```python +from blueqat import Circuit +Circuit(50).h[:].run() +``` + +### Run(shots=n) +```python +Circuit(100).x[:].run(shots=100) +# => Counter({'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111': 100}) +``` + +### Single Amplitude +```python +Circuit(4).h[:].run(amplitude="0101") +``` + +### Expectation value of hamiltonian +```python +from blueqat.pauli import Z +hamiltonian = 1*Z[0]+1*Z[1] +Circuit(4).x[:].run(hamiltonian=hamiltonian) +# => -2.0 +``` + +### Blueqat to QASM +```python +Circuit().h[0].to_qasm() + +#OPENQASM 2.0; +#include "qelib1.inc"; +#qreg q[1]; +#creg c[1]; +#h q[0]; +``` + +### Hamiltonian +```python +from blueqat.pauli import * + +hamiltonian1 = (1.23 * Z[0] + 4.56 * X[1] * Z[2]) ** 2 +hamiltonian2 = (2.46 * Y[0] + 5.55 * Z[1] * X[2] * X[1]) ** 2 +hamiltonian = hamiltonian1 + hamiltonian2 +print(hamiltonian) + +# => 7.5645*I + 5.6088*Z[0]*X[1]*Z[2] + 5.6088*X[1]*Z[2]*Z[0] + 20.793599999999998*X[1]*Z[2]*X[1]*Z[2] + 13.652999999999999*Y[0]*Z[1]*X[2]*X[1] + 13.652999999999999*Z[1]*X[2]*X[1]*Y[0] + 30.8025*Z[1]*X[2]*X[1]*Z[1]*X[2]*X[1] +``` + +### Simplify the Hamiltonian +```python +hamiltonian = hamiltonian.simplify() +print(hamiltonian) + +#=>-2.4444000000000017*I + 27.305999999999997j*Y[0]*Y[1]*X[2] + 11.2176*Z[0]*X[1]*Z[2] +``` + +### QUBO Hamiltonian +```python +from blueqat.pauli import qubo_bit as q + +hamiltonian = -3*q(0)-3*q(1)-3*q(2)-3*q(3)-3*q(4)+2*q(0)*q(1)+2*q(0)*q(2)+2*q(0)*q(3)+2*q(0)*q(4) +print(hamiltonian) + +# => -5.5*I + 1.0*Z[1] + 1.0*Z[2] + 1.0*Z[3] + 1.0*Z[4] + 0.5*Z[0]*Z[1] + 0.5*Z[0]*Z[2] + 0.5*Z[0]*Z[3] - 0.5*Z[0] + 0.5*Z[0]*Z[4] +``` + +### Time Evolution +```python +hamiltonian = [1.0*Z(0), 1.0*X[0]] +a = [term.get_time_evolution() for term in hamiltonian] + +time_evolution = Circuit().h[0] +for evo in a: + evo(time_evolution, np.random.rand()) + +print(time_evolution) + +# => Circuit(1).h[0].rz(-1.4543063361067243)[0].h[0].rz(-1.8400416676737137)[0].h[0] +``` + +### QAOA +```python +from blueqat import Circuit +from blueqat.utils import qaoa +from blueqat.pauli import qubo_bit as q +from blueqat.pauli import X,Y,Z,I + +hamiltonian = q(0)-q(1) +step = 1 + +result = qaoa(hamiltonian, step) +result.circuit.run(shots=100) + +# => Counter({'01': 99, '11': 1}) +``` + + +### Circuit Drawing Backend +```python +from blueqat import vqe +from blueqat.pauli import * +from blueqat.pauli import qubo_bit as q + +#hamiltonian = q(0)-3*q(1)+2*q(0)*q(1)+3*q(2)*q(3)+q(4)*q(7) +hamiltonian = Z[0]-3*Z[1]+2*Z[0]*Z[1]+3*Z[2]*Z[3]+Z[4] +step = 8 + +result = vqe.Vqe(vqe.QaoaAnsatz(hamiltonian, step)).run() +result.circuit.run(backend='draw') +``` + + + +### Cloud System Connection (API Key is required) +```python +from bqcloud import register_api +api = register_api("Your API Key") + +from bqcloud import load_api +api = load_api() + +from blueqat import Circuit +from bqcloud import Device + +task = api.execute(Circuit().h[0].cx[0, 1], Device.IonQDevice, 10) +#task = api.execute(Circuit().h[0].cx[0, 1], Device.AspenM1, 10) + +# Wait 10 sec. If complete, result is returned, otherwise, None is returned. +result = task.wait(timeout=10) + +if result: + print(result.shots()) +else: + print("timeout") +``` + +### Document +https://blueqat.readthedocs.io/en/latest/ + +### Contributors +[Contributors](https://github.com/Blueqat/Blueqat/graphs/contributors) + +### Disclaimer +Copyright 2022 The Blueqat Developers. + + +%package help +Summary: Development documents and examples for blueqat +Provides: python3-blueqat-doc +%description help + + +# blueqat +A Quantum Computing SDK + +### Version +[](https://badge.fury.io/py/blueqat) + +### Tutorial +https://github.com/Blueqat/Blueqat-tutorials + +### Notice +The back end has been changed to tensor network. The previous backend environment can still be used with .run(backend="numpy"). + +### Install +``` +git clone https://github.com/Blueqat/Blueqat +cd Blueqat +pip3 install -e . +``` + +or + +``` +pip3 install blueqat +``` + +### Circuit +```python +from blueqat import Circuit +import math + +#number of qubit is not specified +c = Circuit() + +#if you want to specified the number of qubit +c = Circuit(50) #50qubits +``` + +### Method Chain +```python +# write as chain +Circuit().h[0].x[0].z[0] + +# write in separately +c = Circuit().h[0] +c.x[0].z[0] +``` + +### Slice +```python +Circuit().z[1:3] # Zgate on 1,2 +Circuit().x[:3] # Xgate on (0, 1, 2) +Circuit().h[:] # Hgate on all qubits +Circuit().x[1, 2] # 1qubit gate with comma +``` + +### Rotation Gate +```python +Circuit().rz(math.pi / 4)[0] +``` + +### Run +```python +from blueqat import Circuit +Circuit(50).h[:].run() +``` + +### Run(shots=n) +```python +Circuit(100).x[:].run(shots=100) +# => Counter({'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111': 100}) +``` + +### Single Amplitude +```python +Circuit(4).h[:].run(amplitude="0101") +``` + +### Expectation value of hamiltonian +```python +from blueqat.pauli import Z +hamiltonian = 1*Z[0]+1*Z[1] +Circuit(4).x[:].run(hamiltonian=hamiltonian) +# => -2.0 +``` + +### Blueqat to QASM +```python +Circuit().h[0].to_qasm() + +#OPENQASM 2.0; +#include "qelib1.inc"; +#qreg q[1]; +#creg c[1]; +#h q[0]; +``` + +### Hamiltonian +```python +from blueqat.pauli import * + +hamiltonian1 = (1.23 * Z[0] + 4.56 * X[1] * Z[2]) ** 2 +hamiltonian2 = (2.46 * Y[0] + 5.55 * Z[1] * X[2] * X[1]) ** 2 +hamiltonian = hamiltonian1 + hamiltonian2 +print(hamiltonian) + +# => 7.5645*I + 5.6088*Z[0]*X[1]*Z[2] + 5.6088*X[1]*Z[2]*Z[0] + 20.793599999999998*X[1]*Z[2]*X[1]*Z[2] + 13.652999999999999*Y[0]*Z[1]*X[2]*X[1] + 13.652999999999999*Z[1]*X[2]*X[1]*Y[0] + 30.8025*Z[1]*X[2]*X[1]*Z[1]*X[2]*X[1] +``` + +### Simplify the Hamiltonian +```python +hamiltonian = hamiltonian.simplify() +print(hamiltonian) + +#=>-2.4444000000000017*I + 27.305999999999997j*Y[0]*Y[1]*X[2] + 11.2176*Z[0]*X[1]*Z[2] +``` + +### QUBO Hamiltonian +```python +from blueqat.pauli import qubo_bit as q + +hamiltonian = -3*q(0)-3*q(1)-3*q(2)-3*q(3)-3*q(4)+2*q(0)*q(1)+2*q(0)*q(2)+2*q(0)*q(3)+2*q(0)*q(4) +print(hamiltonian) + +# => -5.5*I + 1.0*Z[1] + 1.0*Z[2] + 1.0*Z[3] + 1.0*Z[4] + 0.5*Z[0]*Z[1] + 0.5*Z[0]*Z[2] + 0.5*Z[0]*Z[3] - 0.5*Z[0] + 0.5*Z[0]*Z[4] +``` + +### Time Evolution +```python +hamiltonian = [1.0*Z(0), 1.0*X[0]] +a = [term.get_time_evolution() for term in hamiltonian] + +time_evolution = Circuit().h[0] +for evo in a: + evo(time_evolution, np.random.rand()) + +print(time_evolution) + +# => Circuit(1).h[0].rz(-1.4543063361067243)[0].h[0].rz(-1.8400416676737137)[0].h[0] +``` + +### QAOA +```python +from blueqat import Circuit +from blueqat.utils import qaoa +from blueqat.pauli import qubo_bit as q +from blueqat.pauli import X,Y,Z,I + +hamiltonian = q(0)-q(1) +step = 1 + +result = qaoa(hamiltonian, step) +result.circuit.run(shots=100) + +# => Counter({'01': 99, '11': 1}) +``` + + +### Circuit Drawing Backend +```python +from blueqat import vqe +from blueqat.pauli import * +from blueqat.pauli import qubo_bit as q + +#hamiltonian = q(0)-3*q(1)+2*q(0)*q(1)+3*q(2)*q(3)+q(4)*q(7) +hamiltonian = Z[0]-3*Z[1]+2*Z[0]*Z[1]+3*Z[2]*Z[3]+Z[4] +step = 8 + +result = vqe.Vqe(vqe.QaoaAnsatz(hamiltonian, step)).run() +result.circuit.run(backend='draw') +``` + + + +### Cloud System Connection (API Key is required) +```python +from bqcloud import register_api +api = register_api("Your API Key") + +from bqcloud import load_api +api = load_api() + +from blueqat import Circuit +from bqcloud import Device + +task = api.execute(Circuit().h[0].cx[0, 1], Device.IonQDevice, 10) +#task = api.execute(Circuit().h[0].cx[0, 1], Device.AspenM1, 10) + +# Wait 10 sec. If complete, result is returned, otherwise, None is returned. +result = task.wait(timeout=10) + +if result: + print(result.shots()) +else: + print("timeout") +``` + +### Document +https://blueqat.readthedocs.io/en/latest/ + +### Contributors +[Contributors](https://github.com/Blueqat/Blueqat/graphs/contributors) + +### Disclaimer +Copyright 2022 The Blueqat Developers. + + +%prep +%autosetup -n blueqat-2.0.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-blueqat -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +177de29a40fb593f4ae5136830b07c06 blueqat-2.0.4.tar.gz |