//=============================================================================
//! Base class for Small Real Double-precision Column Vector Class
class dcovector_small_base
{
public:
//////// constructor ////////
dcovector_small_base(){;}
virtual ~dcovector_small_base(){;}
};
//=============================================================================
//! Samll Real Double-precision Column Vector Class
template<long l> class dcovector_small : public dcovector_small_base
{
public:
//////// data ////////
double array[l];
//////// constructor ////////
dcovector_small(){;}
dcovector_small(const double& x){
for(long k=0; k<l; k++){ array[k]=x; }
}
dcovector_small(const double& x, const double& y, const double& z){
array[0]=x; array[1]=y; array[2]=z;
}
~dcovector_small(){;}
//////// function ////////
double& operator()(const long& k){ return array[k]; }
double operator()(const long& k)const{ return array[k]; }
//long get_m(){ return n; }
//long get_n(){ return n; }
void zero(){ for(long k=0; k<l; k++){array[k]=0.;} }
};
//=============================================================================
template<long l>
inline std::ostream& operator<<(std::ostream& s, const dcovector_small<l>& A)
{
s << std::setiosflags(std::ios::showpos);
for(long i=0; i<l; i++){
s << A(i) << std::endl;
}
return s;
}