NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::Position< D, T > Class Template Reference

#include <position.h>

Inheritance diagram for nest::Position< D, T >:
[legend]

Public Member Functions

 Position ()
 Default constructor, initializing all coordinates to zero.
 
 Position (const T &, const T &)
 2D Constructor.
 
 Position (const T &, const T &, const T &)
 3D Constructor.
 
 Position (const T *const y)
 Constructor initializing a Position from an array.
 
 Position (const std::vector< T > &y)
 Constructor initializing a Position from a std::vector.
 
 Position (const Position &other)
 
template<class U >
 Position (const Position< D, U > &other)
 
 Position (Position &&other)
 Move constructor.
 
Position & operator= (const Position &other)=default
 Assignment constructor.
 
Position & operator= (const std::vector< T > &y)
 
Position & operator= (Position &&other)=default
 Move assignment constructor.
 
T & operator[] (int i)
 
const T & operator[] (int i) const
 
const std::vector< T > get_vector () const
 
void get_vector (std::vector< T > &vector) const
 
template<class OT >
Position operator+ (const Position< D, OT > &other) const
 Elementwise addition.
 
template<class OT >
Position operator- (const Position< D, OT > &other) const
 Elementwise subtraction.
 
Position operator- () const
 Unary minus.
 
template<class OT >
Position operator* (const Position< D, OT > &other) const
 Elementwise multiplication.
 
template<class OT >
Position operator/ (const Position< D, OT > &other) const
 Elementwise division.
 
Position operator+ (const T &) const
 Elementwise addition with scalar.
 
Position operator- (const T &) const
 Elementwise subtraction with scalar.
 
Position operator* (const T &) const
 Multiplication with scalar.
 
Position operator/ (const T &) const
 Division with scalar.
 
template<class OT >
Position & operator+= (const Position< D, OT > &)
 In-place elementwise addition.
 
template<class OT >
Position & operator-= (const Position< D, OT > &)
 In-place elementwise subtraction.
 
template<class OT >
Position & operator*= (const Position< D, OT > &)
 In-place elementwise multiplication.
 
template<class OT >
Position & operator/= (const Position< D, OT > &)
 In-place elementwise division.
 
Position & operator+= (const T &)
 In-place elementwise addition with scalar.
 
Position & operator-= (const T &)
 In-place elementwise subtraction with scalar.
 
Position & operator*= (const T &)
 In-place multiplication by scalar.
 
Position & operator/= (const T &)
 In-place elementwise division.
 
bool operator== (const Position &y) const
 
bool operator!= (const Position &y) const
 
bool operator< (const Position &y) const
 
bool operator> (const Position &y) const
 
bool operator<= (const Position &y) const
 
bool operator>= (const Position &y) const
 
T length () const
 Length of Position vector.
 
 operator std::string () const
 
void print (std::ostream &out, char sep=' ') const
 Print position to output stream.
 
template<class OT >
Position< D, T > operator+ (const Position< D, OT > &other) const
 
template<class OT >
Position< D, T > operator- (const Position< D, OT > &other) const
 
template<class OT >
Position< D, T > operator* (const Position< D, OT > &other) const
 
template<class OT >
Position< D, T > operator/ (const Position< D, OT > &other) const
 
template<class OT >
Position< D, T > & operator+= (const Position< D, OT > &other)
 
template<class OT >
Position< D, T > & operator-= (const Position< D, OT > &other)
 
template<class OT >
Position< D, T > & operator*= (const Position< D, OT > &other)
 
template<class OT >
Position< D, T > & operator/= (const Position< D, OT > &other)
 

Protected Attributes

std::array< T, D > x_
 

Friends

template<int OD, class OT >
class Position
 
std::ostream & operator<< (std::ostream &os, const Position< D, T > &pos)
 Output the Position to an ostream.
 

Constructor & Destructor Documentation

◆ Position() [1/8]

template<int D, class T >
nest::Position< D, T >::Position ( )
inline

Default constructor, initializing all coordinates to zero.

◆ Position() [2/8]

template<int D, class T >
nest::Position< D, T >::Position ( const T &  x,
const T &  y 
)
inline

2D Constructor.

◆ Position() [3/8]

template<int D, class T >
nest::Position< D, T >::Position ( const T &  x,
const T &  y,
const T &  z 
)
inline

3D Constructor.

◆ Position() [4/8]

template<int D, class T >
nest::Position< D, T >::Position ( const T *const  y)
inline

Constructor initializing a Position from an array.

◆ Position() [5/8]

