Tatooine
added_contracted_dynamic_tensor.h
Go to the documentation of this file.
1#ifndef TATOOINE_EINSTEIN_NOTATION_ADDED_CONTRACTED_DYNAMIC_TENSOR_H
2#define TATOOINE_EINSTEIN_NOTATION_ADDED_CONTRACTED_DYNAMIC_TENSOR_H
3//==============================================================================
5//==============================================================================
6template <typename... ContractedTensors>
8 private:
9 std::tuple<ContractedTensors...> m_tensors;
10
11 public:
12 explicit added_contracted_dynamic_tensor(ContractedTensors... tensors)
13 : m_tensors{tensors...} {}
14 //----------------------------------------------------------------------------
15 template <std::size_t I>
16 auto at() const {
17 return std::get<I>(m_tensors);
18 }
19 template <std::size_t I>
20 auto at() {
21 return std::get<I>(m_tensors);
22 }
23};
24//==============================================================================
25} // namespace tatooine::einstein_notation
26//==============================================================================
27#endif
Definition: added_contracted_dynamic_tensor.h:4
Definition: added_contracted_dynamic_tensor.h:7
added_contracted_dynamic_tensor(ContractedTensors... tensors)
Definition: added_contracted_dynamic_tensor.h:12
auto at() const
Definition: added_contracted_dynamic_tensor.h:16
std::tuple< ContractedTensors... > m_tensors
Definition: added_contracted_dynamic_tensor.h:9
auto at()
Definition: added_contracted_dynamic_tensor.h:20