YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Functions
Vector.h File Reference
#include "fwd/Vector.h"
#include "Matrix.h"
#include <algorithm>
#include <array>
#include <cmath>
#include <iterator>
#include <numeric>
#include <ostream>
#include <string>
#include <type_traits>

Go to the source code of this file.

Classes

class  VectorIterator< T, N >
 Iterator for Vector class. More...
 
class  VectorExpression< T, N, E >
 Class for holding vector expressions. More...
 
class  Vector< T, N >
 N-dimensional column vector. More...
 
class  VectorAddition< T, N, E1, E2 >
 Expression for addition of two VectorExpressions. More...
 
class  VectorSubtraction< T, N, E1, E2 >
 Expression for subtraction of two VectorExpressions. More...
 

Namespaces

 yap
 
 

Functions

template<typename T , size_t N>
const VectorIterator< T, N > operator+ (VectorIterator< T, N > a, typename VectorIterator< T, N >::difference_type n)
 addition operator
 
template<typename T , size_t N>
const VectorIterator< T, N > operator+ (typename VectorIterator< T, N >::difference_type n, VectorIterator< T, N > a)
 addition operator
 
template<typename T , size_t N>
const VectorIterator< T, N > operator- (VectorIterator< T, N > a, typename VectorIterator< T, N >::difference_type n)
 subtraction operator
 
template<typename T , size_t N>
bool operator>= (VectorIterator< T, N > a, VectorIterator< T, N > b)
 greater-than-or-equal operator
 
template<typename T , size_t N>
bool operator<= (VectorIterator< T, N > a, VectorIterator< T, N > b)
 less-than-or-equal operator
 
template<typename T , size_t N, typename E1 , typename E2 >
constexpr VectorAddition< T, N,
E1, E2 > 
operator+ (const VectorExpression< T, N, E1 > &a, const VectorExpression< T, N, E2 > &b)
 addition of two vectors
 
template<typename T , size_t N, typename E1 , typename E2 >
constexpr VectorSubtraction< T,
N, E1, E2 > 
operator- (const VectorExpression< T, N, E1 > &a, const VectorExpression< T, N, E2 > &b)
 subtraction of two vectors
 
template<typename T , size_t N>
std::string to_string (const Vector< T, N > &V)
 
template<typename T , size_t N>
std::ostream & operator<< (std::ostream &os, const Vector< T, N > &V)
 streamer
 
template<typename T , size_t N>
Vector< T, N > & operator+= (Vector< T, N > &A, const Vector< T, N > &B)
 addition assignment
 
template<typename T , size_t N>
constexpr Vector< T, N > operator- (const Vector< T, N > &V)
 unary minus
 
template<typename T , size_t N>
Vector< T, N > & operator-= (Vector< T, N > &A, const Vector< T, N > &B)
 subtraction assignment
 
template<typename T , size_t N>
Vector< T, N > & operator*= (Vector< T, N > &A, const T &B)
 (assignment) multiplication by a single element
 
template<typename T , size_t N>
const Vector< T, N > operator* (const Vector< T, N > &A, const T &c)
 multiplication: #Vector<T> * T
 
template<typename T , size_t N>
constexpr Vector< T, N > operator* (const T &c, const Vector< T, N > &A)
 multiplication: T * #Vector<T>
 
template<typename T , size_t N>
Vector< T, N > & operator/= (Vector< T, N > &A, const T &B)
 (assignment) division by a single element
 
template<typename T , size_t N>
const Vector< T, N > operator/ (const Vector< T, N > &A, const T &c)
 division: #Vector<T> / T
 
template<typename T , size_t N>
constexpr T abs (const Vector< T, N > &A)
 
template<typename T , size_t N>
const Vector< T, N > unit (const Vector< T, N > &V)
 
template<typename T , size_t R, size_t C>
const Vector< T, R > operator* (const Matrix< T, R, C > &M, const Vector< T, C > &V)
 Matrix * Vector.
 
template<typename T1 , typename T2 , size_t R, size_t C>
auto operator* (const Matrix< T1, R, C > &M, const Vector< T2, C > &V) -> const Vector< typename std::remove_cv< decltype(operator*(M[0][0], V[0]))>::type, R >
 Matrix * Vector with different template types.
 
template<typename T , size_t N>
const SquareMatrix< T, N > outer (const Vector< T, N > &A, const Vector< T, N > &B)
 outer product