libqasm
library for handling cQASM files
|
This can be returned by user-defined functions as a placeholder value for something that needs to be evaluated at runtime rather than during constant propagation. More...
Public Member Functions | |
Function (const cqasm::v1::primitives::Str &name=cqasm::v1::primitives::initialize< cqasm::v1::primitives::Str >(), const Any< cqasm::v1::values::Node > &operands=cqasm::v1::primitives::initialize< Any< cqasm::v1::values::Node >>(), const One< cqasm::v1::types::Node > &return_type=cqasm::v1::primitives::initialize< One< cqasm::v1::types::Node >>()) | |
Constructor. More... | |
void | find_reachable (::tree::base::PointerMap &map) const override |
Registers all reachable nodes with the given PointerMap. More... | |
void | check_complete (const ::tree::base::PointerMap &map) const override |
Returns whether this Function is complete/fully defined. More... | |
NodeType | type () const override |
Returns the NodeType of this node. More... | |
Function * | as_function () override |
Interprets this node to a node of type Function. More... | |
const Function * | as_function () const override |
Interprets this node to a node of type Function. More... | |
One< Node > | copy () const override |
Returns a shallow copy of this node. More... | |
One< Node > | clone () const override |
Returns a deep copy of this node. More... | |
bool | equals (const Node &rhs) const override |
Value-based equality operator. More... | |
bool | operator== (const Node &rhs) const override |
Pointer-based equality operator. More... | |
void | serialize (::tree::cbor::MapWriter &map, const ::tree::base::PointerMap &ids) const override |
Serializes this node to the given map. More... | |
![]() | |
bool | operator!= (const Node &rhs) const |
Pointer-based inequality operator. More... | |
template<typename T > | |
T | visit (Visitor< T > &visitor) |
Visit this object. More... | |
void | dump (std::ostream &out=std::cout, int indent=0) |
Writes a debug dump of this node to the given stream. More... | |
void | dump_seq (std::ostream &out=std::cout, int indent=0) |
Alternate debug dump that represents links and node uniqueness via sequence number tags. More... | |
virtual BitRefs * | as_bit_refs () |
Interprets this node to a node of type BitRefs. More... | |
virtual const BitRefs * | as_bit_refs () const |
Interprets this node to a node of type BitRefs. More... | |
virtual ConstAxis * | as_const_axis () |
Interprets this node to a node of type ConstAxis. More... | |
virtual const ConstAxis * | as_const_axis () const |
Interprets this node to a node of type ConstAxis. More... | |
virtual ConstBool * | as_const_bool () |
Interprets this node to a node of type ConstBool. More... | |
virtual const ConstBool * | as_const_bool () const |
Interprets this node to a node of type ConstBool. More... | |
virtual ConstComplex * | as_const_complex () |
Interprets this node to a node of type ConstComplex. More... | |
virtual const ConstComplex * | as_const_complex () const |
Interprets this node to a node of type ConstComplex. More... | |
virtual ConstComplexMatrix * | as_const_complex_matrix () |
Interprets this node to a node of type ConstComplexMatrix. More... | |
virtual const ConstComplexMatrix * | as_const_complex_matrix () const |
Interprets this node to a node of type ConstComplexMatrix. More... | |
virtual ConstInt * | as_const_int () |
Interprets this node to a node of type ConstInt. More... | |
virtual const ConstInt * | as_const_int () const |
Interprets this node to a node of type ConstInt. More... | |
virtual ConstJson * | as_const_json () |
Interprets this node to a node of type ConstJson. More... | |
virtual const ConstJson * | as_const_json () const |
Interprets this node to a node of type ConstJson. More... | |
virtual ConstReal * | as_const_real () |
Interprets this node to a node of type ConstReal. More... | |
virtual const ConstReal * | as_const_real () const |
Interprets this node to a node of type ConstReal. More... | |
virtual ConstRealMatrix * | as_const_real_matrix () |
Interprets this node to a node of type ConstRealMatrix. More... | |
virtual const ConstRealMatrix * | as_const_real_matrix () const |
Interprets this node to a node of type ConstRealMatrix. More... | |
virtual ConstString * | as_const_string () |
Interprets this node to a node of type ConstString. More... | |
virtual const ConstString * | as_const_string () const |
Interprets this node to a node of type ConstString. More... | |
virtual Constant * | as_constant () |
Interprets this node to a node of type Constant. More... | |
virtual const Constant * | as_constant () const |
Interprets this node to a node of type Constant. More... | |
virtual QubitRefs * | as_qubit_refs () |
Interprets this node to a node of type QubitRefs. More... | |
virtual const QubitRefs * | as_qubit_refs () const |
Interprets this node to a node of type QubitRefs. More... | |
virtual Reference * | as_reference () |
Interprets this node to a node of type Reference. More... | |
virtual const Reference * | as_reference () const |
Interprets this node to a node of type Reference. More... | |
virtual VariableRef * | as_variable_ref () |
Interprets this node to a node of type VariableRef. More... | |
virtual const VariableRef * | as_variable_ref () const |
Interprets this node to a node of type VariableRef. More... | |
Static Public Member Functions | |
static std::shared_ptr< Function > | deserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids) |
Deserializes the given node. More... | |
![]() | |
static std::shared_ptr< Node > | deserialize (const ::tree::cbor::MapReader &map, ::tree::base::IdentifierMap &ids) |
Deserializes the given node. More... | |
Public Attributes | |
cqasm::v1::primitives::Str | name |
Name of the function as it appears or should appear in the cQASM file. More... | |
Any< cqasm::v1::values::Node > | operands |
Operands for the function. More... | |
One< cqasm::v1::types::Node > | return_type |
Operands for the function. More... | |
Protected Member Functions | |
void | visit_internal (VisitorBase &visitor, void *retval) override |
Helper method for visiting nodes. More... | |
This can be returned by user-defined functions as a placeholder value for something that needs to be evaluated at runtime rather than during constant propagation.
Annotations should be used to attach semantic information.
Definition at line 1324 of file cqasm-v1-values-gen.hpp.
#include <cqasm-v1-values-gen.hpp>
cqasm::v1::values::Function::Function | ( | const cqasm::v1::primitives::Str & | name = cqasm::v1::primitives::initialize<cqasm::v1::primitives::Str>() , |
const Any< cqasm::v1::values::Node > & | operands = cqasm::v1::primitives::initialize<Any<cqasm::v1::values::Node>>() , |
||
const One< cqasm::v1::types::Node > & | return_type = cqasm::v1::primitives::initialize<One<cqasm::v1::types::Node>>() |
||
) |
Constructor.
Definition at line 1535 of file cqasm-v1-values-gen.cpp.
|
override |
Registers all reachable nodes with the given PointerMap.
Definition at line 1542 of file cqasm-v1-values-gen.cpp.
|
override |
Returns whether this Function
is complete/fully defined.
Definition at line 1551 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Returns the NodeType
of this node.
Implements cqasm::v1::values::Node.
Definition at line 1560 of file cqasm-v1-values-gen.cpp.
|
overrideprotectedvirtual |
Helper method for visiting nodes.
Implements cqasm::v1::values::Node.
Definition at line 1567 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Interprets this node to a node of type Function.
Returns null if it has the wrong type.
Reimplemented from cqasm::v1::values::Node.
Definition at line 1575 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Interprets this node to a node of type Function.
Returns null if it has the wrong type.
Reimplemented from cqasm::v1::values::Node.
Definition at line 1583 of file cqasm-v1-values-gen.cpp.
Returns a shallow copy of this node.
Implements cqasm::v1::values::Node.
Definition at line 1590 of file cqasm-v1-values-gen.cpp.
Returns a deep copy of this node.
Implements cqasm::v1::values::Node.
Definition at line 1597 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Value-based equality operator.
Ignores annotations!
Implements cqasm::v1::values::Node.
Definition at line 1607 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Pointer-based equality operator.
Implements cqasm::v1::values::Node.
Definition at line 1619 of file cqasm-v1-values-gen.cpp.
|
overridevirtual |
Serializes this node to the given map.
Implements cqasm::v1::values::Node.
Definition at line 1631 of file cqasm-v1-values-gen.cpp.
|
static |
Deserializes the given node.
Writes a debug dump of this node to the given stream.
Definition at line 1652 of file cqasm-v1-values-gen.cpp.
cqasm::v1::primitives::Str cqasm::v1::values::Function::name |
Name of the function as it appears or should appear in the cQASM file.
Definition at line 1330 of file cqasm-v1-values-gen.hpp.
Any<cqasm::v1::values::Node> cqasm::v1::values::Function::operands |
Operands for the function.
Definition at line 1335 of file cqasm-v1-values-gen.hpp.
One<cqasm::v1::types::Node> cqasm::v1::values::Function::return_type |
Operands for the function.
Definition at line 1340 of file cqasm-v1-values-gen.hpp.