template<int D, class T >
nest::Position< D, T >::Position ( const std::vector< T > &  y)
inline

Constructor initializing a Position from a std::vector.

◆ Position() [6/8]

template<int D, class T >
nest::Position< D, T >::Position ( const Position< D, T > &  other)
inline

◆ Position() [7/8]

template<int D, class T >
template<class U >
nest::Position< D, T >::Position ( const Position< D, U > &  other)
inline

◆ Position() [8/8]

template<int D, class T >
nest::Position< D, T >::Position ( Position< D, T > &&  other)
inline

Move constructor.

Member Function Documentation

◆ get_vector() [1/2]

template<int D, class T >
const std::vector< T > nest::Position< D, T >::get_vector ( ) const

Referenced by nest::ConnectionCreator::connect_to_target_(), nest::ConnectionCreator::connect_to_target_poisson_(), nest::ConnectionCreator::fixed_indegree_(), and nest::ConnectionCreator::fixed_outdegree_().

Here is the caller graph for this function:

◆ get_vector() [2/2]

template<int D, class T >
void nest::Position< D, T >::get_vector ( std::vector< T > &  vector) const

◆ length()

template<int D, class T >
T nest::Position< D, T >::length ( ) const

Length of Position vector.

Returns
Euclidian norm of the vector.

◆ operator std::string()

template<int D, class T >
nest::Position< D, T >::operator std::string ( ) const
Returns
string representation of Position

◆ operator!=()

template<int D, class T >
bool nest::Position< D, T >::operator!= ( const Position< D, T > &  y) const
inline
Returns
true if not all coordinates are equal

◆ operator*() [1/3]

template<int D, class T = double>
template<class OT >
Position nest::Position< D, T >::operator* ( const Position< D, OT > &  other) const

Elementwise multiplication.

Returns
elementwise product of coordinates.

◆ operator*() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > nest::Position< D, T >::operator* ( const Position< D, OT > &  other) const
inline

◆ operator*() [3/3]

template<int D, class T >
Position< D, T > nest::Position< D, T >::operator* ( const T &  a) const
inline

Multiplication with scalar.

Returns
position vector multiplied with the scalar.

◆ operator*=() [1/3]

template<int D, class T = double>
template<class OT >
Position & nest::Position< D, T >::operator*= ( const Position< D, OT > &  )

In-place elementwise multiplication.

Returns
the Position itself after multiplying with the other Position elementwise.

◆ operator*=() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > & nest::Position< D, T >::operator*= ( const Position< D, OT > &  other)
inline

◆ operator*=() [3/3]

template<int D, class T >
Position< D, T > & nest::Position< D, T >::operator*= ( const T &  a)
inline

In-place multiplication by scalar.

Returns
the Position itself after multiplying with the scalar.

◆ operator+() [1/3]

template<int D, class T = double>
template<class OT >
Position nest::Position< D, T >::operator+ ( const Position< D, OT > &  other) const

Elementwise addition.

Returns
elementwise sum of coordinates.

◆ operator+() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > nest::Position< D, T >::operator+ ( const Position< D, OT > &  other) const
inline

◆ operator+() [3/3]

template<int D, class T >
Position< D, T > nest::Position< D, T >::operator+ ( const T &  a) const
inline

Elementwise addition with scalar.

Returns
position vector with scalar added to all coordinates

◆ operator+=() [1/3]

template<int D, class T = double>
template<class OT >
Position & nest::Position< D, T >::operator+= ( const Position< D, OT > &  )

In-place elementwise addition.

Returns
the Position itself after adding the other Position elementwise.

◆ operator+=() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > & nest::Position< D, T >::operator+= ( const Position< D, OT > &  other)
inline

◆ operator+=() [3/3]

template<int D, class T >
Position< D, T > & nest::Position< D, T >::operator+= ( const T &  a)
inline

In-place elementwise addition with scalar.

Returns
the Position itself after adding the scalar to all coordinates.

◆ operator-() [1/4]

template<int D, class T >
Position< D, T > nest::Position< D, T >::operator- ( ) const
inline

Unary minus.

Returns
opposite vector.

◆ operator-() [2/4]

template<int D, class T = double>
template<class OT >
Position nest::Position< D, T >::operator- ( const Position< D, OT > &  other) const

Elementwise subtraction.

Returns
elementwise difference of coordinates.

◆ operator-() [3/4]

template<int D, class T = double>
template<class OT >
Position< D, T > nest::Position< D, T >::operator- ( const Position< D, OT > &  other) const
inline

