Tatooine
Namespaces | Functions
operator_overloads.h File Reference

Go to the source code of this file.

Namespaces

namespace  tatooine
 
namespace  tatooine::einstein_notation
 

Functions

template<typename TensorLHS , index... IndicesLHS, typename TensorRHS , index... IndicesRHS>
auto constexpr tatooine::einstein_notation::contract (indexed_dynamic_tensor< TensorLHS, IndicesLHS... > lhs, indexed_dynamic_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::operator* (indexed_dynamic_tensor< TensorLHS, IndicesLHS... > lhs, indexed_dynamic_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename TensorRHS , index... IndicesRHS>
auto constexpr tatooine::einstein_notation::contract (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::operator* (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename... IndexedTensorLHS, typename TensorRHS , index... IndicesRHS, std::size_t... LHSSeq>
auto tatooine::einstein_notation::contract (contracted_static_tensor< IndexedTensorLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs, std::index_sequence< LHSSeq... >)
 
template<typename... IndexedTensorLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::contract (contracted_static_tensor< IndexedTensorLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename... IndexedTensorLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::operator* (contracted_static_tensor< IndexedTensorLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<index... IndicesLHS, typename TensorLHS , typename... IndexedTensorRHS, std::size_t... RHSSeq>
auto tatooine::einstein_notation::contract (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, contracted_static_tensor< IndexedTensorRHS... > rhs, std::index_sequence< RHSSeq... >)
 
template<index... IndicesLHS, typename TensorLHS , typename... IndexedTensorRHS>
auto tatooine::einstein_notation::contract (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, contracted_static_tensor< IndexedTensorRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename... IndexedTensorRHS>
auto tatooine::einstein_notation::operator* (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, contracted_static_tensor< IndexedTensorRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::operator+ (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename... IndexedTensorLHS, typename TensorRHS , index... IndicesRHS>
auto tatooine::einstein_notation::operator+ (contracted_static_tensor< IndexedTensorLHS... > lhs, indexed_static_tensor< TensorRHS, IndicesRHS... > rhs)
 
template<typename TensorLHS , index... IndicesLHS, typename... TensorsRHS>
auto tatooine::einstein_notation::operator+ (indexed_static_tensor< TensorLHS, IndicesLHS... > lhs, contracted_static_tensor< TensorsRHS... > rhs)
 
template<typename... TensorsLHS, typename... TensorsRHS>
auto tatooine::einstein_notation::operator+ (contracted_static_tensor< TensorsLHS... > lhs, contracted_static_tensor< TensorsRHS... > rhs)
 
template<typename... ContractedTensorsLHS, typename... TensorsRHS, std::size_t... Seq>
auto tatooine::einstein_notation::add (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, contracted_static_tensor< TensorsRHS... > rhs, std::index_sequence< Seq... >)
 
template<typename... TensorsLHS, typename... ContractedTensorsRHS, std::size_t... Seq>
auto tatooine::einstein_notation::add (contracted_static_tensor< TensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs, std::index_sequence< Seq... >)
 
template<typename... ContractedTensorsLHS, typename... ContractedTensorsRHS, std::size_t... Seq0, std::size_t... Seq1>
auto tatooine::einstein_notation::add (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs, std::index_sequence< Seq0... >, std::index_sequence< Seq1... >)
 
template<typename... ContractedTensorsLHS, typename... TensorsRHS>
auto tatooine::einstein_notation::add (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, contracted_static_tensor< TensorsRHS... > rhs)
 
template<typename... TensorsLHS, typename... ContractedTensorsRHS>
auto tatooine::einstein_notation::add (contracted_static_tensor< TensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs)
 
template<typename... ContractedTensorsLHS, typename... ContractedTensorsRHS>
auto tatooine::einstein_notation::add (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs)
 
template<typename... ContractedTensorsLHS, typename... TensorsRHS>
auto tatooine::einstein_notation::operator+ (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, contracted_static_tensor< TensorsRHS... > rhs)
 
template<typename... TensorsLHS, typename... ContractedTensorsRHS>
auto tatooine::einstein_notation::operator+ (contracted_static_tensor< TensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs)
 
template<typename... ContractedTensorsLHS, typename... ContractedTensorsRHS>
auto tatooine::einstein_notation::operator+ (added_contracted_static_tensor< ContractedTensorsLHS... > lhs, added_contracted_static_tensor< ContractedTensorsRHS... > rhs)