Salome HOME
projects
/
tools
/
medcoupling.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix 32bits config bug
[tools/medcoupling.git]
/
src
/
MEDCoupling
/
MEDCouplingMemArray.hxx
diff --git
a/src/MEDCoupling/MEDCouplingMemArray.hxx
b/src/MEDCoupling/MEDCouplingMemArray.hxx
index f9a847cc4b4cac7f722cbf78d86ea27710d87267..ba49d508476d757d1fcb6bb943b4f7cd37c668bc 100755
(executable)
--- a/
src/MEDCoupling/MEDCouplingMemArray.hxx
+++ b/
src/MEDCoupling/MEDCouplingMemArray.hxx
@@
-165,6
+165,7
@@
namespace MEDCoupling
void setPartOfValuesBase3(const DataArray *aBase, const mcIdType *bgTuples, const mcIdType *endTuples, mcIdType bgComp, mcIdType endComp, mcIdType stepComp, bool strictCompoCompare=true);
virtual void *getVoidStarPointer() = 0;
virtual DataArray *deepCopy() const = 0;
void setPartOfValuesBase3(const DataArray *aBase, const mcIdType *bgTuples, const mcIdType *endTuples, mcIdType bgComp, mcIdType endComp, mcIdType stepComp, bool strictCompoCompare=true);
virtual void *getVoidStarPointer() = 0;
virtual DataArray *deepCopy() const = 0;
+ virtual DataArray *copySorted(bool asc=true) const = 0;
virtual DataArray *buildNewEmptyInstance() const = 0;
virtual bool isAllocated() const = 0;
virtual void checkAllocated() const = 0;
virtual DataArray *buildNewEmptyInstance() const = 0;
virtual bool isAllocated() const = 0;
virtual void checkAllocated() const = 0;
@@
-231,8
+232,16
@@
namespace MEDCoupling
typedef T Type;
public:
static MCAuto< typename Traits<T>::ArrayTypeCh > NewFromStdVector(const typename std::vector<T>& v);
typedef T Type;
public:
static MCAuto< typename Traits<T>::ArrayTypeCh > NewFromStdVector(const typename std::vector<T>& v);
+ static MCAuto< typename Traits<T>::ArrayTypeCh > NewFromArray(const T *arrBegin, const T *arrEnd);
std::vector< MCAuto< typename Traits<T>::ArrayTypeCh > > explodeComponents() const;
//
std::vector< MCAuto< typename Traits<T>::ArrayTypeCh > > explodeComponents() const;
//
+ void printForDebug(std::ostream& oss) const
+ {
+ this->checkAllocated();
+ char comma[3] = {'\0',' ','\0'};
+ std::for_each(this->begin(),this->end(),[&comma,&oss](const T& elt) { oss << comma << elt; comma[0]=','; } );
+ oss << std::endl;
+ }
std::size_t getHeapMemorySizeWithoutChildren() const;
void updateTime() const { }
//
std::size_t getHeapMemorySizeWithoutChildren() const;
void updateTime() const { }
//
@@
-252,7
+261,8
@@
namespace MEDCoupling
T getIJ(std::size_t tupleId, std::size_t compoId) const { return _mem[tupleId*_info_on_compo.size()+compoId]; }
void setIJ(std::size_t tupleId, std::size_t compoId, T newVal) { _mem[tupleId*_info_on_compo.size()+compoId]=newVal; declareAsNew(); }
void setIJSilent(std::size_t tupleId, std::size_t compoId, T newVal) { _mem[tupleId*_info_on_compo.size()+compoId]=newVal; }
T getIJ(std::size_t tupleId, std::size_t compoId) const { return _mem[tupleId*_info_on_compo.size()+compoId]; }
void setIJ(std::size_t tupleId, std::size_t compoId, T newVal) { _mem[tupleId*_info_on_compo.size()+compoId]=newVal; declareAsNew(); }
void setIJSilent(std::size_t tupleId, std::size_t compoId, T newVal) { _mem[tupleId*_info_on_compo.size()+compoId]=newVal; }
- T *getPointer() { return _mem.getPointer(); declareAsNew(); }
+ T *getPointer() { declareAsNew(); return getPointerSilent(); }
+ T *getPointerSilent() { return _mem.getPointer(); }
void pack() const;
bool isAllocated() const override;
void checkAllocated() const;
void pack() const;
bool isAllocated() const override;
void checkAllocated() const;
@@
-310,6
+320,7
@@
namespace MEDCoupling
MemArray<T>& accessToMemArray() { return _mem; }
const MemArray<T>& accessToMemArray() const { return _mem; }
protected:
MemArray<T>& accessToMemArray() { return _mem; }
const MemArray<T>& accessToMemArray() const { return _mem; }
protected:
+ typename Traits<T>::ArrayTypeCh *copySortedImpl(bool asc) const;
typename Traits<T>::ArrayType *mySelectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const;
typename Traits<T>::ArrayType *mySelectByTupleId(const DataArrayIdType& di) const;
typename Traits<T>::ArrayType *mySelectByTupleIdSafe(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const;
typename Traits<T>::ArrayType *mySelectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const;
typename Traits<T>::ArrayType *mySelectByTupleId(const DataArrayIdType& di) const;
typename Traits<T>::ArrayType *mySelectByTupleIdSafe(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const;
@@
-392,6
+403,7
@@
namespace MEDCoupling
static DataArrayFloat *New();
public:// abstract method overload
DataArrayFloat *deepCopy() const;
static DataArrayFloat *New();
public:// abstract method overload
DataArrayFloat *deepCopy() const;
+ DataArrayFloat *copySorted(bool asc=true) const override { return this->copySortedImpl(asc); }
std::string getClassName() const override { return std::string("DataArrayFloat"); }
DataArrayFloat *buildNewEmptyInstance() const { return DataArrayFloat::New(); }
DataArrayFloat *selectByTupleRanges(const std::vector<std::pair<mcIdType,mcIdType> >& ranges) const { return DataArrayTemplateFP<float>::mySelectByTupleRanges(ranges); }
std::string getClassName() const override { return std::string("DataArrayFloat"); }
DataArrayFloat *buildNewEmptyInstance() const { return DataArrayFloat::New(); }
DataArrayFloat *selectByTupleRanges(const std::vector<std::pair<mcIdType,mcIdType> >& ranges) const { return DataArrayTemplateFP<float>::mySelectByTupleRanges(ranges); }
@@
-423,6
+435,7
@@
namespace MEDCoupling
static DataArrayDouble *New();
double doubleValue() const;
DataArrayDouble *deepCopy() const;
static DataArrayDouble *New();
double doubleValue() const;
DataArrayDouble *deepCopy() const;
+ DataArrayDouble *copySorted(bool asc=true) const override { return this->copySortedImpl(asc); }
std::string getClassName() const override { return std::string("DataArrayDouble"); }
DataArrayDouble *buildNewEmptyInstance() const { return DataArrayDouble::New(); }
void checkMonotonic(bool increasing, double eps) const;
std::string getClassName() const override { return std::string("DataArrayDouble"); }
DataArrayDouble *buildNewEmptyInstance() const { return DataArrayDouble::New(); }
void checkMonotonic(bool increasing, double eps) const;
@@
-544,7
+557,6
@@
namespace MEDCoupling
using DataArrayType = typename Traits<T>::ArrayType;
public:
static DataArrayType *New();
using DataArrayType = typename Traits<T>::ArrayType;
public:
static DataArrayType *New();
- static MCAuto<DataArrayType> NewFromArray(const T *arrBegin, const T *arrEnd);
T intValue() const;
bool isEqual(const DataArrayDiscrete<T>& other) const;
bool isEqualIfNotWhy(const DataArrayDiscrete<T>& other, std::string& reason) const;
T intValue() const;
bool isEqual(const DataArrayDiscrete<T>& other) const;
bool isEqualIfNotWhy(const DataArrayDiscrete<T>& other, std::string& reason) const;
@@
-703,8
+715,9
@@
namespace MEDCoupling
{
friend class DataArrayDiscrete<Int32>;
public:
{
friend class DataArrayDiscrete<Int32>;
public:
- DataArrayInt32 *deepCopy() const;//ok
- DataArrayInt32 *buildNewEmptyInstance() const { return DataArrayInt32::New(); }//ok
+ DataArrayInt32 *deepCopy() const;
+ DataArrayInt32 *copySorted(bool asc=true) const override { return this->copySortedImpl(asc); }
+ DataArrayInt32 *buildNewEmptyInstance() const { return DataArrayInt32::New(); }
public:
DataArrayInt32 *selectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const { return this->mySelectByTupleId(new2OldBg,new2OldEnd); }
DataArrayInt32 *selectByTupleId(const DataArrayIdType& di) const { return this->mySelectByTupleId(di); }
public:
DataArrayInt32 *selectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const { return this->mySelectByTupleId(new2OldBg,new2OldEnd); }
DataArrayInt32 *selectByTupleId(const DataArrayIdType& di) const { return this->mySelectByTupleId(di); }
@@
-725,6
+738,7
@@
namespace MEDCoupling
friend class DataArrayDiscrete<Int64>;
public:
DataArrayInt64 *deepCopy() const;
friend class DataArrayDiscrete<Int64>;
public:
DataArrayInt64 *deepCopy() const;
+ DataArrayInt64 *copySorted(bool asc=true) const override { return this->copySortedImpl(asc); }
DataArrayInt64 *buildNewEmptyInstance() const { return DataArrayInt64::New(); }//ok
public:
DataArrayInt64 *selectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const { return this->mySelectByTupleId(new2OldBg,new2OldEnd); }
DataArrayInt64 *buildNewEmptyInstance() const { return DataArrayInt64::New(); }//ok
public:
DataArrayInt64 *selectByTupleId(const mcIdType *new2OldBg, const mcIdType *new2OldEnd) const { return this->mySelectByTupleId(new2OldBg,new2OldEnd); }
@@
-814,6
+828,7
@@
namespace MEDCoupling
DataArrayChar *buildEmptySpecializedDAChar() const;
DataArrayByteIterator *iterator();
DataArrayByte *deepCopy() const;
DataArrayChar *buildEmptySpecializedDAChar() const;
DataArrayByteIterator *iterator();
DataArrayByte *deepCopy() const;
+ DataArrayByte *copySorted(bool asc=true) const override { return this->copySortedImpl(asc); }
DataArrayByte *performCopyOrIncrRef(bool deepCopy) const;
DataArrayByte *buildNewEmptyInstance() const { return DataArrayByte::New(); }
char byteValue() const;
DataArrayByte *performCopyOrIncrRef(bool deepCopy) const;
DataArrayByte *buildNewEmptyInstance() const { return DataArrayByte::New(); }
char byteValue() const;
@@
-843,6
+858,7
@@
namespace MEDCoupling
DataArrayChar *buildEmptySpecializedDAChar() const;
DataArrayAsciiCharIterator *iterator();
DataArrayAsciiChar *deepCopy() const;
DataArrayChar *buildEmptySpecializedDAChar() const;
DataArrayAsciiCharIterator *iterator();
DataArrayAsciiChar *deepCopy() const;
+ DataArrayAsciiChar *copySorted(bool asc=true) const override { throw INTERP_KERNEL::Exception("DataArrayAsciiChar::copySorted : not implemented for DataArrayByte"); }
DataArrayAsciiChar *performCopyOrIncrRef(bool deepCopy) const;
DataArrayAsciiChar *buildNewEmptyInstance() const { return DataArrayAsciiChar::New(); }
char asciiCharValue() const;
DataArrayAsciiChar *performCopyOrIncrRef(bool deepCopy) const;
DataArrayAsciiChar *buildNewEmptyInstance() const { return DataArrayAsciiChar::New(); }
char asciiCharValue() const;