◆ operator-() [4/4]

template<int D, class T >
Position< D, T > nest::Position< D, T >::operator- ( const T &  a) const
inline

Elementwise subtraction with scalar.

Returns
position vector with scalar subtracted from all coordinates

◆ operator-=() [1/3]

template<int D, class T = double>
template<class OT >
Position & nest::Position< D, T >::operator-= ( const Position< D, OT > &  )

In-place elementwise subtraction.

Returns
the Position itself after subtracting the other Position elementwise.

◆ operator-=() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > & nest::Position< D, T >::operator-= ( const Position< D, OT > &  other)
inline

◆ operator-=() [3/3]

template<int D, class T >
Position< D, T > & nest::Position< D, T >::operator-= ( const T &  a)
inline

In-place elementwise subtraction with scalar.

Returns
the Position itself after subtracting the scalar from all coordinates.

◆ operator/() [1/3]

template<int D, class T = double>
template<class OT >
Position nest::Position< D, T >::operator/ ( const Position< D, OT > &  other) const

Elementwise division.

Returns
elementwise quotient of coordinates.

◆ operator/() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > nest::Position< D, T >::operator/ ( const Position< D, OT > &  other) const
inline

◆ operator/() [3/3]

template<int D, class T >
Position< D, T > nest::Position< D, T >::operator/ ( const T &  a) const
inline

Division with scalar.

Returns
position vector divided by the scalar.

◆ operator/=() [1/3]

template<int D, class T = double>
template<class OT >
Position & nest::Position< D, T >::operator/= ( const Position< D, OT > &  )

In-place elementwise division.

Returns
the Position itself after dividing by the other Position elementwise.

◆ operator/=() [2/3]

template<int D, class T = double>
template<class OT >
Position< D, T > & nest::Position< D, T >::operator/= ( const Position< D, OT > &  other)
inline

◆ operator/=() [3/3]

template<int D, class T >
Position< D, T > & nest::Position< D, T >::operator/= ( const T &  a)
inline

In-place elementwise division.

Returns
the Position itself after dividing by the scalar.

◆ operator<()

template<int D, class T >
bool nest::Position< D, T >::operator< ( const Position< D, T > &  y) const
inline
Returns
true if all coordinates are less

◆ operator<=()

template<int D, class T >
bool nest::Position< D, T >::operator<= ( const Position< D, T > &  y) const
inline
Returns
true if all coordinates are less or equal

◆ operator=() [1/3]

template<int D, class T = double>
Position & nest::Position< D, T >::operator= ( const Position< D, T > &  other)
default

Assignment constructor.

◆ operator=() [2/3]

template<int D, class T >
Position< D, T > & nest::Position< D, T >::operator= ( const std::vector< T > &  y)
inline

◆ operator=() [3/3]

template<int D, class T = double>
Position & nest::Position< D, T >::operator= ( Position< D, T > &&  other)
default

Move assignment constructor.

◆ operator==()

template<int D, class T >
bool nest::Position< D, T >::operator== ( const Position< D, T > &  y) const
inline
Returns
true if all coordinates are equal

◆ operator>()

template<int D, class T >
bool nest::Position< D, T >::operator> ( const Position< D, T > &  y) const
inline
Returns
true if all coordinates are greater

◆ operator>=()

template<int D, class T >
bool nest::Position< D, T >::operator>= ( const Position< D, T > &  y) const
inline
Returns
true if all coordinates are greater or equal

◆ operator[]() [1/2]

template<int D, class T >
T & nest::Position< D, T >::operator[] ( int  i)
inline
Returns
an element (coordinate) of the Position

◆ operator[]() [2/2]

template<int D, class T >
const T & nest::Position< D, T >::operator[] ( int  i) const
inline
Returns
an element (coordinate) of the Position

◆ print()

template<int D, class T >
void nest::Position< D, T >::print ( std::ostream &  out,
char  sep = ' ' 
) const

Print position to output stream.

Format: Only as many coordinates as dimensions, separated by spaces [default], no trailing space.

Parameters
outoutput stream
sepseparator character

Friends And Related Symbol Documentation

◆ operator<<

template<int D, class T = double>
std::ostream & operator<< ( std::ostream &  os,
const Position< D, T > &  pos 
)
friend

Output the Position to an ostream.

◆ Position

template<int D, class T = double>
template<int OD, class OT >
friend class Position
friend

Member Data Documentation

◆ x_

template<int D, class T = double>
std::array< T, D > nest::Position< D, T >::x_
protected

The documentation for this class was generated from the following file: