Skip to content

Lattice

AddressQubit dataclass

AddressQubit(data: int)

Bases: QubitLike


              flowchart TD
              bloqade.analysis.address.lattice.AddressQubit[AddressQubit]
              bloqade.analysis.address.lattice.QubitLike[QubitLike]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.QubitLike --> bloqade.analysis.address.lattice.AddressQubit
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.QubitLike
                



              click bloqade.analysis.address.lattice.AddressQubit href "" "bloqade.analysis.address.lattice.AddressQubit"
              click bloqade.analysis.address.lattice.QubitLike href "" "bloqade.analysis.address.lattice.QubitLike"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a single qubit with a known address.

AddressReg dataclass

AddressReg(data: Sequence[int])

Bases: RegisterLike


              flowchart TD
              bloqade.analysis.address.lattice.AddressReg[AddressReg]
              bloqade.analysis.address.lattice.RegisterLike[RegisterLike]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.RegisterLike --> bloqade.analysis.address.lattice.AddressReg
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.RegisterLike
                



              click bloqade.analysis.address.lattice.AddressReg href "" "bloqade.analysis.address.lattice.AddressReg"
              click bloqade.analysis.address.lattice.RegisterLike href "" "bloqade.analysis.address.lattice.RegisterLike"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a container of qubits with known indices.

Bottom dataclass

Bottom()

Bases: Address


              flowchart TD
              bloqade.analysis.address.lattice.Bottom[Bottom]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.Bottom
                


              click bloqade.analysis.address.lattice.Bottom href "" "bloqade.analysis.address.lattice.Bottom"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

Error during interpretation

ConstResult dataclass

ConstResult(result: Result)

Bases: Address


              flowchart TD
              bloqade.analysis.address.lattice.ConstResult[ConstResult]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.ConstResult
                


              click bloqade.analysis.address.lattice.ConstResult href "" "bloqade.analysis.address.lattice.ConstResult"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

Stores a constant prop result in the lattice

PartialIList dataclass

PartialIList(data: tuple[Address, ...])

Bases: StaticContainer


              flowchart TD
              bloqade.analysis.address.lattice.PartialIList[PartialIList]
              bloqade.analysis.address.lattice.StaticContainer[StaticContainer]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.StaticContainer --> bloqade.analysis.address.lattice.PartialIList
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.StaticContainer
                



              click bloqade.analysis.address.lattice.PartialIList href "" "bloqade.analysis.address.lattice.PartialIList"
              click bloqade.analysis.address.lattice.StaticContainer href "" "bloqade.analysis.address.lattice.StaticContainer"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a partially known ilist.

PartialIListMeta

Bases: LatticeAttributeMeta


              flowchart TD
              bloqade.analysis.address.lattice.PartialIListMeta[PartialIListMeta]

              

              click bloqade.analysis.address.lattice.PartialIListMeta href "" "bloqade.analysis.address.lattice.PartialIListMeta"
            

This metaclass assures that PartialILists of ConstResults or AddressQubits are canonicalized to a single ConstResult or AddressReg respectively.

because AddressReg is a specialization of PartialIList, being a container of pure qubit addresses. For Operations that act in generic containers (e.g., ilist.ForEach), AddressReg is treated as PartialIList but for other types of analysis it is often useful to distinguish between a generic IList and a pure qubit address list.

Inside the method tables the GetValuesMixin implements a method that effectively undoes this canonicalization.

PartialLambda dataclass

PartialLambda(
    argnames: list[str],
    code: Statement,
    captured: tuple[Address, ...],
)

Bases: Address


              flowchart TD
              bloqade.analysis.address.lattice.PartialLambda[PartialLambda]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.PartialLambda
                


              click bloqade.analysis.address.lattice.PartialLambda href "" "bloqade.analysis.address.lattice.PartialLambda"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

Represents a partially known lambda function

PartialTuple dataclass

PartialTuple(data: tuple[Address, ...])

Bases: StaticContainer


              flowchart TD
              bloqade.analysis.address.lattice.PartialTuple[PartialTuple]
              bloqade.analysis.address.lattice.StaticContainer[StaticContainer]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.StaticContainer --> bloqade.analysis.address.lattice.PartialTuple
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.StaticContainer
                



              click bloqade.analysis.address.lattice.PartialTuple href "" "bloqade.analysis.address.lattice.PartialTuple"
              click bloqade.analysis.address.lattice.StaticContainer href "" "bloqade.analysis.address.lattice.StaticContainer"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a partially known tuple.

PartialTupleMeta

Bases: LatticeAttributeMeta


              flowchart TD
              bloqade.analysis.address.lattice.PartialTupleMeta[PartialTupleMeta]

              

              click bloqade.analysis.address.lattice.PartialTupleMeta href "" "bloqade.analysis.address.lattice.PartialTupleMeta"
            

This metaclass assures that PartialTuples of ConstResults are canonicalized to a single ConstResult.

StaticContainer dataclass

StaticContainer(data: tuple[Address, ...])

Bases: Address


              flowchart TD
              bloqade.analysis.address.lattice.StaticContainer[StaticContainer]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.StaticContainer
                


              click bloqade.analysis.address.lattice.StaticContainer href "" "bloqade.analysis.address.lattice.StaticContainer"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing the results of any static container, e. g. ilist or tuple.

Unknown dataclass

Unknown()

Bases: Address


              flowchart TD
              bloqade.analysis.address.lattice.Unknown[Unknown]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.Unknown
                


              click bloqade.analysis.address.lattice.Unknown href "" "bloqade.analysis.address.lattice.Unknown"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

Can't determine if it is an address or constant.

UnknownQubit dataclass

UnknownQubit()

Bases: QubitLike


              flowchart TD
              bloqade.analysis.address.lattice.UnknownQubit[UnknownQubit]
              bloqade.analysis.address.lattice.QubitLike[QubitLike]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.QubitLike --> bloqade.analysis.address.lattice.UnknownQubit
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.QubitLike
                



              click bloqade.analysis.address.lattice.UnknownQubit href "" "bloqade.analysis.address.lattice.UnknownQubit"
              click bloqade.analysis.address.lattice.QubitLike href "" "bloqade.analysis.address.lattice.QubitLike"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a single qubit with an unknown address.

UnknownReg dataclass

UnknownReg()

Bases: RegisterLike


              flowchart TD
              bloqade.analysis.address.lattice.UnknownReg[UnknownReg]
              bloqade.analysis.address.lattice.RegisterLike[RegisterLike]
              bloqade.analysis.address.lattice.Address[Address]

                              bloqade.analysis.address.lattice.RegisterLike --> bloqade.analysis.address.lattice.UnknownReg
                                bloqade.analysis.address.lattice.Address --> bloqade.analysis.address.lattice.RegisterLike
                



              click bloqade.analysis.address.lattice.UnknownReg href "" "bloqade.analysis.address.lattice.UnknownReg"
              click bloqade.analysis.address.lattice.RegisterLike href "" "bloqade.analysis.address.lattice.RegisterLike"
              click bloqade.analysis.address.lattice.Address href "" "bloqade.analysis.address.lattice.Address"
            

A lattice element representing a container of qubits with unknown indices.