//=============================================================================
//! Samll Real Double-precision Column Vector Class
template<long L> class dcovector_small
{
public:
//////// data ////////
static const long l =L;
double array[L];
//////// constructor ////////
dcovector_small(){;}
//// ////
dcovector_small(const dcovector& v){
for(long k=0; k<L; k++){ array[k]=v(k); }
}
dcovector_small(const _dcovector& v){
for(long k=0; k<L; k++){ array[k]=v(k); }
v.destroy();
}
//// ////
dcovector_small(const double& x){
for(long k=0; k<L; k++){ array[k]=x; }
}
dcovector_small(const double& x, const double& y){
array[0]=x; array[1]=y;
}
dcovector_small(const double& x, const double& y, const double& z){
array[0]=x; array[1]=y; array[2]=z;
}
dcovector_small(const double& x, const double& y, const double& z, const double& r){
array[0]=x; array[1]=y; array[2]=z; array[3]=r;
}
~dcovector_small(){;}
//////// function ////////
double& operator()(const long& k);
double operator()(const long& k) const;
void zero(){ for(long k=0; k<L; k++){array[k]=0.;} }
dcovector_small<L>& set(const long& k, const double& v){ (*this)(k)=v; return *this; }
_dcovector to_dcovector()const{
dcovector vec(L);
for(long k=0; k<L; k++){
vec(k)=(*this)(k);
}
return _(vec);
}
};