35#ifndef NEKTAR_LIB_UTILITIES_NEK_VECTOR_HPP
36#define NEKTAR_LIB_UTILITIES_NEK_VECTOR_HPP
50#include <boost/call_traits.hpp>
68 typename boost::call_traits<DataType>::const_reference a);
73 typename boost::call_traits<DataType>::const_reference
x,
74 typename boost::call_traits<DataType>::const_reference
y,
75 typename boost::call_traits<DataType>::const_reference
z);
80 const DataType *
const ptr);
139 typename boost::call_traits<DataType>::const_reference val);
142 typename boost::call_traits<DataType>::const_reference val);
145 typename boost::call_traits<DataType>::const_reference val);
154 typename boost::call_traits<DataType>::const_reference rhs);
157 typename boost::call_traits<DataType>::const_reference rhs);
209template <
typename DataType>
214template <
typename DataType>
219template <
typename DataType>
223template <
typename DataType>
227template <
typename LhsDataType,
typename RhsDataType>
231template <
typename ResultDataType,
typename InputDataType>
236template <
typename ResultDataType,
typename InputDataType>
241template <
typename ResultDataType,
typename InputDataType>
245template <
typename ResultDataType,
typename InputDataType>
249template <
typename DataType>
253template <
typename ResultDataType,
typename InputDataType>
258template <
typename ResultDataType>
262template <
typename DataType>
266template <
typename ResultDataType,
typename InputDataType>
271template <
typename ResultDataType,
typename InputDataType>
275template <
typename DataType,
typename InputDataType>
279template <
typename ResultDataType,
typename InputDataType>
284template <
typename ResultDataType>
288template <
typename DataType>
292template <
typename ResultDataType,
typename InputDataType>
297template <
typename ResultDataType,
typename InputDataType>
302template <
typename DataType>
306template <
typename DataType>
313template <
typename DataType>
320template <
typename DataType>
327template <
typename DataType>
334template <
typename DataType>
338 return Add(lhs, rhs);
341template <
typename DataType>
348template <
typename DataType>
350 const NekVector<DataType> &rhs);
352template <
typename DataType>
354 const NekPoint<DataType> &source,
const NekPoint<DataType> &dest);
356template <
typename DataType>
358 const NekVector<DataType> &lhs,
const DataType &t);
360template <
typename DataType>
362 const NekVector<DataType> &rhs);
364template <
typename DataType>
366 const NekVector<DataType> &rhs);
368template <
typename DataType>
371template <
typename DataType>
373 const NekVector<DataType> &rhs);
375template <
typename DataType>
379template <
typename DataType>
382template <
typename DataType>
385template <
typename DataType>
388template <
typename DataType>
391template <
typename DataType>
397template <
typename DataType>
400template <
typename DataType>
402 const NekVector<DataType> &rhs);
403template <
typename DataType>
#define LIB_UTILITIES_EXPORT
1D Array of constant elements with garbage collection and bounds checking.
boost::call_traits< DataType >::reference x()
void SetZ(typename boost::call_traits< DataType >::const_reference val)
void SetWrapperType(PointerWrapper p)
boost::call_traits< DataType >::reference operator[](unsigned int i)
Array< OneD, DataType > & GetData()
NekVector< DataType > Cross(const NekVector< DataType > &rhs) const
Array< OneD, DataType > & GetPtr()
unsigned int GetDimension() const
Returns the number of dimensions for the point.
NekVector< DataType > & operator+=(const NekVector< DataType > &rhs)
NekVector< DataType > & operator=(const NekVector< DataType > &rhs)
PointerWrapper GetWrapperType() const
void SetY(typename boost::call_traits< DataType >::const_reference val)
Array< OneD, DataType > m_data
void Resize(unsigned int newSize)
PointerWrapper m_wrapperType
DataType Dot(const NekVector< DataType > &rhs) const
unsigned int GetRows() const
std::string AsString() const
void SetSize(unsigned int s)
NekVector< DataType > & operator/=(typename boost::call_traits< DataType >::const_reference rhs)
boost::call_traits< DataType >::reference y()
NekVector< DataType > & operator*=(typename boost::call_traits< DataType >::const_reference rhs)
const DataType * const_iterator
DataType InfinityNorm() const
boost::call_traits< DataType >::reference operator()(unsigned int i)
Returns i^{th} element.
DataType Magnitude() const
NekVector< DataType > & operator-=(const NekVector< DataType > &rhs)
NekVector()
Creates an empty vector.
void SetData(const Array< OneD, DataType > &newData)
boost::call_traits< DataType >::reference z()
NekVector< DataType > operator-() const
void SetX(typename boost::call_traits< DataType >::const_reference val)
void Normalize(NekVector< DataType > &v)
std::string AsString(const NekVector< DataType > &v)
bool operator==(const Array< OneD, T1 > &lhs, const Array< OneD, T2 > &rhs)
void InvertInPlace(NekDouble &v)
SNekMat SNekMat void SubtractEqual(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > operator-(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
void MultiplyInvertedLhs(NekVector< ResultDataType > &result, const NekDouble &lhs, const NekVector< InputDataType > &rhs)
void AddEqualNegatedLhs(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
SNekMat void AddEqual(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
DataType InfinityNorm(const NekVector< DataType > &v)
void Divide(NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekDouble &rhs)
NekVector< DataType > Negate(const NekVector< DataType > &v)
void Subtract(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
std::vector< DataType > FromString(const std::string &str)
Array< OneD, DataType > operator+(const Array< OneD, DataType > &lhs, typename Array< OneD, DataType >::size_type offset)
void Multiply(NekMatrix< ResultDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const ResultDataType &rhs)
NekVector< DataType > operator*(const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
void DivideEqual(NekVector< ResultDataType > &result, const NekDouble &rhs)
NekVector< DataType > createVectorFromPoints(const NekPoint< DataType > &source, const NekPoint< DataType > &dest)
void AddNegatedLhs(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
void SubtractEqualNegatedLhs(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
void NegateInPlace(NekVector< DataType > &v)
NekPoint< DataType > operator/(const NekPoint< DataType > &lhs, typename boost::call_traits< DataType >::param_type rhs)
DataType Magnitude(const NekVector< DataType > &v)
const NekSingle void MultiplyEqual(NekMatrix< LhsDataType, StandardMatrixTag > &lhs, typename boost::call_traits< LhsDataType >::const_reference rhs)
NekVector< DataType > Cross(const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
void SubtractNegatedLhs(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
DataType L2Norm(const NekVector< DataType > &v)
std::ostream & operator<<(std::ostream &os, const NekMatrix< DataType, FormType > &rhs)
DataType L1Norm(const NekVector< DataType > &v)
NekPoint< DataType > findPointAlongVector(const NekVector< DataType > &lhs, const DataType &t)
bool operator!=(const Array< OneD, T1 > &lhs, const Array< OneD, T2 > &rhs)
PointerWrapper
Specifies if the pointer passed to a NekMatrix or NekVector is copied into an internal representation...
SNekMat SNekMat void Add(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
DataType Dot(const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)