fixes
This commit is contained in:
parent
e5782ac327
commit
1d77098670
3 changed files with 14 additions and 9 deletions
|
@ -49,7 +49,7 @@ namespace CNORXZ
|
|||
|
||||
template <typename T>
|
||||
template <class IndexI, class IndexK>
|
||||
RCArray<T>::RCArray(const RRange<IndexI,IndexK>& range) :
|
||||
RCArray<T>::RCArray(const Sptr<RRange<IndexI,IndexK>>& range) :
|
||||
mA(std::make_unique<T>(range->local())),
|
||||
mGeom(range->geom()),
|
||||
mGlobal(range)
|
||||
|
@ -258,9 +258,9 @@ namespace CNORXZ
|
|||
return imap;
|
||||
}
|
||||
|
||||
/*===============+
|
||||
| RCArray |
|
||||
+===============*/
|
||||
/*==============+
|
||||
| RArray |
|
||||
+==============*/
|
||||
|
||||
template <typename T>
|
||||
RArray<T>::RArray(const RArray& a) :
|
||||
|
@ -278,7 +278,7 @@ namespace CNORXZ
|
|||
|
||||
template <typename T>
|
||||
template <class IndexI, class IndexK>
|
||||
RArray<T>::RArray(const RRange<IndexI,IndexK>& range) :
|
||||
RArray<T>::RArray(const Sptr<RRange<IndexI,IndexK>>& range) :
|
||||
RCArray<T>(range),
|
||||
mB(dynamic_cast<ArrayBase<T>*>(RCA::mA.get()))
|
||||
{}
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace CNORXZ
|
|||
@param range The range.
|
||||
*/
|
||||
template <class IndexI, class IndexK>
|
||||
RCArray(const RRange<IndexI,IndexK>& range);
|
||||
RCArray(const Sptr<RRange<IndexI,IndexK>>& range);
|
||||
|
||||
/** Construct from local array object.
|
||||
@param a Local array.
|
||||
|
@ -142,10 +142,12 @@ namespace CNORXZ
|
|||
template <class Index, class F>
|
||||
Sptr<Vector<SizeT>> load(const Sptr<Index>& lpi, const F& f) const;
|
||||
|
||||
private:
|
||||
protected:
|
||||
ObjHandle<CArrayBase<T>> mA;
|
||||
RangePtr mGeom;
|
||||
RangePtr mGlobal;
|
||||
|
||||
private:
|
||||
mutable Vector<T> mBuf; // data from other ranks
|
||||
mutable Vector<const T*> mMap; // point to positions in mA or mBuf
|
||||
};
|
||||
|
@ -181,7 +183,7 @@ namespace CNORXZ
|
|||
@param range The range.
|
||||
*/
|
||||
template <class IndexI, class IndexK>
|
||||
RArray(const RRange<IndexI,IndexK>& range);
|
||||
RArray(const Sptr<RRange<IndexI,IndexK>>& range);
|
||||
|
||||
/** Construct from local array object.
|
||||
@param a Local array.
|
||||
|
|
|
@ -45,6 +45,7 @@ namespace
|
|||
RangePtr g1 = CRangeFactory(1).create();
|
||||
RangePtr g2 = CRangeFactory(2).create();
|
||||
mGeom = g2*g1*g1*g2*g1;
|
||||
mGeom2 = g2*g1*g1*g2;
|
||||
|
||||
mRXRange = rrange(mXRange, g2*g1*g1*g2);
|
||||
RangePtr scr = mSpRange*mSpRange;
|
||||
|
@ -88,6 +89,7 @@ namespace
|
|||
RangePtr mSpRange;
|
||||
RangePtr mMRange;
|
||||
RangePtr mGeom;
|
||||
RangePtr mGeom2;
|
||||
|
||||
RCArray<Double> mM1;
|
||||
RCArray<Double> mM2;
|
||||
|
@ -103,7 +105,8 @@ namespace
|
|||
TEST_F(ROp_Test, Contract)
|
||||
{
|
||||
Vector<Double> comp(mRXRange->size());
|
||||
//RArray<Double> res( MArray<Double>(mMRange), mGeom );
|
||||
RArray<Double> res( MArray<Double>(mRXRange->sub(1)), mGeom2 );
|
||||
EXPECT_EQ(res.size(), comp.size());
|
||||
typedef UIndex<SizeT> UI;
|
||||
RIndex<MIndex<UI,UI,UI,UI>,MIndex<UI,UI,UI,UI>> x(mRXRange);
|
||||
RIndex<MIndex<UI,UI,UI,UI>,MIndex<UI,UI,UI,UI>> y(mRXRange);
|
||||
|
|
Loading…
Reference in a new issue