# VectorNav C++ Library: include/vn/vector.h File Reference

vector.h File Reference
`#include <cassert>`
`#include <sstream>`
`#include <ostream>`
`#include <cmath>`
`#include "exceptions.h"`
`#include "int.h"`

Go to the source code of this file.

## Classes

struct | vn::math::vec< tdim, T >
| Template for a Euclidean vector. More...
struct | vn::math::vec< 2, T >
| Vector with 2 component specialization. More...
struct | vn::math::vec< 3, T >
| Vector with 3 component specialization. More...
struct | vn::math::vec< 4, T >
| Vector with 4 component specialization. More...

## Typedefs

typedef vec< 2 > | vn::math::vec2
| 2-component vector using `float` as its underlying data type.
typedef vec< 3 > | vn::math::vec3
| 3-component vector using `float` as its underlying data type.
typedef vec< 4 > | vn::math::vec4
| 4-component vector using `float` as its underlying data type.
typedef vec< 2, float > | vn::math::vec2f
| 2-component vector using `float` as its underlying data type.
typedef vec< 3, float > | vn::math::vec3f
| 3-component vector using `float` as its underlying data type.
typedef vec< 4, float > | vn::math::vec4f
| 4-component vector using `float` as its underlying data type.
typedef vec< 2, double > | vn::math::vec2d
| 2-component vector using `double` as its underlying data type.
typedef vec< 3, double > | vn::math::vec3d
| 3-component vector using `double` as its underlying data type.
typedef vec< 4, double > | vn::math::vec4d
| 4-component vector using `double` as its underlying data type.
typedef vec< 2, long double > | vn::math::vec2ld
| 2-component vector using `long double` as its underlying data type.
typedef vec< 3, long double > | vn::math::vec3ld
| 3-component vector using `long double` as its underlying data type.
typedef vec< 4, long double > | vn::math::vec4ld
| 4-component vector using `long double` as its underlying data type.
typedef vec< 2, int32_t > | vn::math::vec2i32
| 2-component vector using `int32_t` as its underlying data type.
typedef vec2i32 | vn::math::ivec2
| Namenclature used by OpenGL API.
typedef vec< 3, int32_t > | vn::math::vec3i32
| 3-component vector using `int32_t` as its underlying data type.
typedef vec< 4, int32_t > | vn::math::vec4i32
| 4-component vector using `int32_t` as its underlying data type.
typedef vec< 2, uint32_t > | vn::math::vec2u32
| 2-component vector using `uint32_t` as its underlying data type.
typedef vec< 3, uint32_t > | vn::math::vec3u32
| 3-component vector using `uint32_t` as its underlying data type.
typedef vec< 4, uint32_t > | vn::math::vec4u32
| 4-component vector using `uint32_t` as its underlying data type.

## Functions

template<size_t tdim, typename T >
vec< tdim, T > | vn::math::operator+ (vec< tdim, T > lhs, const vec< tdim, T > &rhs)
| Adds two vectors together. More...
template<size_t tdim, typename T >
vec< tdim, T > | vn::math::operator- (vec< tdim, T > lhs, const vec< tdim, T > &rhs)
| Subtracts a vector from another vector. More...
template<size_t tdim, typename T , typename S >
vec< tdim, T > | vn::math::operator* (vec< tdim, T > lhs, const S &rhs)
| Multiplies a vector by a scalar. Done both ways for python. More...
template<size_t tdim, typename T , typename S >
vec< tdim, T > | vn::math::operator* (const S &rhs, vec< tdim, T > lhs)
| Multiplies a vector by a scalar. Done both ways for Python. More...
template<size_t tdim, typename T , typename S >
vec< tdim, T > | vn::math::operator/ (vec< tdim, T > lhs, const S &rhs)
| Divides a vector by a scalar. More...
template<size_t tdim, typename T >
std::string | vn::math::str (vec< tdim, T > v)
| Provides a method to generate a representable string from a provided vector. More...
template<size_t tdim, typename T >
std::ostream & | vn::math::operator<< (std::ostream &out, vec< tdim, T > v)
| Overloads the ostream << operator for easy usage in displaying vectors. More...

## Detailed Description

{COMMON_HEADER}

# DESCRIPTION

This header file provides may types for working with vectors.