//=============================================================================
/*! */
template<long l>
inline drovector_small<l> t(const dcovector_small<l>& A)
{
drovector_small<l> X;
for(long i=0; i<l; i++){
X(i)=A(i);
}
return X;
}
//=============================================================================
/*! */
template<long l>
inline double nrm2(const dcovector_small<l>& A)
{
double v(0);
for(long i=0; i<l; i++){
v+=A(i)*A(i);
}
return sqrt(v);
}
//=============================================================================
template<long l>
inline void idamax(long& K, const dcovector_small<l>& A)
{
double max(-1.);
for(int k=0; k<l; k++){
if( max<fabs(A(k)) ){
K=k;
max =fabs(A(k));
}
}
return;
}
//=============================================================================
template<long l>
inline double damax(const dcovector_small<l>& A)
{
long k(0);
idamax(k,A);
return A(k);
}