Skip to content

Commit

Permalink
merge develop, fix new binders, regenerate stubs
Browse files Browse the repository at this point in the history
  • Loading branch information
trvto committed Aug 30, 2023
1 parent fef9f00 commit 053bbff
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 8 deletions.
6 changes: 2 additions & 4 deletions pytket/binders/pauli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,8 @@ PYBIND11_MODULE(pauli, m) {
"__hash__",
[](const QubitPauliTensor &qps) { return hash_value(qps); })
.def("__repr__", &QubitPauliTensor::to_str)
.def("__eq__", &QubitPauliTensor::operator==)
.def("__ne__", &QubitPauliTensor::operator!=)
.def("__eq__", &py_equals<QubitPauliTensor>)
.def("__ne__", &py_not_equals<QubitPauliTensor>)
.def("__lt__", &QubitPauliTensor::operator<)
.def(
"__getitem__", [](const QubitPauliTensor &qpt,
Expand Down Expand Up @@ -423,7 +423,5 @@ PYBIND11_MODULE(pauli, m) {
t[1].cast<std::list<Pauli>>()),
t[2].cast<Complex>());
}));
;
}

} // namespace tket
11 changes: 11 additions & 0 deletions pytket/pytket/_tket/circuit.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,10 @@ class Circuit:
def add_classicalexpbox_bit(self, expression: object, target: List[pytket._tket.unit_id.Bit], **kwargs: Any) -> Circuit: ...
def add_classicalexpbox_register(self, expression: object, target: List[pytket._tket.unit_id.Bit], **kwargs: Any) -> Circuit: ...
@overload
def add_conjugation_box(self, box: ConjugationBox, args: List[pytket._tket.unit_id.UnitID], **kwargs: Any) -> Circuit: ...
@overload
def add_conjugation_box(self, box: ConjugationBox, args: List[int], **kwargs: Any) -> Circuit: ...
@overload
def add_custom_gate(self, definition: CustomGateDef, params: List[Union[sympy.Expr,float]], qubits: List[int], **kwargs: Any) -> Circuit: ...
@overload
def add_custom_gate(self, definition: CustomGateDef, params: List[Union[sympy.Expr,float]], qubits: List[pytket._tket.unit_id.Qubit], **kwargs: Any) -> Circuit: ...
Expand Down Expand Up @@ -591,6 +595,13 @@ class Conditional(Op):
@property
def width(self) -> int: ...

class ConjugationBox(Op):
def __init__(self, compute: Op, action: Op, uncompute: Optional[Op] = ...) -> None: ...
def get_action(self) -> Op: ...
def get_circuit(self) -> Circuit: ...
def get_compute(self) -> Op: ...
def get_uncompute(self) -> Optional[Op]: ...

class CopyBitsOp(ClassicalEvalOp):
def __init__(self, *args: Any, **kwargs: Any) -> None: ...

Expand Down
40 changes: 40 additions & 0 deletions pytket/pytket/_tket/pauli.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,44 @@ class QubitPauliString:
@property
def map(self) -> Dict[pytket._tket.unit_id.Qubit,Pauli]: ...

class QubitPauliTensor:
coeff: complex
string: QubitPauliString
@overload
def __init__(self, coeff: complex = ...) -> None: ...
@overload
def __init__(self, qubit: pytket._tket.unit_id.Qubit, pauli: Pauli, coeff: complex = ...) -> None: ...
@overload
def __init__(self, qubits: List[pytket._tket.unit_id.Qubit], paulis: List[Pauli], coeff: complex = ...) -> None: ...
@overload
def __init__(self, map: Dict[pytket._tket.unit_id.Qubit,Pauli], coeff: complex = ...) -> None: ...
@overload
def __init__(self, string: QubitPauliString, coeff: complex = ...) -> None: ...
def commutes_with(self, other: QubitPauliTensor) -> bool: ...
def compress(self) -> None: ...
@overload
def dot_state(self, state: NDArray[numpy.complex128]) -> NDArray[numpy.complex128]: ...
@overload
def dot_state(self, state: NDArray[numpy.complex128], qubits: List[pytket._tket.unit_id.Qubit]) -> NDArray[numpy.complex128]: ...
@overload
def state_expectation(self, state: NDArray[numpy.complex128]) -> complex: ...
@overload
def state_expectation(self, state: NDArray[numpy.complex128], qubits: List[pytket._tket.unit_id.Qubit]) -> complex: ...
@overload
def to_sparse_matrix(self) -> scipy.sparse.csc_matrix[numpy.complex128]: ...
@overload
def to_sparse_matrix(self, n_qubits: int) -> scipy.sparse.csc_matrix[numpy.complex128]: ...
@overload
def to_sparse_matrix(self, qubits: List[pytket._tket.unit_id.Qubit]) -> scipy.sparse.csc_matrix[numpy.complex128]: ...
def __eq__(self, arg0: object) -> bool: ...
def __getitem__(self, arg0: pytket._tket.unit_id.Qubit) -> Pauli: ...
def __getstate__(self) -> tuple: ...
def __hash__(self) -> int: ...
def __lt__(self, arg0: QubitPauliTensor) -> bool: ...
def __mul__(self, arg0: QubitPauliTensor) -> QubitPauliTensor: ...
def __ne__(self, arg0: object) -> bool: ...
def __rmul__(self, arg0: complex) -> QubitPauliTensor: ...
def __setitem__(self, arg0: pytket._tket.unit_id.Qubit, arg1: Pauli) -> None: ...
def __setstate__(self, arg0: tuple) -> None: ...

def pauli_string_mult(qubitpaulistring1: QubitPauliString, qubitpaulistring2: QubitPauliString) -> Tuple[QubitPauliString,complex]: ...
12 changes: 8 additions & 4 deletions pytket/pytket/_tket/tableau.pyi
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
from numpy.typing import NDArray
from typing import Any, List
from typing import List

from typing import overload
import numpy
import pytket._tket.circuit
import pytket._tket.pauli
import pytket._tket.unit_id

class UnitaryTableau:
@overload
def __init__(self, nqb: int) -> None: ...
@overload
def __init__(self, xx: NDArray[numpy.bool_], xz: NDArray[numpy.bool_], xph: NDArray[numpy.bool_], zx: NDArray[numpy.bool_], zz: NDArray[numpy.bool_], zph: NDArray[numpy.bool_]) -> None: ...
@overload
def __init__(self, arg0: pytket._tket.circuit.Circuit) -> None: ...
def apply_gate_at_end(self, arg0: pytket._tket.circuit.OpType, arg1: List[pytket._tket.unit_id.Qubit]) -> None: ...
def apply_gate_at_front(self, arg0: pytket._tket.circuit.OpType, arg1: List[pytket._tket.unit_id.Qubit]) -> None: ...
def get_row_product(self, *args: Any, **kwargs: Any) -> Any: ...
def get_xrow(self, *args: Any, **kwargs: Any) -> Any: ...
def get_zrow(self, *args: Any, **kwargs: Any) -> Any: ...
def get_row_product(self, paulis: pytket._tket.pauli.QubitPauliTensor) -> pytket._tket.pauli.QubitPauliTensor: ...
def get_xrow(self, qb: pytket._tket.unit_id.Qubit) -> pytket._tket.pauli.QubitPauliTensor: ...
def get_zrow(self, qb: pytket._tket.unit_id.Qubit) -> pytket._tket.pauli.QubitPauliTensor: ...
def to_circuit(self) -> pytket._tket.circuit.Circuit: ...

class UnitaryTableauBox(pytket._tket.circuit.Op):
@overload
Expand Down

0 comments on commit 053bbff

Please sign in to comment.