Tatooine
Namespaces | Functions
tensor_operations.h File Reference

Go to the source code of this file.

Namespaces

namespace  tatooine
 

Functions

template<typename Tensor0 , typename Tensor1 , typename T0 , typename T1 , std::size_t N>
constexpr auto tatooine::cos_angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1)
 Returns the cosine of the angle of two normalized vectors. More...
 
template<typename Tensor , typename TensorT , std::size_t... Dims>
constexpr auto tatooine::abs (base_tensor< Tensor, TensorT, Dims... > const &t)
 
template<typename Tensor0 , typename Tensor1 , typename T0 , typename T1 , std::size_t N>
constexpr auto tatooine::angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1)
 Returns the angle of two normalized vectors. More...
 
template<typename Tensor0 , typename Tensor1 , typename T0 , typename T1 , std::size_t N>
constexpr auto tatooine::min_angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1)
 Returns the angle of two normalized vectors. More...
 
template<typename Tensor0 , typename Tensor1 , typename T0 , typename T1 , std::size_t N>
constexpr auto tatooine::max_angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1)
 Returns the angle of two normalized vectors. More...
 
template<typename Tensor0 , typename Tensor1 , typename Tensor2 , typename T0 , typename T1 , typename T2 , std::size_t N>
constexpr auto tatooine::cos_angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1, base_tensor< Tensor2, T2, N > const &v2)
 Returns the cosine of the angle three points. More...
 
template<typename Tensor0 , typename Tensor1 , typename Tensor2 , typename T0 , typename T1 , typename T2 , std::size_t N>
constexpr auto tatooine::angle (base_tensor< Tensor0, T0, N > const &v0, base_tensor< Tensor1, T1, N > const &v1, base_tensor< Tensor2, T2, N > const &v2)
 Returns the cosine of the angle three points. More...
 
template<typename Tensor , typename T , std::size_t... Dims>
constexpr auto tatooine::min (base_tensor< Tensor, T, Dims... > const &t)
 
template<typename Tensor , typename T , std::size_t... Dims>
constexpr auto tatooine::max (base_tensor< Tensor, T, Dims... > const &t)
 
template<typename Tensor , typename T , std::size_t N>
constexpr auto tatooine::normalize (base_tensor< Tensor, T, N > const &t_in) -> vec< T, N >
 
template<typename Tensor , typename T , std::size_t VecDim>
constexpr auto tatooine::sum (base_tensor< Tensor, T, VecDim > const &v)
 sum of all components of a vector More...
 
template<typename Tensor0 , typename T0 , typename Tensor1 , typename T1 , std::size_t N>
constexpr auto tatooine::dot (base_tensor< Tensor0, T0, N > const &lhs, base_tensor< Tensor1, T1, N > const &rhs)
 
template<typename T0 , typename T1 >
constexpr auto tatooine::reflect (vec< T0, 3 > const &incidentVec, vec< T1, 3 > const &normal)
 
template<typename Tensor , typename TensorT , std::size_t... Dims>
constexpr auto tatooine::sqrt (base_tensor< Tensor, TensorT, Dims... > const &t)
 
constexpr auto tatooine::sqrt (dynamic_tensor auto &&t)