//=============================================================================
/*!  */
template<long n>
inline dcovector_small<n> t(const drovector_small<n>& A)
{
  dcovector_small<n> X;
  for(long i=0; i<n; i++){
    X(i)=A(i);
  }
  return X;
}
//=============================================================================
/*!  */
template<long n>
inline drovector_small<n> operator*(const drovector_small<n>& A, const double& v)
{
  drovector_small<n> C;
  for(long i=0; i<n; i++){
    C(i) =A(i)*v;
  }
  return C;
}
//=============================================================================
/*!  */
template<long n>
inline drovector_small<n> operator/(const drovector_small<n>& A, const double& v)
{
  drovector_small<n> C;
  for(long i=0; i<n; i++){
    C(i) =A(i)/v;
  }
  return C;
}
//=============================================================================
template<long l>
inline double& drovector_small<l>::operator()(const long& k)
{
  return array[k];
}
//=============================================================================
template<long l>
inline double drovector_small<l>::operator()(const long& k) const
{
  return array[k];
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//=============================================================================
template<long l>
inline std::ostream& operator<<(std::ostream& s, const drovector_small<l>& A)
{
  s << std::setiosflags(std::ios::showpos);
  for(long i=0; i<l; i++){
    s << " " << A(i) << std::flush;
  }
  s << std::endl;
  return s;
}
//=============================================================================
/*!  */
template<long l>
inline drovector_small<l> operator+(const drovector_small<l>& A)
{
  drovector_small<l> X;
  for(long i=0; i<l; i++){
    X(i)=A(i);
  }
  return X;
}
//=============================================================================
/*!  */
template<long l>
inline drovector_small<l> operator-(const drovector_small<l>& A)
{
  drovector_small<l> X;
  for(long i=0; i<l; i++){
    X(i)=-A(i);
  }
  return X;
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//=============================================================================
/*!  */
template<long m, long n>
inline drovector_small<n> operator*(const drovector_small<m>& A, const dgematrix_small<m,n>& B)
{
  drovector_small<n> C(0.);
  for(long j=0; j<n; j++){
    for(long i=0; i<m; i++){
      C(j) +=A(i)*B(i,j);
    }
  }
  return C;
}