class Edge
#include <TensorNode.h>
class Edge
{
public:
// construction
Edge(
qsize_t qubit_count,
ComplexTensor& tensor,
std::vector<std::pair<qsize_t, qsize_t>>& contect_vertice
);
// methods
void earseContectVertice(
qsize_t qubit,
size_t num
);
qsize_t getQubitCount() const;
bool mergeEdge(Edge& edge);
void dimDecrementbyValue(
qsize_t qubit,
qsize_t num,
int value
);
void dimDecrement(
qsize_t qubit,
qsize_t num
);
void dimIncrementByEdge(Edge& edge);
void getEdgeMap(
Edge& edge,
size_t* mask
);
void mul(
Edge& edge,
size_t* mask_array
);
int getRank() const;
ComplexTensor getComplexTensor() const;
qcomplex_data_t getElem(VerticeMatrix& vertice);
void setComplexTensor(ComplexTensor& tensor);
void getContectVertice(std::vector<std::pair<qsize_t, qsize_t>>& connect_vertice) const;
void setContectVerticeVector(const qubit_vector_t& contect_vertice);
void setContectVertice(
qsize_t qubit,
qsize_t src_num,
qsize_t des_num
);
};