class ComplexTensor

#include <Tensor.h>

class ComplexTensor: public AbstractComplexTensor
{
public:
    // construction

    ComplexTensor(std::shared_ptr<AbstractComplexTensor> tensor);
    ComplexTensor(const ComplexTensor& old);

    ComplexTensor(
        ComputeBackend backend,
        size_t rank,
        qstate_t& tensor,
        size_t max_rank
        );

    ComplexTensor(
        ComputeBackend backend,
        size_t rank,
        qcomplex_data_t* tensor,
        size_t max_rank
        );

    // methods

    virtual size_t getRank() const;
    virtual qcomplex_data_t getElem(size_t num);
    virtual void dimIncrement(size_t num);

    virtual void getSubTensor(
        size_t num,
        int value
        );

    virtual void dimDecrement(size_t num);
    virtual qcomplex_data_t* getTensor();

    virtual void mul(
        ComplexTensor& other,
        size_t* mask_array
        );

    virtual size_t getMaxRank() const;
    virtual ComputeBackend getBackend();
    ComplexTensor& operator = (const ComplexTensor& old);
};

Inherited Members

public:
    // methods

    virtual size_t getRank() const = 0;
    virtual size_t getMaxRank() const = 0;
    virtual qcomplex_data_t getElem(size_t num) = 0;
    virtual void dimIncrement(size_t) = 0;
    virtual void getSubTensor(size_t num, int value) = 0;
    virtual void dimDecrement(size_t num) = 0;
    virtual qcomplex_data_t* getTensor() = 0;
    virtual void mul(ComplexTensor& other, size_t* mask_array) = 0;
    virtual ComputeBackend getBackend() = 0;