20 #ifndef SELDON_FILE_DISTRIBUTED_VECTOR_INLINE_CXX
22 #include "DistributedVector.hxx"
28 template<
class T,
class Allocator>
30 { OverlapRowNumbers = NULL; comm_ = MPI_COMM_SELF; }
45 template<
class T,
class Allocator>
48 : OverlapRowNumbers(const_cast<
IVect*>(&rows)), comm_(comm)
54 template<
class T,
class Allocator>
58 OverlapRowNumbers(V.OverlapRowNumbers), comm_(V.comm_)
64 template<
class T,
class Allocator>
68 OverlapRowNumbers =
const_cast<IVect*
>(&rows);
74 template<
class T,
class Allocator>
77 if (OverlapRowNumbers == NULL)
80 return OverlapRowNumbers->GetM();
85 template<
class T,
class Allocator>
88 #ifdef SELDON_DEBUG_LEVEL_3
89 CheckPointer((
void*)OverlapRowNumbers,
"DistributedVector::GetOverlapRow");
92 return (*OverlapRowNumbers)(i);
97 template<
class T,
class Allocator>
106 template<
class T,
class Allocator>
121 inline complex<T> DotProd(
const DistributedVector<complex<T> >& X,
122 const DistributedVector<T>& Y)
125 return complex<T>(0, 0);
129 inline complex<T> DotProd(
const DistributedVector<T>& X,
130 const DistributedVector<complex<T> >& Y)
133 return complex<T>(0, 0);
137 inline T DotProdConj(
const DistributedVector<T>& X,
138 const DistributedVector<T>& Y)
144 inline complex<T> DotProdConj(
const DistributedVector<complex<T> >& X,
145 const DistributedVector<complex<T> >& Y)
151 inline complex<T> DotProdConj(
const DistributedVector<complex<T> >& X,
152 const DistributedVector<T>& Y)
155 return complex<T>(0, 0);
159 inline complex<T> DotProdConj(
const DistributedVector<T>& X,
160 const DistributedVector<complex<T> >& Y)
163 return complex<T>(0, 0);
168 #define SELDON_FILE_DISTRIBUTED_VECTOR_INLINE_CXX