xerus
a general purpose tensor library
indexedTensor.h
Go to the documentation of this file.
1 // Xerus - A General Purpose Tensor Library
2 // Copyright (C) 2014-2017 Benjamin Huber and Sebastian Wolf.
3 //
4 // Xerus is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as published
6 // by the Free Software Foundation, either version 3 of the License,
7 // or (at your option) any later version.
8 //
9 // Xerus is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
13 //
14 // You should have received a copy of the GNU Affero General Public License
15 // along with Xerus. If not, see <http://www.gnu.org/licenses/>.
16 //
17 // For further information on Xerus visit https://libXerus.org
18 // or contact us at contact@libXerus.org.
19 
25 #pragma once
26 
27 #include "indexedTensorWritable.h"
28 
29 namespace xerus {
30  namespace internal {
31  template<class tensor_type>
37  class IndexedTensor final : public IndexedTensorWritable<tensor_type> {
38  public:
40  IndexedTensor(const IndexedTensor &_other ) = delete;
41 
43  IndexedTensor(IndexedTensor &&_other );
44 
46  IndexedTensor(tensor_type* const _tensorObject, const std::vector<Index>& _indices, const bool _takeOwnership);
47 
49  IndexedTensor(tensor_type* const _tensorObject, std::vector<Index>&& _indices, const bool _takeOwnership);
50 
57 
64 
69 
74 
77  };
78  }
79 }
Internal representation of an readable indexed Tensor or TensorNetwork.
void operator-=(IndexedTensorReadOnly< tensor_type > &&_rhs)
Tensor subtract_assignment with indices.
The main namespace of xerus.
Definition: basic.h:37
void operator=(IndexedTensorReadOnly< Tensor > &&_rhs)
Assignment operators – Used for tensor assignment WITH indices.
Internal representation of an readable and writeable indexed Tensor or TensorNetwork.
Definition: indexedTensor.h:37
Abstract internal representation of an read and writeable indexed Tensor or TensorNetwork.
IndexedTensor(const IndexedTensor &_other)=delete
There is no usefull copy constructor, because the handling of the tensorObject is unclear...
Header file for the IndexedTensorWritable class.
void operator+=(IndexedTensorReadOnly< tensor_type > &&_rhs)
Tensor add_assignment with indices.