18 using namespace kome::core;
23 #define new new( _NORMAL_BLOCK, __FILE__, __LINE__ )
24 #define malloc( s ) _malloc_dbg( s, _NORMAL_BLOCK, __FILE__, __LINE__ )
31 : m_dim( dim ), m_array( ( dim == 0 ) ?
NULL : new double[ dim ] ) {
39 : m_dim( v.m_dim ), m_array( ( v.m_array ==
NULL ) ?
NULL : new double[ v.m_dim ] ) {
60 for(
unsigned int i = 0; i <
m_dim; i++ ) {
72 throw FMT(
"Vector size is illegal." );
76 for(
unsigned int i = 0; i <
m_dim; i++ ) {
86 throw FMT(
"Vector size is illegal." );
100 throw FMT(
"Vector size is illegal." );
113 if( index >=
m_dim ) {
114 throw FMT(
"The specified element does not exist. [dimension=%d, index=%d]",
m_dim, index );
124 throw FMT(
"Vector size is illegal." );
128 for(
unsigned int i = 0; i <
m_dim; i++ ) {
139 throw FMT(
"Vector size is illegal." );
143 for(
unsigned int i = 0; i <
m_dim; i++ ) {
153 for(
unsigned int i = 0; i <
m_dim; i++ ) {
163 for(
unsigned int i = 0; i <
m_dim; i++ ) {
virtual ~Vector()
destructor
Vector cross(const Vector &v)
get cross production
Vector operator=(const Vector &v)
copy vector
double norm()
gets the norm of the vector
Vector operator/(const double k)
scalar division
unsigned int getDimention()
gets the dimention size of vector
Vector operator-(const Vector &v)
vector subtraction
Vector & operator+=(const Vector &v)
vector addition
Vector & operator-=(const Vector &v)
vector subtraction
interfaces of Vector class
Vector operator*(const double k)
scalar multiplication
double & operator()(const unsigned int index)
gets reference of value of specified element
Vector operator+(const Vector &v)
vector addition
Vector & operator/=(const double k)
scalar division
Vector(const unsigned int dim)
constructor
double dot(const Vector &v)
gets dot production
void fillzero(void *p, size_t n)
This function fills a block of memory zeros.
Vector & operator*=(const double k)
scalar multiplication