X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingMemArray.cxx;h=0d5d059a04685eb0884cd269f8348c7107558110;hb=0c9d48870957c4a9f6f82fc8e2c569780a5f886b;hp=214bf204b5bc1a45f3f01e2fb0836efcb5869b05;hpb=267049f437c27ba62f19f12c67949729f8184e77;p=modules%2Fmed.git diff --git a/src/MEDCoupling/MEDCouplingMemArray.cxx b/src/MEDCoupling/MEDCouplingMemArray.cxx index 214bf204b..0d5d059a0 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.cxx +++ b/src/MEDCoupling/MEDCouplingMemArray.cxx @@ -130,7 +130,7 @@ std::vector DataArray::getDirectChildren() const * See \ref MEDCouplingArrayBasicsName "DataArrays infos" for more information. * \param [in] name - new array name */ -void DataArray::setName(const char *name) +void DataArray::setName(const std::string& name) { _name=name; } @@ -145,7 +145,7 @@ void DataArray::setName(const char *name) * \param [in] other - another instance of DataArray to copy the textual data from. * \throw If number of components of \a this array differs from that of the \a other. */ -void DataArray::copyStringInfoFrom(const DataArray& other) throw(INTERP_KERNEL::Exception) +void DataArray::copyStringInfoFrom(const DataArray& other) { if(_info_on_compo.size()!=other._info_on_compo.size()) throw INTERP_KERNEL::Exception("Size of arrays mismatches on copyStringInfoFrom !"); @@ -153,7 +153,7 @@ void DataArray::copyStringInfoFrom(const DataArray& other) throw(INTERP_KERNEL:: _info_on_compo=other._info_on_compo; } -void DataArray::copyPartOfStringInfoFrom(const DataArray& other, const std::vector& compoIds) throw(INTERP_KERNEL::Exception) +void DataArray::copyPartOfStringInfoFrom(const DataArray& other, const std::vector& compoIds) { int nbOfCompoOth=other.getNumberOfComponents(); std::size_t newNbOfCompo=compoIds.size(); @@ -164,10 +164,10 @@ void DataArray::copyPartOfStringInfoFrom(const DataArray& other, const std::vect throw INTERP_KERNEL::Exception(oss.str().c_str()); } for(std::size_t i=0;i& compoIds, const DataArray& other) throw(INTERP_KERNEL::Exception) +void DataArray::copyPartOfStringInfoFrom2(const std::vector& compoIds, const DataArray& other) { int nbOfCompo=getNumberOfComponents(); std::size_t partOfCompoToSet=compoIds.size(); @@ -180,10 +180,10 @@ void DataArray::copyPartOfStringInfoFrom2(const std::vector& compoIds, cons throw INTERP_KERNEL::Exception(oss.str().c_str()); } for(std::size_t i=0;i& info) throw(INTERP_KERNEL::Exception) +void DataArray::setInfoOnComponents(const std::vector& info) { if(getNumberOfComponents()!=(int)info.size()) { @@ -262,7 +262,7 @@ void DataArray::setInfoOnComponents(const std::vector& info) throw( * * \sa DataArrayDouble::setPartOfValues3, DataArrayInt::setPartOfValues3, DataArrayChar::setPartOfValues3. */ -void DataArray::setPartOfValuesBase3(const DataArray *aBase, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArray::setPartOfValuesBase3(const DataArray *aBase, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) { if(!aBase) throw INTERP_KERNEL::Exception("DataArray::setPartOfValuesBase3 : input aBase object is NULL !"); @@ -290,7 +290,7 @@ void DataArray::setPartOfValuesBase3(const DataArray *aBase, const int *bgTuples throw INTERP_KERNEL::Exception("DataArray::setPartOfValuesBase3 : input aBase object and this do not have the same type !"); } -std::vector DataArray::getVarsOnComponent() const throw(INTERP_KERNEL::Exception) +std::vector DataArray::getVarsOnComponent() const { int nbOfCompo=(int)_info_on_compo.size(); std::vector ret(nbOfCompo); @@ -299,7 +299,7 @@ std::vector DataArray::getVarsOnComponent() const throw(INTERP_KERN return ret; } -std::vector DataArray::getUnitsOnComponent() const throw(INTERP_KERNEL::Exception) +std::vector DataArray::getUnitsOnComponent() const { int nbOfCompo=(int)_info_on_compo.size(); std::vector ret(nbOfCompo); @@ -316,7 +316,7 @@ std::vector DataArray::getUnitsOnComponent() const throw(INTERP_KER * \return std::string - a string containing the information on \a i-th component. * \throw If \a i is not a valid component index. */ -std::string DataArray::getInfoOnComponent(int i) const throw(INTERP_KERNEL::Exception) +std::string DataArray::getInfoOnComponent(int i) const { if(i<(int)_info_on_compo.size() && i>=0) return _info_on_compo[i]; @@ -339,7 +339,7 @@ std::string DataArray::getInfoOnComponent(int i) const throw(INTERP_KERNEL::Exce * \return std::string - a string containing the var information, or the full info. * \throw If \a i is not a valid component index. */ -std::string DataArray::getVarOnComponent(int i) const throw(INTERP_KERNEL::Exception) +std::string DataArray::getVarOnComponent(int i) const { if(i<(int)_info_on_compo.size() && i>=0) { @@ -364,7 +364,7 @@ std::string DataArray::getVarOnComponent(int i) const throw(INTERP_KERNEL::Excep * \return std::string - a string containing the unit information, if any, or "". * \throw If \a i is not a valid component index. */ -std::string DataArray::getUnitOnComponent(int i) const throw(INTERP_KERNEL::Exception) +std::string DataArray::getUnitOnComponent(int i) const { if(i<(int)_info_on_compo.size() && i>=0) { @@ -387,7 +387,7 @@ std::string DataArray::getUnitOnComponent(int i) const throw(INTERP_KERNEL::Exce * \param [in] info - the full component information. * \return std::string - a string containing only var information, or the \a info. */ -std::string DataArray::GetVarNameFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception) +std::string DataArray::GetVarNameFromInfo(const std::string& info) { std::size_t p1=info.find_last_of('['); std::size_t p2=info.find_last_of(']'); @@ -411,7 +411,7 @@ std::string DataArray::GetVarNameFromInfo(const std::string& info) throw(INTERP_ * \param [in] info - the full component information. * \return std::string - a string containing only unit information, if any, or "". */ -std::string DataArray::GetUnitFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception) +std::string DataArray::GetUnitFromInfo(const std::string& info) { std::size_t p1=info.find_last_of('['); std::size_t p2=info.find_last_of(']'); @@ -436,7 +436,7 @@ std::string DataArray::GetUnitFromInfo(const std::string& info) throw(INTERP_KER * \throw If all not null arrays in \a arrs have not the same type. * \throw If getNumberOfComponents() of arrays within \a arrs. */ -DataArray *DataArray::Aggregate(const std::vector& arrs) throw(INTERP_KERNEL::Exception) +DataArray *DataArray::Aggregate(const std::vector& arrs) { std::vector arr2; for(std::vector::const_iterator it=arrs.begin();it!=arrs.end();it++) @@ -478,7 +478,7 @@ DataArray *DataArray::Aggregate(const std::vector& arrs) thro * \param [in] info - the string containing the information. * \throw If \a i is not a valid component index. */ -void DataArray::setInfoOnComponent(int i, const char *info) throw(INTERP_KERNEL::Exception) +void DataArray::setInfoOnComponent(int i, const std::string& info) { if(i<(int)_info_on_compo.size() && i>=0) _info_on_compo[i]=info; @@ -500,7 +500,7 @@ void DataArray::setInfoOnComponent(int i, const char *info) throw(INTERP_KERNEL: * \param [in] info - a vector of component infos. * \throw If \a this->getNumberOfComponents() != \a info.size() && \a this->isAllocated() */ -void DataArray::setInfoAndChangeNbOfCompo(const std::vector& info) throw(INTERP_KERNEL::Exception) +void DataArray::setInfoAndChangeNbOfCompo(const std::vector& info) { if(getNumberOfComponents()!=(int)info.size()) { @@ -516,7 +516,7 @@ void DataArray::setInfoAndChangeNbOfCompo(const std::vector& info) _info_on_compo=info; } -void DataArray::checkNbOfTuples(int nbOfTuples, const char *msg) const throw(INTERP_KERNEL::Exception) +void DataArray::checkNbOfTuples(int nbOfTuples, const std::string& msg) const { if(getNumberOfTuples()!=nbOfTuples) { @@ -525,7 +525,7 @@ void DataArray::checkNbOfTuples(int nbOfTuples, const char *msg) const throw(INT } } -void DataArray::checkNbOfComps(int nbOfCompo, const char *msg) const throw(INTERP_KERNEL::Exception) +void DataArray::checkNbOfComps(int nbOfCompo, const std::string& msg) const { if(getNumberOfComponents()!=nbOfCompo) { @@ -534,7 +534,7 @@ void DataArray::checkNbOfComps(int nbOfCompo, const char *msg) const throw(INTER } } -void DataArray::checkNbOfElems(std::size_t nbOfElems, const char *msg) const throw(INTERP_KERNEL::Exception) +void DataArray::checkNbOfElems(std::size_t nbOfElems, const std::string& msg) const { if(getNbOfElems()!=nbOfElems) { @@ -543,7 +543,7 @@ void DataArray::checkNbOfElems(std::size_t nbOfElems, const char *msg) const thr } } -void DataArray::checkNbOfTuplesAndComp(const DataArray& other, const char *msg) const throw(INTERP_KERNEL::Exception) +void DataArray::checkNbOfTuplesAndComp(const DataArray& other, const std::string& msg) const { if(getNumberOfTuples()!=other.getNumberOfTuples()) { @@ -557,7 +557,7 @@ void DataArray::checkNbOfTuplesAndComp(const DataArray& other, const char *msg) } } -void DataArray::checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const char *msg) const throw(INTERP_KERNEL::Exception) +void DataArray::checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const std::string& msg) const { checkNbOfTuples(nbOfTuples,msg); checkNbOfComps(nbOfCompo,msg); @@ -566,7 +566,7 @@ void DataArray::checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const char /*! * Simply this method checks that \b value is in [0,\b ref). */ -void DataArray::CheckValueInRange(int ref, int value, const char *msg) throw(INTERP_KERNEL::Exception) +void DataArray::CheckValueInRange(int ref, int value, const std::string& msg) { if(value<0 || value>=ref) { @@ -579,7 +579,7 @@ void DataArray::CheckValueInRange(int ref, int value, const char *msg) throw(INT * This method checks that [\b start, \b end) is compliant with ref length \b value. * typicaly start in [0,\b value) and end in [0,\b value). If value==start and start==end, it is supported. */ -void DataArray::CheckValueInRangeEx(int value, int start, int end, const char *msg) throw(INTERP_KERNEL::Exception) +void DataArray::CheckValueInRangeEx(int value, int start, int end, const std::string& msg) { if(start<0 || start>=value) { @@ -596,7 +596,7 @@ void DataArray::CheckValueInRangeEx(int value, int start, int end, const char *m } } -void DataArray::CheckClosingParInRange(int ref, int value, const char *msg) throw(INTERP_KERNEL::Exception) +void DataArray::CheckClosingParInRange(int ref, int value, const std::string& msg) { if(value<0 || value>ref) { @@ -623,7 +623,7 @@ void DataArray::CheckClosingParInRange(int ref, int value, const char *msg) thro * \throw If \a nbOfSlices not > 0 * \throw If \a sliceId not in [0,nbOfSlices) */ -void DataArray::GetSlice(int start, int stop, int step, int sliceId, int nbOfSlices, int& startSlice, int& stopSlice) throw(INTERP_KERNEL::Exception) +void DataArray::GetSlice(int start, int stop, int step, int sliceId, int nbOfSlices, int& startSlice, int& stopSlice) { if(nbOfSlices<=0) { @@ -644,7 +644,7 @@ void DataArray::GetSlice(int start, int stop, int step, int sliceId, int nbOfSli stopSlice=stop; } -int DataArray::GetNumberOfItemGivenBES(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception) +int DataArray::GetNumberOfItemGivenBES(int begin, int end, int step, const std::string& msg) { if(endgetNumberOfComponents() != 1 * \throw If \a this is not allocated. */ -void DataArrayDouble::iota(double init) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::iota(double init) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -1022,7 +1022,7 @@ void DataArrayDouble::iota(double init) throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this is not allocated. */ -bool DataArrayDouble::isUniform(double val, double eps) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::isUniform(double val, double eps) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -1044,7 +1044,7 @@ bool DataArrayDouble::isUniform(double val, double eps) const throw(INTERP_KERNE * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. */ -void DataArrayDouble::sort(bool asc) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::sort(bool asc) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -1058,7 +1058,7 @@ void DataArrayDouble::sort(bool asc) throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() < 1. * \throw If \a this is not allocated. */ -void DataArrayDouble::reverse() throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reverse() { checkAllocated(); _mem.reverse(getNumberOfComponents()); @@ -1077,7 +1077,7 @@ void DataArrayDouble::reverse() throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this is not allocated. */ -void DataArrayDouble::checkMonotonic(bool increasing, double eps) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::checkMonotonic(bool increasing, double eps) const { if(!isMonotonic(increasing,eps)) { @@ -1098,7 +1098,7 @@ void DataArrayDouble::checkMonotonic(bool increasing, double eps) const throw(IN * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this is not allocated. */ -bool DataArrayDouble::isMonotonic(bool increasing, double eps) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::isMonotonic(bool increasing, double eps) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -1136,21 +1136,21 @@ bool DataArrayDouble::isMonotonic(bool increasing, double eps) const throw(INTER * DataArrayDouble. This text is shown when a DataArrayDouble is printed in Python. * \return std::string - text describing \a this DataArrayDouble. */ -std::string DataArrayDouble::repr() const throw(INTERP_KERNEL::Exception) +std::string DataArrayDouble::repr() const { std::ostringstream ret; reprStream(ret); return ret.str(); } -std::string DataArrayDouble::reprZip() const throw(INTERP_KERNEL::Exception) +std::string DataArrayDouble::reprZip() const { std::ostringstream ret; reprZipStream(ret); return ret.str(); } -void DataArrayDouble::writeVTK(std::ostream& ofs, int indent, const char *nameInFile, DataArrayByte *byteArr) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::writeVTK(std::ostream& ofs, int indent, const std::string& nameInFile, DataArrayByte *byteArr) const { static const char SPACE[4]={' ',' ',' ',' '}; checkAllocated(); @@ -1164,7 +1164,7 @@ void DataArrayDouble::writeVTK(std::ostream& ofs, int indent, const char *nameIn float *pt(tmp); // to make Visual C++ happy : instead of std::copy(begin(),end(),(float *)tmp); for(const double *src=begin();src!=end();src++,pt++) - *pt=(int)*src; + *pt=float(*src); const char *data(reinterpret_cast((float *)tmp)); std::size_t sz(getNbOfElems()*sizeof(float)); byteArr->insertAtTheEnd(data,data+sz); @@ -1178,33 +1178,33 @@ void DataArrayDouble::writeVTK(std::ostream& ofs, int indent, const char *nameIn ofs << std::endl << idt << "\n"; } -void DataArrayDouble::reprStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprStream(std::ostream& stream) const { stream << "Name of double array : \"" << _name << "\"\n"; reprWithoutNameStream(stream); } -void DataArrayDouble::reprZipStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprZipStream(std::ostream& stream) const { stream << "Name of double array : \"" << _name << "\"\n"; reprZipWithoutNameStream(stream); } -void DataArrayDouble::reprWithoutNameStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprWithoutNameStream(std::ostream& stream) const { DataArray::reprWithoutNameStream(stream); stream.precision(17); _mem.repr(getNumberOfComponents(),stream); } -void DataArrayDouble::reprZipWithoutNameStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprZipWithoutNameStream(std::ostream& stream) const { DataArray::reprWithoutNameStream(stream); stream.precision(17); _mem.reprZip(getNumberOfComponents(),stream); } -void DataArrayDouble::reprCppStream(const char *varName, std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprCppStream(const std::string& varName, std::ostream& stream) const { int nbTuples=getNumberOfTuples(),nbComp=getNumberOfComponents(); const double *data=getConstPointer(); @@ -1225,7 +1225,7 @@ void DataArrayDouble::reprCppStream(const char *varName, std::ostream& stream) c /*! * Method that gives a quick overvien of \a this for python. */ -void DataArrayDouble::reprQuickOverview(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprQuickOverview(std::ostream& stream) const { static const std::size_t MAX_NB_OF_BYTE_IN_REPR=300; stream << "DataArrayDouble C++ instance at " << this << ". "; @@ -1245,7 +1245,7 @@ void DataArrayDouble::reprQuickOverview(std::ostream& stream) const throw(INTERP stream << "*** No data allocated ****"; } -void DataArrayDouble::reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const { const double *data=begin(); int nbOfTuples=getNumberOfTuples(); @@ -1290,7 +1290,7 @@ void DataArrayDouble::reprQuickOverviewData(std::ostream& stream, std::size_t ma * \param [out] reason In case of inequality returns the reason. * \sa DataArrayDouble::isEqual */ -bool DataArrayDouble::isEqualIfNotWhy(const DataArrayDouble& other, double prec, std::string& reason) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::isEqualIfNotWhy(const DataArrayDouble& other, double prec, std::string& reason) const { if(!areInfoEqualsIfNotWhy(other,reason)) return false; @@ -1304,7 +1304,7 @@ bool DataArrayDouble::isEqualIfNotWhy(const DataArrayDouble& other, double prec, * \param [in] prec - precision value to compare numeric data of the arrays. * \return bool - \a true if the two arrays are equal, \a false else. */ -bool DataArrayDouble::isEqual(const DataArrayDouble& other, double prec) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::isEqual(const DataArrayDouble& other, double prec) const { std::string tmp; return isEqualIfNotWhy(other,prec,tmp); @@ -1317,7 +1317,7 @@ bool DataArrayDouble::isEqual(const DataArrayDouble& other, double prec) const t * \param [in] prec - precision value to compare numeric data of the arrays. * \return bool - \a true if the values of two arrays are equal, \a false else. */ -bool DataArrayDouble::isEqualWithoutConsideringStr(const DataArrayDouble& other, double prec) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::isEqualWithoutConsideringStr(const DataArrayDouble& other, double prec) const { std::string tmp; return _mem.isEqual(other._mem,prec,tmp); @@ -1330,7 +1330,7 @@ bool DataArrayDouble::isEqualWithoutConsideringStr(const DataArrayDouble& other, * \throw If \a this is not allocated. * \throw If \a nbOfTuples is negative. */ -void DataArrayDouble::reAlloc(int nbOfTuples) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::reAlloc(int nbOfTuples) { if(nbOfTuples<0) throw INTERP_KERNEL::Exception("DataArrayDouble::reAlloc : input new number of tuples should be >=0 !"); @@ -1348,9 +1348,8 @@ DataArrayInt *DataArrayDouble::convertToIntArr() const { DataArrayInt *ret=DataArrayInt::New(); ret->alloc(getNumberOfTuples(),getNumberOfComponents()); - std::size_t nbOfVals=getNbOfElems(); int *dest=ret->getPointer(); - // to make Visual C++ happy : instead of std::copy(src,src+nbOfVals,dest); + // to make Visual C++ happy : instead of std::size_t nbOfVals=getNbOfElems(); std::copy(src,src+nbOfVals,dest); for(const double *src=begin();src!=end();src++,dest++) *dest=(int)*src; ret->copyStringInfoFrom(*this); @@ -1367,7 +1366,7 @@ DataArrayInt *DataArrayDouble::convertToIntArr() const * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::fromNoInterlace() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::fromNoInterlace() const { if(_mem.isNull()) throw INTERP_KERNEL::Exception("DataArrayDouble::fromNoInterlace : Not defined array !"); @@ -1387,7 +1386,7 @@ DataArrayDouble *DataArrayDouble::fromNoInterlace() const throw(INTERP_KERNEL::E * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::toNoInterlace() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::toNoInterlace() const { if(_mem.isNull()) throw INTERP_KERNEL::Exception("DataArrayDouble::toNoInterlace : Not defined array !"); @@ -1406,7 +1405,7 @@ DataArrayDouble *DataArrayDouble::toNoInterlace() const throw(INTERP_KERNEL::Exc * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. */ -void DataArrayDouble::renumberInPlace(const int *old2New) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::renumberInPlace(const int *old2New) { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -1439,7 +1438,7 @@ void DataArrayDouble::renumberInPlace(const int *old2New) throw(INTERP_KERNEL::E * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller * is to delete using decrRef() as it is no more needed. */ -void DataArrayDouble::renumberInPlaceR(const int *new2Old) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::renumberInPlaceR(const int *new2Old) { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -1474,7 +1473,7 @@ void DataArrayDouble::renumberInPlaceR(const int *new2Old) throw(INTERP_KERNEL:: * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::renumber(const int *old2New) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::renumber(const int *old2New) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -1501,7 +1500,7 @@ DataArrayDouble *DataArrayDouble::renumber(const int *old2New) const throw(INTER * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller * is to delete using decrRef() as it is no more needed. */ -DataArrayDouble *DataArrayDouble::renumberR(const int *new2Old) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::renumberR(const int *new2Old) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -1530,7 +1529,7 @@ DataArrayDouble *DataArrayDouble::renumberR(const int *new2Old) const throw(INTE * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller * is to delete using decrRef() as it is no more needed. */ -DataArrayDouble *DataArrayDouble::renumberAndReduce(const int *old2New, int newNbOfTuple) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::renumberAndReduce(const int *old2New, int newNbOfTuple) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -1600,7 +1599,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleId(const int *new2OldBg, const in * is to delete using decrRef() as it is no more needed. * \throw If \a new2OldEnd - \a new2OldBg > \a this->getNumberOfTuples(). */ -DataArrayDouble *DataArrayDouble::selectByTupleIdSafe(const int *new2OldBg, const int *new2OldEnd) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::selectByTupleIdSafe(const int *new2OldBg, const int *new2OldEnd) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); @@ -1635,7 +1634,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleIdSafe(const int *new2OldBg, cons * is to delete using decrRef() as it is no more needed. * \sa DataArrayDouble::substr. */ -DataArrayDouble *DataArrayDouble::selectByTupleId2(int bg, int end2, int step) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::selectByTupleId2(int bg, int end2, int step) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); @@ -1662,7 +1661,7 @@ DataArrayDouble *DataArrayDouble::selectByTupleId2(int bg, int end2, int step) c * \throw If \a end > \a this->getNumberOfTuples(). * \throw If \a this is not allocated. */ -DataArray *DataArrayDouble::selectByTupleRanges(const std::vector >& ranges) const throw(INTERP_KERNEL::Exception) +DataArray *DataArrayDouble::selectByTupleRanges(const std::vector >& ranges) const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -1729,7 +1728,7 @@ DataArray *DataArrayDouble::selectByTupleRanges(const std::vectorgetNumberOfTuples(). * \sa DataArrayDouble::selectByTupleId2 */ -DataArrayDouble *DataArrayDouble::substr(int tupleIdBg, int tupleIdEnd) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::substr(int tupleIdBg, int tupleIdEnd) const { checkAllocated(); int nbt=getNumberOfTuples(); @@ -1766,7 +1765,7 @@ DataArrayDouble *DataArrayDouble::substr(int tupleIdBg, int tupleIdEnd) const th * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::changeNbOfComponents(int newNbOfComp, double dftValue) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::changeNbOfComponents(int newNbOfComp, double dftValue) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); @@ -1784,10 +1783,10 @@ DataArrayDouble *DataArrayDouble::changeNbOfComponents(int newNbOfComp, double d for(;jsetName(getName().c_str()); + ret->setName(getName()); for(int i=0;isetInfoOnComponent(i,getInfoOnComponent(i).c_str()); - ret->setName(getName().c_str()); + ret->setInfoOnComponent(i,getInfoOnComponent(i)); + ret->setName(getName()); return ret.retn(); } @@ -1802,7 +1801,7 @@ DataArrayDouble *DataArrayDouble::changeNbOfComponents(int newNbOfComp, double d * \throw If the rearrange method would lead to a number of tuples higher than 2147483647 (maximal capacity of int32 !). * \warning This method erases all (name and unit) component info set before! */ -void DataArrayDouble::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::rearrange(int newNbOfCompo) { checkAllocated(); if(newNbOfCompo<1) @@ -1827,7 +1826,7 @@ void DataArrayDouble::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception * \throw If \a this is not allocated. * \sa rearrange() */ -void DataArrayDouble::transpose() throw(INTERP_KERNEL::Exception) +void DataArrayDouble::transpose() { checkAllocated(); int nbOfTuples=getNumberOfTuples(); @@ -1849,7 +1848,7 @@ void DataArrayDouble::transpose() throw(INTERP_KERNEL::Exception) * * \ref py_mcdataarraydouble_KeepSelectedComponents "Here is a Python example". */ -DataArray *DataArrayDouble::keepSelectedComponents(const std::vector& compoIds) const throw(INTERP_KERNEL::Exception) +DataArray *DataArrayDouble::keepSelectedComponents(const std::vector& compoIds) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret(DataArrayDouble::New()); @@ -1884,7 +1883,7 @@ DataArray *DataArrayDouble::keepSelectedComponents(const std::vector& compo * * \ref py_mcdataarraydouble_meldwith "Here is a Python example". */ -void DataArrayDouble::meldWith(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::meldWith(const DataArrayDouble *other) { checkAllocated(); other->checkAllocated(); @@ -1918,7 +1917,7 @@ void DataArrayDouble::meldWith(const DataArrayDouble *other) throw(INTERP_KERNEL * \param [out] tupleIds - the tuple ids containing the same number of tuples than \a other has. * \sa DataArrayDouble::findCommonTuples */ -bool DataArrayDouble::areIncludedInMe(const DataArrayDouble *other, double prec, DataArrayInt *&tupleIds) const throw(INTERP_KERNEL::Exception) +bool DataArrayDouble::areIncludedInMe(const DataArrayDouble *other, double prec, DataArrayInt *&tupleIds) const { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::areIncludedInMe : input array is NULL !"); @@ -1960,25 +1959,28 @@ bool DataArrayDouble::areIncludedInMe(const DataArrayDouble *other, double prec, * [ \a commIndex[1], \a commIndex[2] ). \a commIndex->getNumberOfTuples()-1 * gives the number of groups of coincident tuples. * \throw If \a this is not allocated. - * \throw If the number of components is not in [1,2,3]. + * \throw If the number of components is not in [1,2,3,4]. * * \ref cpp_mcdataarraydouble_findcommontuples "Here is a C++ example". * * \ref py_mcdataarraydouble_findcommontuples "Here is a Python example". * \sa DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(), DataArrayDouble::areIncludedInMe */ -void DataArrayDouble::findCommonTuples(double prec, int limitTupleId, DataArrayInt *&comm, DataArrayInt *&commIndex) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::findCommonTuples(double prec, int limitTupleId, DataArrayInt *&comm, DataArrayInt *&commIndex) const { checkAllocated(); int nbOfCompo=getNumberOfComponents(); - if ((nbOfCompo<1) || (nbOfCompo>3)) //test before work - throw INTERP_KERNEL::Exception("DataArrayDouble::findCommonTuples : Unexpected spacedim of coords. Must be 1, 2 or 3."); + if ((nbOfCompo<1) || (nbOfCompo>4)) //test before work + throw INTERP_KERNEL::Exception("DataArrayDouble::findCommonTuples : Unexpected spacedim of coords. Must be 1, 2, 3 or 4."); int nbOfTuples=getNumberOfTuples(); // MEDCouplingAutoRefCountObjectPtr c(DataArrayInt::New()),cI(DataArrayInt::New()); c->alloc(0,1); cI->pushBackSilent(0); switch(nbOfCompo) { + case 4: + findCommonTuplesAlg<4>(begin(),nbOfTuples,limitTupleId,prec,c,cI); + break; case 3: findCommonTuplesAlg<3>(begin(),nbOfTuples,limitTupleId,prec,c,cI); break; @@ -1989,7 +1991,7 @@ void DataArrayDouble::findCommonTuples(double prec, int limitTupleId, DataArrayI findCommonTuplesAlg<1>(begin(),nbOfTuples,limitTupleId,prec,c,cI); break; default: - throw INTERP_KERNEL::Exception("DataArrayDouble::findCommonTuples : nb of components managed are 1,2 and 3 ! not implemented for other number of components !"); + throw INTERP_KERNEL::Exception("DataArrayDouble::findCommonTuples : nb of components managed are 1,2,3 and 4 ! not implemented for other number of components !"); } comm=c.retn(); commIndex=cI.retn(); @@ -2002,7 +2004,7 @@ void DataArrayDouble::findCommonTuples(double prec, int limitTupleId, DataArrayI * \return a newly allocated DataArrayDouble having one component and number of tuples equal to \a nbTimes * \c this->getNumberOfTuples. * \throw if \a this is not allocated or if \a this has not number of components set to one or if \a nbTimes is lower than 1. */ -DataArrayDouble *DataArrayDouble::duplicateEachTupleNTimes(int nbTimes) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::duplicateEachTupleNTimes(int nbTimes) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -2033,7 +2035,7 @@ DataArrayDouble *DataArrayDouble::duplicateEachTupleNTimes(int nbTimes) const th * \return the minimal distance between the two set of points \a this and \a other. * \sa DataArrayDouble::findClosestTupleId */ -double DataArrayDouble::minimalDistanceTo(const DataArrayDouble *other, int& thisTupleId, int& otherTupleId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::minimalDistanceTo(const DataArrayDouble *other, int& thisTupleId, int& otherTupleId) const { MEDCouplingAutoRefCountObjectPtr part1=findClosestTupleId(other); int nbOfCompo(getNumberOfComponents()); @@ -2060,7 +2062,7 @@ double DataArrayDouble::minimalDistanceTo(const DataArrayDouble *other, int& thi * \return a newly allocated (new object to be dealt by the caller) DataArrayInt having \c other->getNumberOfTuples() tuples and one components. * \sa DataArrayDouble::minimalDistanceTo */ -DataArrayInt *DataArrayDouble::findClosestTupleId(const DataArrayDouble *other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayDouble::findClosestTupleId(const DataArrayDouble *other) const { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::findClosestTupleId : other instance is NULL !"); @@ -2122,7 +2124,7 @@ DataArrayInt *DataArrayDouble::findClosestTupleId(const DataArrayDouble *other) * \throw If \a this and \a otherBBoxFrmt have not the same number of components. * \throw If \a this and \a otherBBoxFrmt number of components is not even (BBox format). */ -DataArrayInt *DataArrayDouble::computeNbOfInteractionsWith(const DataArrayDouble *otherBBoxFrmt, double eps) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayDouble::computeNbOfInteractionsWith(const DataArrayDouble *otherBBoxFrmt, double eps) const { if(!otherBBoxFrmt) throw INTERP_KERNEL::Exception("DataArrayDouble::computeNbOfInteractionsWith : input array is NULL !"); @@ -2186,11 +2188,11 @@ DataArrayInt *DataArrayDouble::computeNbOfInteractionsWith(const DataArrayDouble * \return DataArrayDouble * - the new instance of DataArrayDouble that the caller * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. - * \throw If the number of components is not in [1,2,3]. + * \throw If the number of components is not in [1,2,3,4]. * * \ref py_mcdataarraydouble_getdifferentvalues "Here is a Python example". */ -DataArrayDouble *DataArrayDouble::getDifferentValues(double prec, int limitTupleId) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::getDifferentValues(double prec, int limitTupleId) const { checkAllocated(); DataArrayInt *c0=0,*cI0=0; @@ -2214,7 +2216,7 @@ DataArrayDouble *DataArrayDouble::getDifferentValues(double prec, int limitTuple * * \ref py_mcdataarraydouble_setselectedcomponents "Here is a Python example". */ -void DataArrayDouble::setSelectedComponents(const DataArrayDouble *a, const std::vector& compoIds) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setSelectedComponents(const DataArrayDouble *a, const std::vector& compoIds) { if(!a) throw INTERP_KERNEL::Exception("DataArrayDouble::setSelectedComponents : input DataArrayDouble is NULL !"); @@ -2264,7 +2266,7 @@ void DataArrayDouble::setSelectedComponents(const DataArrayDouble *a, const std: * * \ref py_mcdataarraydouble_setpartofvalues1 "Here is a Python example". */ -void DataArrayDouble::setPartOfValues1(const DataArrayDouble *a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValues1(const DataArrayDouble *a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayDouble::setPartOfValues1 : input DataArrayDouble is NULL !"); @@ -2327,7 +2329,7 @@ void DataArrayDouble::setPartOfValues1(const DataArrayDouble *a, int bgTuples, i * * \ref py_mcdataarraydouble_setpartofvaluessimple1 "Here is a Python example". */ -void DataArrayDouble::setPartOfValuesSimple1(double a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValuesSimple1(double a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp) { const char msg[]="DataArrayDouble::setPartOfValuesSimple1"; checkAllocated(); @@ -2381,7 +2383,7 @@ void DataArrayDouble::setPartOfValuesSimple1(double a, int bgTuples, int endTupl * * \ref py_mcdataarraydouble_setpartofvalues2 "Here is a Python example". */ -void DataArrayDouble::setPartOfValues2(const DataArrayDouble *a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValues2(const DataArrayDouble *a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayDouble::setPartOfValues2 : input DataArrayDouble is NULL !"); @@ -2452,7 +2454,7 @@ void DataArrayDouble::setPartOfValues2(const DataArrayDouble *a, const int *bgTu * * \ref py_mcdataarraydouble_setpartofvaluessimple2 "Here is a Python example". */ -void DataArrayDouble::setPartOfValuesSimple2(double a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValuesSimple2(double a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp) { checkAllocated(); int nbComp=getNumberOfComponents(); @@ -2512,7 +2514,7 @@ void DataArrayDouble::setPartOfValuesSimple2(double a, const int *bgTuples, cons * * \ref py_mcdataarraydouble_setpartofvalues3 "Here is a Python example". */ -void DataArrayDouble::setPartOfValues3(const DataArrayDouble *a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValues3(const DataArrayDouble *a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayDouble::setPartOfValues3 : input DataArrayDouble is NULL !"); @@ -2584,7 +2586,7 @@ void DataArrayDouble::setPartOfValues3(const DataArrayDouble *a, const int *bgTu * * \ref py_mcdataarraydouble_setpartofvaluessimple3 "Here is a Python example". */ -void DataArrayDouble::setPartOfValuesSimple3(double a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValuesSimple3(double a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp) { const char msg[]="DataArrayDouble::setPartOfValuesSimple3"; checkAllocated(); @@ -2635,7 +2637,7 @@ void DataArrayDouble::setPartOfValuesSimple3(double a, const int *bgTuples, cons * \c len(\c range(\a bgComp,\a endComp,\a stepComp)). * */ -void DataArrayDouble::setPartOfValues4(const DataArrayDouble *a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValues4(const DataArrayDouble *a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayDouble::setPartOfValues4 : input DataArrayDouble is NULL !"); @@ -2679,7 +2681,7 @@ void DataArrayDouble::setPartOfValues4(const DataArrayDouble *a, int bgTuples, i } } -void DataArrayDouble::setPartOfValuesSimple4(double a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValuesSimple4(double a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp) { const char msg[]="DataArrayDouble::setPartOfValuesSimple4"; checkAllocated(); @@ -2716,7 +2718,7 @@ void DataArrayDouble::setPartOfValuesSimple4(double a, int bgTuples, int endTupl * \throw If any tuple index given by \a tuplesSelec is out of a valid range for * the corresponding (\a this or \a a) array. */ -void DataArrayDouble::setPartOfValuesAdv(const DataArrayDouble *a, const DataArrayInt *tuplesSelec) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setPartOfValuesAdv(const DataArrayDouble *a, const DataArrayInt *tuplesSelec) { if(!a || !tuplesSelec) throw INTERP_KERNEL::Exception("DataArrayDouble::setPartOfValuesAdv : input DataArrayDouble is NULL !"); @@ -2777,7 +2779,7 @@ void DataArrayDouble::setPartOfValuesAdv(const DataArrayDouble *a, const DataArr * \throw If any tuple index given by \a tuplesSelec is out of a valid range for * \a aBase array. */ -void DataArrayDouble::setContigPartOfSelectedValues(int tupleIdStart, const DataArray *aBase, const DataArrayInt *tuplesSelec) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setContigPartOfSelectedValues(int tupleIdStart, const DataArray *aBase, const DataArrayInt *tuplesSelec) { if(!aBase || !tuplesSelec) throw INTERP_KERNEL::Exception("DataArrayDouble::setContigPartOfSelectedValues : input DataArray is NULL !"); @@ -2839,7 +2841,7 @@ void DataArrayDouble::setContigPartOfSelectedValues(int tupleIdStart, const Data * non-empty range of increasing indices or indices are out of a valid range * for the array \a aBase. */ -void DataArrayDouble::setContigPartOfSelectedValues2(int tupleIdStart, const DataArray *aBase, int bg, int end2, int step) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::setContigPartOfSelectedValues2(int tupleIdStart, const DataArray *aBase, int bg, int end2, int step) { if(!aBase) throw INTERP_KERNEL::Exception("DataArrayDouble::setContigPartOfSelectedValues2 : input DataArray is NULL !"); @@ -2879,7 +2881,7 @@ void DataArrayDouble::setContigPartOfSelectedValues2(int tupleIdStart, const Dat * \throw If condition ( 0 <= tupleId < this->getNumberOfTuples() ) is violated. * \throw If condition ( 0 <= compoId < this->getNumberOfComponents() ) is violated. */ -double DataArrayDouble::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getIJSafe(int tupleId, int compoId) const { checkAllocated(); if(tupleId<0 || tupleId>=getNumberOfTuples()) @@ -2902,7 +2904,7 @@ double DataArrayDouble::getIJSafe(int tupleId, int compoId) const throw(INTERP_K * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this->getNumberOfTuples() < 1. */ -double DataArrayDouble::front() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::front() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -2920,7 +2922,7 @@ double DataArrayDouble::front() const throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this->getNumberOfTuples() < 1. */ -double DataArrayDouble::back() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::back() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -2955,14 +2957,14 @@ void DataArrayDouble::SetArrayIn(DataArrayDouble *newArray, DataArrayDouble* &ar * \param [in] nbOfTuple - new number of tuples in \a this. * \param [in] nbOfCompo - new number of components in \a this. */ -void DataArrayDouble::useArray(const double *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::useArray(const double *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo) { _info_on_compo.resize(nbOfCompo); _mem.useArray(array,ownership,type,(std::size_t)nbOfTuple*nbOfCompo); declareAsNew(); } -void DataArrayDouble::useExternalArrayWithRWAccess(const double *array, int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::useExternalArrayWithRWAccess(const double *array, int nbOfTuple, int nbOfCompo) { _info_on_compo.resize(nbOfCompo); _mem.useExternalArrayWithRWAccess(array,(std::size_t)nbOfTuple*nbOfCompo); @@ -2974,7 +2976,7 @@ void DataArrayDouble::useExternalArrayWithRWAccess(const double *array, int nbOf * is thrown. * \throw If zero is found in \a this array. */ -void DataArrayDouble::checkNoNullValues() const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::checkNoNullValues() const { const double *tmp=getConstPointer(); std::size_t nbOfElems=getNbOfElems(); @@ -2995,7 +2997,7 @@ void DataArrayDouble::checkNoNullValues() const throw(INTERP_KERNEL::Exception) * \a bounds[3] = \c max_of_component_1
* ... */ -void DataArrayDouble::getMinMaxPerComponent(double *bounds) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::getMinMaxPerComponent(double *bounds) const { checkAllocated(); int dim=getNumberOfComponents(); @@ -3031,7 +3033,7 @@ void DataArrayDouble::getMinMaxPerComponent(double *bounds) const throw(INTERP_K * * \throw If \a this is not allocated yet. */ -DataArrayDouble *DataArrayDouble::computeBBoxPerTuple(double epsilon)const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::computeBBoxPerTuple(double epsilon) const { checkAllocated(); const double *dataPtr=getConstPointer(); @@ -3069,7 +3071,7 @@ DataArrayDouble *DataArrayDouble::computeBBoxPerTuple(double epsilon)const throw * * \sa MEDCouplingPointSet::getNodeIdsNearPoints, DataArrayDouble::getDifferentValues */ -void DataArrayDouble::computeTupleIdsNearTuples(const DataArrayDouble *other, double eps, DataArrayInt *& c, DataArrayInt *& cI) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::computeTupleIdsNearTuples(const DataArrayDouble *other, double eps, DataArrayInt *& c, DataArrayInt *& cI) const { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::computeTupleIdsNearTuples : input pointer other is null !"); @@ -3113,7 +3115,7 @@ void DataArrayDouble::computeTupleIdsNearTuples(const DataArrayDouble *other, do * * \param [in] eps absolute epsilon. under that value of delta between max and min no scale is performed. */ -void DataArrayDouble::recenterForMaxPrecision(double eps) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::recenterForMaxPrecision(double eps) { checkAllocated(); int dim=getNumberOfComponents(); @@ -3137,7 +3139,7 @@ void DataArrayDouble::recenterForMaxPrecision(double eps) throw(INTERP_KERNEL::E * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -double DataArrayDouble::getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMaxValue(int& tupleId) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -3157,7 +3159,7 @@ double DataArrayDouble::getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exc * \return double - the maximal value among all values of \a this array. * \throw If \a this is not allocated. */ -double DataArrayDouble::getMaxValueInArray() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMaxValueInArray() const { checkAllocated(); const double *loc=std::max_element(begin(),end()); @@ -3173,7 +3175,7 @@ double DataArrayDouble::getMaxValueInArray() const throw(INTERP_KERNEL::Exceptio * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -double DataArrayDouble::getMaxValue2(DataArrayInt*& tupleIds) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMaxValue2(DataArrayInt*& tupleIds) const { int tmp; tupleIds=0; @@ -3189,7 +3191,7 @@ double DataArrayDouble::getMaxValue2(DataArrayInt*& tupleIds) const throw(INTERP * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -double DataArrayDouble::getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMinValue(int& tupleId) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -3209,7 +3211,7 @@ double DataArrayDouble::getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exc * \return double - the minimal value among all values of \a this array. * \throw If \a this is not allocated. */ -double DataArrayDouble::getMinValueInArray() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMinValueInArray() const { checkAllocated(); const double *loc=std::min_element(begin(),end()); @@ -3225,7 +3227,7 @@ double DataArrayDouble::getMinValueInArray() const throw(INTERP_KERNEL::Exceptio * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -double DataArrayDouble::getMinValue2(DataArrayInt*& tupleIds) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getMinValue2(DataArrayInt*& tupleIds) const { int tmp; tupleIds=0; @@ -3243,7 +3245,7 @@ double DataArrayDouble::getMinValue2(DataArrayInt*& tupleIds) const throw(INTERP * \throw If \a this is not allocated * */ -int DataArrayDouble::count(double value, double eps) const throw(INTERP_KERNEL::Exception) +int DataArrayDouble::count(double value, double eps) const { int ret=0; checkAllocated(); @@ -3263,7 +3265,7 @@ int DataArrayDouble::count(double value, double eps) const throw(INTERP_KERNEL:: * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -double DataArrayDouble::getAverageValue() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::getAverageValue() const { if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayDouble::getAverageValue : must be applied on DataArrayDouble with only one component, you can call 'rearrange' method before !"); @@ -3281,7 +3283,7 @@ double DataArrayDouble::getAverageValue() const throw(INTERP_KERNEL::Exception) * the square root of the inner product of vector. * \throw If \a this is not allocated. */ -double DataArrayDouble::norm2() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::norm2() const { checkAllocated(); double ret=0.; @@ -3294,25 +3296,50 @@ double DataArrayDouble::norm2() const throw(INTERP_KERNEL::Exception) /*! * Returns the maximum norm of the vector defined by \a this array. + * This method works even if the number of components is diferent from one. + * If the number of elements in \a this is 0, -1. is returned. * \return double - the value of the maximum norm, i.e. - * the maximal absolute value among values of \a this array. + * the maximal absolute value among values of \a this array (whatever its number of components). * \throw If \a this is not allocated. */ -double DataArrayDouble::normMax() const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::normMax() const { checkAllocated(); - double ret=-1.; - std::size_t nbOfElems=getNbOfElems(); - const double *pt=getConstPointer(); + double ret(-1.); + std::size_t nbOfElems(getNbOfElems()); + const double *pt(getConstPointer()); for(std::size_t i=0;iret) ret=val; } return ret; } +/*! + * Returns the minimum norm (absolute value) of the vector defined by \a this array. + * This method works even if the number of components is diferent from one. + * If the number of elements in \a this is 0, std::numeric_limits::max() is returned. + * \return double - the value of the minimum norm, i.e. + * the minimal absolute value among values of \a this array (whatever its number of components). + * \throw If \a this is not allocated. + */ +double DataArrayDouble::normMin() const +{ + checkAllocated(); + double ret(std::numeric_limits::max()); + std::size_t nbOfElems(getNbOfElems()); + const double *pt(getConstPointer()); + for(std::size_t i=0;igetNumberOfComponents(), allocated @@ -3320,7 +3347,7 @@ double DataArrayDouble::normMax() const throw(INTERP_KERNEL::Exception) * component. * \throw If \a this is not allocated. */ -void DataArrayDouble::accumulate(double *res) const throw(INTERP_KERNEL::Exception) +void DataArrayDouble::accumulate(double *res) const { checkAllocated(); const double *ptr=getConstPointer(); @@ -3345,7 +3372,7 @@ void DataArrayDouble::accumulate(double *res) const throw(INTERP_KERNEL::Excepti * \return the min distance. * \sa MEDCouplingUMesh::distanceToPoint */ -double DataArrayDouble::distanceToTuple(const double *tupleBg, const double *tupleEnd, int& tupleId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::distanceToTuple(const double *tupleBg, const double *tupleEnd, int& tupleId) const { checkAllocated(); int nbTuple=getNumberOfTuples(); @@ -3378,7 +3405,7 @@ double DataArrayDouble::distanceToTuple(const double *tupleBg, const double *tup * \throw If \a the condition ( 0 <= \a compId < \a this->getNumberOfComponents() ) is * not respected. */ -double DataArrayDouble::accumulate(int compId) const throw(INTERP_KERNEL::Exception) +double DataArrayDouble::accumulate(int compId) const { checkAllocated(); const double *ptr=getConstPointer(); @@ -3409,7 +3436,7 @@ double DataArrayDouble::accumulate(int compId) const throw(INTERP_KERNEL::Except * \throw If there is an id in [ \a bgOfIndex, \a endOfIndex ) not in [0, \c this->getNumberOfTuples). * \throw If std::distance(bgOfIndex,endOfIndex)==0. */ -DataArrayDouble *DataArrayDouble::accumulatePerChunck(const int *bgOfIndex, const int *endOfIndex) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::accumulatePerChunck(const int *bgOfIndex, const int *endOfIndex) const { if(!bgOfIndex || !endOfIndex) throw INTERP_KERNEL::Exception("DataArrayDouble::accumulatePerChunck : input pointer NULL !"); @@ -3462,7 +3489,7 @@ DataArrayDouble *DataArrayDouble::accumulatePerChunck(const int *bgOfIndex, cons * does not contain any textual info on components. * \throw If \a this->getNumberOfComponents() != 2. */ -DataArrayDouble *DataArrayDouble::fromPolarToCart() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::fromPolarToCart() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3492,7 +3519,7 @@ DataArrayDouble *DataArrayDouble::fromPolarToCart() const throw(INTERP_KERNEL::E * is to delete this array using decrRef() as it is no more needed. * \throw If \a this->getNumberOfComponents() != 3. */ -DataArrayDouble *DataArrayDouble::fromCylToCart() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::fromCylToCart() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3509,7 +3536,7 @@ DataArrayDouble *DataArrayDouble::fromCylToCart() const throw(INTERP_KERNEL::Exc w[1]=wIn[0]*sin(wIn[1]); w[2]=wIn[2]; } - ret->setInfoOnComponent(2,getInfoOnComponent(2).c_str()); + ret->setInfoOnComponent(2,getInfoOnComponent(2)); return ret; } @@ -3524,7 +3551,7 @@ DataArrayDouble *DataArrayDouble::fromCylToCart() const throw(INTERP_KERNEL::Exc * is to delete this array using decrRef() as it is no more needed. * \throw If \a this->getNumberOfComponents() != 3. */ -DataArrayDouble *DataArrayDouble::fromSpherToCart() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::fromSpherToCart() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3553,7 +3580,7 @@ DataArrayDouble *DataArrayDouble::fromSpherToCart() const throw(INTERP_KERNEL::E * The caller is to delete this result array using decrRef() as it is no more needed. * \throw If \a this->getNumberOfComponents() != 6. */ -DataArrayDouble *DataArrayDouble::doublyContractedProduct() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::doublyContractedProduct() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3579,7 +3606,7 @@ DataArrayDouble *DataArrayDouble::doublyContractedProduct() const throw(INTERP_K * needed. * \throw If \a this->getNumberOfComponents() is not in [4,6,9]. */ -DataArrayDouble *DataArrayDouble::determinant() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::determinant() const { checkAllocated(); DataArrayDouble *ret=DataArrayDouble::New(); @@ -3617,7 +3644,7 @@ DataArrayDouble *DataArrayDouble::determinant() const throw(INTERP_KERNEL::Excep * needed. * \throw If \a this->getNumberOfComponents() != 6. */ -DataArrayDouble *DataArrayDouble::eigenValues() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::eigenValues() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3643,7 +3670,7 @@ DataArrayDouble *DataArrayDouble::eigenValues() const throw(INTERP_KERNEL::Excep * needed. * \throw If \a this->getNumberOfComponents() != 6. */ -DataArrayDouble *DataArrayDouble::eigenVectors() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::eigenVectors() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3675,7 +3702,7 @@ DataArrayDouble *DataArrayDouble::eigenVectors() const throw(INTERP_KERNEL::Exce * needed. * \throw If \a this->getNumberOfComponents() is not in [4,6,9]. */ -DataArrayDouble *DataArrayDouble::inverse() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::inverse() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3734,7 +3761,7 @@ if(nbOfComp==6) * needed. * \throw If \a this->getNumberOfComponents() is not in [4,6,9]. */ -DataArrayDouble *DataArrayDouble::trace() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::trace() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3766,7 +3793,7 @@ DataArrayDouble *DataArrayDouble::trace() const throw(INTERP_KERNEL::Exception) * needed. * \throw If \a this->getNumberOfComponents() != 6. */ -DataArrayDouble *DataArrayDouble::deviator() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::deviator() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3799,7 +3826,7 @@ DataArrayDouble *DataArrayDouble::deviator() const throw(INTERP_KERNEL::Exceptio * needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::magnitude() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::magnitude() const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -3818,6 +3845,28 @@ DataArrayDouble *DataArrayDouble::magnitude() const throw(INTERP_KERNEL::Excepti return ret; } +/*! + * Computes for each tuple the sum of number of components values in the tuple and return it. + * + * \return DataArrayDouble * - the new instance of DataArrayDouble containing the + * same number of tuples as \a this array and one component. + * The caller is to delete this result array using decrRef() as it is no more + * needed. + * \throw If \a this is not allocated. + */ +DataArrayDouble *DataArrayDouble::sumPerTuple() const +{ + checkAllocated(); + int nbOfComp(getNumberOfComponents()),nbOfTuple(getNumberOfTuples()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayDouble::New()); + ret->alloc(nbOfTuple,1); + const double *src(getConstPointer()); + double *dest(ret->getPointer()); + for(int i=0;i(fabs)); declareAsNew(); } +/*! + * This method builds a new instance of \a this object containing the result of std::abs applied of all elements in \a this. + * This method is a const method (that do not change any values in \a this) contrary to DataArrayDouble::abs method. + * + * \return DataArrayDouble * - the new instance of DataArrayDouble containing the + * same number of tuples and component as \a this array. + * The caller is to delete this result array using decrRef() as it is no more + * needed. + * \throw If \a this is not allocated. + * \sa DataArrayDouble::abs + */ +DataArrayDouble *DataArrayDouble::computeAbs() const +{ + checkAllocated(); + DataArrayDouble *newArr(DataArrayDouble::New()); + int nbOfTuples(getNumberOfTuples()); + int nbOfComp(getNumberOfComponents()); + newArr->alloc(nbOfTuples,nbOfComp); + std::transform(begin(),end(),newArr->getPointer(),std::ptr_fun(fabs)); + newArr->copyStringInfoFrom(*this); + return newArr; +} + /*! * Apply a liner function to a given component of \a this array, so that * an array element (x) becomes \f$ a * x + b \f$. @@ -4005,7 +4081,7 @@ void DataArrayDouble::abs() throw(INTERP_KERNEL::Exception) * \param [in] compoId - the index of component to modify. * \throw If \a this is not allocated. */ -void DataArrayDouble::applyLin(double a, double b, int compoId) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::applyLin(double a, double b, int compoId) { checkAllocated(); double *ptr=getPointer()+compoId; @@ -4023,7 +4099,7 @@ void DataArrayDouble::applyLin(double a, double b, int compoId) throw(INTERP_KER * \param [in] b - the second coefficient of the function. * \throw If \a this is not allocated. */ -void DataArrayDouble::applyLin(double a, double b) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::applyLin(double a, double b) { checkAllocated(); double *ptr=getPointer(); @@ -4043,7 +4119,7 @@ void DataArrayDouble::applyLin(double a, double b) throw(INTERP_KERNEL::Exceptio * \throw If \a this is not allocated. * \throw If there is an element equal to 0.0 in \a this array. */ -void DataArrayDouble::applyInv(double numerator) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::applyInv(double numerator) { checkAllocated(); double *ptr=getPointer(); @@ -4072,7 +4148,7 @@ void DataArrayDouble::applyInv(double numerator) throw(INTERP_KERNEL::Exception) * needed. * \throw If \a this is not allocated. */ -DataArrayDouble *DataArrayDouble::negate() const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::negate() const { checkAllocated(); DataArrayDouble *newArr=DataArrayDouble::New(); @@ -4095,7 +4171,7 @@ DataArrayDouble *DataArrayDouble::negate() const throw(INTERP_KERNEL::Exception) * array and \a val is \b not integer, all elements processed before detection of the zero element remain * modified. */ -void DataArrayDouble::applyPow(double val) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::applyPow(double val) { checkAllocated(); double *ptr=getPointer(); @@ -4133,7 +4209,7 @@ void DataArrayDouble::applyPow(double val) throw(INTERP_KERNEL::Exception) * array, all elements processed before detection of the zero element remain * modified. */ -void DataArrayDouble::applyRPow(double val) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::applyRPow(double val) { checkAllocated(); if(val<0.) @@ -4163,7 +4239,7 @@ void DataArrayDouble::applyRPow(double val) throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If \a func returns \a false. */ -DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, FunctionToEvaluate func) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, FunctionToEvaluate func) const { checkAllocated(); DataArrayDouble *newArr=DataArrayDouble::New(); @@ -4200,7 +4276,7 @@ DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, FunctionToEvaluate fun * \throw If \a this is not allocated. * \throw If computing \a func fails. */ -DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, const char *func) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, const std::string& func) const { checkAllocated(); INTERP_KERNEL::ExprParser expr(func); @@ -4254,7 +4330,7 @@ DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, const char *func) cons * \throw If \a this is not allocated. * \throw If computing \a func fails. */ -DataArrayDouble *DataArrayDouble::applyFunc(const char *func) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::applyFunc(const std::string& func) const { checkAllocated(); INTERP_KERNEL::ExprParser expr(func); @@ -4300,7 +4376,7 @@ DataArrayDouble *DataArrayDouble::applyFunc(const char *func) const throw(INTERP * \throw If \a func contains vars that are not in \a this->getInfoOnComponent(). * \throw If computing \a func fails. */ -DataArrayDouble *DataArrayDouble::applyFunc2(int nbOfComp, const char *func) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::applyFunc2(int nbOfComp, const std::string& func) const { checkAllocated(); INTERP_KERNEL::ExprParser expr(func); @@ -4356,7 +4432,7 @@ DataArrayDouble *DataArrayDouble::applyFunc2(int nbOfComp, const char *func) con * \throw If \a func contains vars not in \a varsOrder. * \throw If computing \a func fails. */ -DataArrayDouble *DataArrayDouble::applyFunc3(int nbOfComp, const std::vector& varsOrder, const char *func) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::applyFunc3(int nbOfComp, const std::vector& varsOrder, const std::string& func) const { checkAllocated(); INTERP_KERNEL::ExprParser expr(func); @@ -4396,7 +4472,7 @@ DataArrayDouble *DataArrayDouble::applyFunc3(int nbOfComp, const std::vectorgetNumberOfComponents() != 1. * + * \sa DataArrayDouble::getIdsNotInRange + * * \ref cpp_mcdataarraydouble_getidsinrange "Here is a C++ example".
* \ref py_mcdataarraydouble_getidsinrange "Here is a Python example". */ -DataArrayInt *DataArrayDouble::getIdsInRange(double vmin, double vmax) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayDouble::getIdsInRange(double vmin, double vmax) const { checkAllocated(); if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayDouble::getIdsInRange : this must have exactly one component !"); - const double *cptr=getConstPointer(); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); ret->alloc(0,1); - int nbOfTuples=getNumberOfTuples(); + const double *cptr(begin()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); + int nbOfTuples(getNumberOfTuples()); for(int i=0;i=vmin && *cptr<=vmax) ret->pushBackSilent(i); return ret.retn(); } +/*! + * Returns a new DataArrayInt contating indices of tuples of \a this one-dimensional + * array whose values are not within a given range. Textual data is not copied. + * \param [in] vmin - a lowest not acceptable value (excluded). + * \param [in] vmax - a greatest not acceptable value (excluded). + * \return DataArrayInt * - the new instance of DataArrayInt. + * The caller is to delete this result array using decrRef() as it is no more + * needed. + * \throw If \a this->getNumberOfComponents() != 1. + * + * \sa DataArrayDouble::getIdsInRange + */ +DataArrayInt *DataArrayDouble::getIdsNotInRange(double vmin, double vmax) const +{ + checkAllocated(); + if(getNumberOfComponents()!=1) + throw INTERP_KERNEL::Exception("DataArrayDouble::getIdsNotInRange : this must have exactly one component !"); + const double *cptr(begin()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); + int nbOfTuples(getNumberOfTuples()); + for(int i=0;ivmax) + ret->pushBackSilent(i); + return ret.retn(); +} + /*! * Returns a new DataArrayDouble by concatenating two given arrays, so that (1) the number * of tuples in the result array is a sum of the number of tuples of given arrays and (2) @@ -4478,7 +4582,7 @@ DataArrayInt *DataArrayDouble::getIdsInRange(double vmin, double vmax) const thr * \throw If both \a a1 and \a a2 are NULL. * \throw If \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents(). */ -DataArrayDouble *DataArrayDouble::Aggregate(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Aggregate(const DataArrayDouble *a1, const DataArrayDouble *a2) { std::vector tmp(2); tmp[0]=a1; tmp[1]=a2; @@ -4491,6 +4595,8 @@ DataArrayDouble *DataArrayDouble::Aggregate(const DataArrayDouble *a1, const Dat * the number of component in the result array is same as that of each of given arrays. * Info on components is copied from the first of the given arrays. Number of components * in the given arrays must be the same. + * If the number of non null of elements in \a arr is equal to one the returned object is a copy of it + * not the object itself. * \param [in] arr - a sequence of arrays to include in the result array. * \return DataArrayDouble * - the new instance of DataArrayDouble. * The caller is to delete this result array using decrRef() as it is no more @@ -4498,7 +4604,7 @@ DataArrayDouble *DataArrayDouble::Aggregate(const DataArrayDouble *a1, const Dat * \throw If all arrays within \a arr are NULL. * \throw If getNumberOfComponents() of arrays within \a arr. */ -DataArrayDouble *DataArrayDouble::Aggregate(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Aggregate(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -4540,7 +4646,7 @@ DataArrayDouble *DataArrayDouble::Aggregate(const std::vectorgetNumberOfTuples() != \a a2->getNumberOfTuples() */ -DataArrayDouble *DataArrayDouble::Meld(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Meld(const DataArrayDouble *a1, const DataArrayDouble *a2) { std::vector arr(2); arr[0]=a1; arr[1]=a2; @@ -4562,7 +4668,7 @@ DataArrayDouble *DataArrayDouble::Meld(const DataArrayDouble *a1, const DataArra * \throw If any given array is not allocated. * \throw If getNumberOfTuples() of arrays within \a arr is different. */ -DataArrayDouble *DataArrayDouble::Meld(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Meld(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -4599,7 +4705,7 @@ DataArrayDouble *DataArrayDouble::Meld(const std::vectorsetInfoOnComponent(k,a[i]->getInfoOnComponent(j).c_str()); + ret->setInfoOnComponent(k,a[i]->getInfoOnComponent(j)); return ret; } @@ -4619,7 +4725,7 @@ DataArrayDouble *DataArrayDouble::Meld(const std::vectorgetNumberOfTuples() != \a a2->getNumberOfTuples() * \throw If \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() */ -DataArrayDouble *DataArrayDouble::Dot(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Dot(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Dot : input DataArrayDouble instance is NULL !"); @@ -4643,8 +4749,8 @@ DataArrayDouble *DataArrayDouble::Dot(const DataArrayDouble *a1, const DataArray sum+=a1Ptr[i*nbOfComp+j]*a2Ptr[i*nbOfComp+j]; retPtr[i]=sum; } - ret->setInfoOnComponent(0,a1->getInfoOnComponent(0).c_str()); - ret->setName(a1->getName().c_str()); + ret->setInfoOnComponent(0,a1->getInfoOnComponent(0)); + ret->setName(a1->getName()); return ret; } @@ -4665,7 +4771,7 @@ DataArrayDouble *DataArrayDouble::Dot(const DataArrayDouble *a1, const DataArray * \throw If \a a1->getNumberOfComponents() != 3 * \throw If \a a2->getNumberOfComponents() != 3 */ -DataArrayDouble *DataArrayDouble::CrossProduct(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::CrossProduct(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::CrossProduct : input DataArrayDouble instance is NULL !"); @@ -4705,7 +4811,7 @@ DataArrayDouble *DataArrayDouble::CrossProduct(const DataArrayDouble *a1, const * \throw If \a a1->getNumberOfTuples() != \a a2->getNumberOfTuples() * \throw If \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() */ -DataArrayDouble *DataArrayDouble::Max(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Max(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Max : input DataArrayDouble instance is NULL !"); @@ -4740,7 +4846,7 @@ DataArrayDouble *DataArrayDouble::Max(const DataArrayDouble *a1, const DataArray * \throw If \a a1->getNumberOfTuples() != \a a2->getNumberOfTuples() * \throw If \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() */ -DataArrayDouble *DataArrayDouble::Min(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Min(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Min : input DataArrayDouble instance is NULL !"); @@ -4787,7 +4893,7 @@ DataArrayDouble *DataArrayDouble::Min(const DataArrayDouble *a1, const DataArray * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayDouble *DataArrayDouble::Add(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Add(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Add : input DataArrayDouble instance is NULL !"); @@ -4874,7 +4980,7 @@ DataArrayDouble *DataArrayDouble::Add(const DataArrayDouble *a1, const DataArray * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayDouble::addEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::addEqual(const DataArrayDouble *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::addEqual : input DataArrayDouble instance is NULL !"); @@ -4943,7 +5049,7 @@ void DataArrayDouble::addEqual(const DataArrayDouble *other) throw(INTERP_KERNEL * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayDouble *DataArrayDouble::Substract(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Substract(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Substract : input DataArrayDouble instance is NULL !"); @@ -5015,7 +5121,7 @@ DataArrayDouble *DataArrayDouble::Substract(const DataArrayDouble *a1, const Dat * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayDouble::substractEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::substractEqual(const DataArrayDouble *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::substractEqual : input DataArrayDouble instance is NULL !"); @@ -5084,7 +5190,7 @@ void DataArrayDouble::substractEqual(const DataArrayDouble *other) throw(INTERP_ * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayDouble *DataArrayDouble::Multiply(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Multiply(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Multiply : input DataArrayDouble instance is NULL !"); @@ -5171,7 +5277,7 @@ DataArrayDouble *DataArrayDouble::Multiply(const DataArrayDouble *a1, const Data * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayDouble::multiplyEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::multiplyEqual(const DataArrayDouble *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::multiplyEqual : input DataArrayDouble instance is NULL !"); @@ -5241,7 +5347,7 @@ void DataArrayDouble::multiplyEqual(const DataArrayDouble *other) throw(INTERP_K * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayDouble *DataArrayDouble::Divide(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Divide(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Divide : input DataArrayDouble instance is NULL !"); @@ -5314,7 +5420,7 @@ DataArrayDouble *DataArrayDouble::Divide(const DataArrayDouble *a1, const DataAr * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayDouble::divideEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::divideEqual(const DataArrayDouble *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::divideEqual : input DataArrayDouble instance is NULL !"); @@ -5372,7 +5478,7 @@ void DataArrayDouble::divideEqual(const DataArrayDouble *other) throw(INTERP_KER * \throw If \a a1->getNumberOfComponents() != 1 or \a a2->getNumberOfComponents() != 1. * \throw If there is a negative value in \a a1. */ -DataArrayDouble *DataArrayDouble::Pow(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDouble::Pow(const DataArrayDouble *a1, const DataArrayDouble *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayDouble::Pow : at least one of input instances is null !"); @@ -5411,7 +5517,7 @@ DataArrayDouble *DataArrayDouble::Pow(const DataArrayDouble *a1, const DataArray * \throw If \a this->getNumberOfComponents() != 1 or \a other->getNumberOfComponents() != 1 * \throw If there is a negative value in \a this. */ -void DataArrayDouble::powEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) +void DataArrayDouble::powEqual(const DataArrayDouble *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayDouble::powEqual : input instance is null !"); @@ -5499,12 +5605,12 @@ bool DataArrayDouble::resizeForUnserialization(const std::vector& tinyInfoI */ void DataArrayDouble::finishUnserialization(const std::vector& tinyInfoI, const std::vector& tinyInfoS) { - setName(tinyInfoS[0].c_str()); + setName(tinyInfoS[0]); if(isAllocated()) { int nbOfCompo=getNumberOfComponents(); for(int i=0;idecrRef(); } -DataArrayDoubleTuple *DataArrayDoubleIterator::nextt() throw(INTERP_KERNEL::Exception) +DataArrayDoubleTuple *DataArrayDoubleIterator::nextt() { if(_tuple_id<_nb_tuple) { @@ -5546,7 +5652,7 @@ DataArrayDoubleTuple::DataArrayDoubleTuple(double *pt, int nbOfComp):_pt(pt),_nb } -std::string DataArrayDoubleTuple::repr() const throw(INTERP_KERNEL::Exception) +std::string DataArrayDoubleTuple::repr() const { std::ostringstream oss; oss.precision(17); oss << "("; for(int i=0;i<_nb_of_compo-1;i++) @@ -5555,7 +5661,7 @@ std::string DataArrayDoubleTuple::repr() const throw(INTERP_KERNEL::Exception) return oss.str(); } -double DataArrayDoubleTuple::doubleValue() const throw(INTERP_KERNEL::Exception) +double DataArrayDoubleTuple::doubleValue() const { if(_nb_of_compo==1) return *_pt; @@ -5568,7 +5674,7 @@ double DataArrayDoubleTuple::doubleValue() const throw(INTERP_KERNEL::Exception) * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem. */ -DataArrayDouble *DataArrayDoubleTuple::buildDADouble(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception) +DataArrayDouble *DataArrayDoubleTuple::buildDADouble(int nbOfTuples, int nbOfCompo) const { if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1)) { @@ -5598,7 +5704,7 @@ DataArrayInt *DataArrayInt::New() * in \ref MEDCouplingArrayBasicsTuplesAndCompo "DataArrays infos" for more information. * \return bool - \a true if the raw data is allocated, \a false else. */ -bool DataArrayInt::isAllocated() const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isAllocated() const { return getConstPointer()!=0; } @@ -5607,7 +5713,7 @@ bool DataArrayInt::isAllocated() const throw(INTERP_KERNEL::Exception) * Checks if raw data is allocated and throws an exception if it is not the case. * \throw If the raw data is not allocated. */ -void DataArrayInt::checkAllocated() const throw(INTERP_KERNEL::Exception) +void DataArrayInt::checkAllocated() const { if(!isAllocated()) throw INTERP_KERNEL::Exception("DataArrayInt::checkAllocated : Array is defined but not allocated ! Call alloc or setValues method first !"); @@ -5618,7 +5724,7 @@ void DataArrayInt::checkAllocated() const throw(INTERP_KERNEL::Exception) * After call of this method, DataArrayInt::isAllocated will return false. * If \a this is already not allocated, \a this is let unchanged. */ -void DataArrayInt::desallocate() throw(INTERP_KERNEL::Exception) +void DataArrayInt::desallocate() { _mem.destroy(); } @@ -5636,7 +5742,7 @@ std::size_t DataArrayInt::getHeapMemorySizeWithoutChildren() const * \return double - the sole value stored in \a this array. * \throw If at least one of conditions stated above is not fulfilled. */ -int DataArrayInt::intValue() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::intValue() const { if(isAllocated()) { @@ -5657,7 +5763,7 @@ int DataArrayInt::intValue() const throw(INTERP_KERNEL::Exception) * \return int - the hash value. * \throw If \a this is not allocated. */ -int DataArrayInt::getHashCode() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getHashCode() const { checkAllocated(); std::size_t nbOfElems=getNbOfElems(); @@ -5677,7 +5783,7 @@ int DataArrayInt::getHashCode() const throw(INTERP_KERNEL::Exception) * \return bool - \a true if getNumberOfTuples() == 0, \a false else. * \throw If \a this is not allocated. */ -bool DataArrayInt::empty() const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::empty() const { checkAllocated(); return getNumberOfTuples()==0; @@ -5688,7 +5794,7 @@ bool DataArrayInt::empty() const throw(INTERP_KERNEL::Exception) * \ref MEDCouplingArrayBasicsCopyDeep. * \return DataArrayInt * - a new instance of DataArrayInt. */ -DataArrayInt *DataArrayInt::deepCpy() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::deepCpy() const { return new DataArrayInt(*this); } @@ -5700,7 +5806,7 @@ DataArrayInt *DataArrayInt::deepCpy() const throw(INTERP_KERNEL::Exception) * \return DataArrayInt * - either a new instance of DataArrayInt (if \a dCpy * == \a true) or \a this instance (if \a dCpy == \a false). */ -DataArrayInt *DataArrayInt::performCpy(bool dCpy) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::performCpy(bool dCpy) const { if(dCpy) return deepCpy(); @@ -5717,7 +5823,7 @@ DataArrayInt *DataArrayInt::performCpy(bool dCpy) const throw(INTERP_KERNEL::Exc * \param [in] other - another instance of DataArrayInt to copy data from. * \throw If the \a other is not allocated. */ -void DataArrayInt::cpyFrom(const DataArrayInt& other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::cpyFrom(const DataArrayInt& other) { other.checkAllocated(); int nbOfTuples=other.getNumberOfTuples(); @@ -5739,7 +5845,7 @@ void DataArrayInt::cpyFrom(const DataArrayInt& other) throw(INTERP_KERNEL::Excep * * \sa DataArrayInt::pack, DataArrayInt::pushBackSilent, DataArrayInt::pushBackValsSilent */ -void DataArrayInt::reserve(std::size_t nbOfElems) throw(INTERP_KERNEL::Exception) +void DataArrayInt::reserve(std::size_t nbOfElems) { int nbCompo=getNumberOfComponents(); if(nbCompo==1) @@ -5763,7 +5869,7 @@ void DataArrayInt::reserve(std::size_t nbOfElems) throw(INTERP_KERNEL::Exception * \throw If \a this has already been allocated with number of components different from one. * \sa DataArrayInt::pushBackValsSilent */ -void DataArrayInt::pushBackSilent(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::pushBackSilent(int val) { int nbCompo=getNumberOfComponents(); if(nbCompo==1) @@ -5787,7 +5893,7 @@ void DataArrayInt::pushBackSilent(int val) throw(INTERP_KERNEL::Exception) * \throw If \a this has already been allocated with number of components different from one. * \sa DataArrayInt::pushBackSilent */ -void DataArrayInt::pushBackValsSilent(const int *valsBg, const int *valsEnd) throw(INTERP_KERNEL::Exception) +void DataArrayInt::pushBackValsSilent(const int *valsBg, const int *valsEnd) { int nbCompo=getNumberOfComponents(); if(nbCompo==1) @@ -5806,7 +5912,7 @@ void DataArrayInt::pushBackValsSilent(const int *valsBg, const int *valsEnd) thr * \throw If \a this is already empty. * \throw If \a this has number of components different from one. */ -int DataArrayInt::popBackSilent() throw(INTERP_KERNEL::Exception) +int DataArrayInt::popBackSilent() { if(getNumberOfComponents()==1) return _mem.popBack(); @@ -5819,7 +5925,7 @@ int DataArrayInt::popBackSilent() throw(INTERP_KERNEL::Exception) * * \sa DataArrayInt::getHeapMemorySizeWithoutChildren, DataArrayInt::reserve */ -void DataArrayInt::pack() const throw(INTERP_KERNEL::Exception) +void DataArrayInt::pack() const { _mem.pack(); } @@ -5831,7 +5937,7 @@ void DataArrayInt::pack() const throw(INTERP_KERNEL::Exception) * \param [in] nbOfCompo - number of components of data to allocate. * \throw If \a nbOfTuple < 0 or \a nbOfCompo < 0. */ -void DataArrayInt::allocIfNecessary(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayInt::allocIfNecessary(int nbOfTuple, int nbOfCompo) { if(isAllocated()) { @@ -5850,7 +5956,7 @@ void DataArrayInt::allocIfNecessary(int nbOfTuple, int nbOfCompo) throw(INTERP_K * \param [in] nbOfCompo - number of components of data to allocate. * \throw If \a nbOfTuple < 0 or \a nbOfCompo < 0. */ -void DataArrayInt::alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayInt::alloc(int nbOfTuple, int nbOfCompo) { if(nbOfTuple<0 || nbOfCompo<0) throw INTERP_KERNEL::Exception("DataArrayInt::alloc : request for negative length of data !"); @@ -5864,7 +5970,7 @@ void DataArrayInt::alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exce * \ref MEDCouplingArrayFill. * \throw If \a this is not allocated. */ -void DataArrayInt::fillWithZero() throw(INTERP_KERNEL::Exception) +void DataArrayInt::fillWithZero() { checkAllocated(); _mem.fillWithValue(0); @@ -5877,7 +5983,7 @@ void DataArrayInt::fillWithZero() throw(INTERP_KERNEL::Exception) * \param [in] val - the value to fill with. * \throw If \a this is not allocated. */ -void DataArrayInt::fillWithValue(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::fillWithValue(int val) { checkAllocated(); _mem.fillWithValue(val); @@ -5891,7 +5997,7 @@ void DataArrayInt::fillWithValue(int val) throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this is not allocated. */ -void DataArrayInt::iota(int init) throw(INTERP_KERNEL::Exception) +void DataArrayInt::iota(int init) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -5908,21 +6014,21 @@ void DataArrayInt::iota(int init) throw(INTERP_KERNEL::Exception) * DataArrayInt. This text is shown when a DataArrayInt is printed in Python. * \return std::string - text describing \a this DataArrayInt. */ -std::string DataArrayInt::repr() const throw(INTERP_KERNEL::Exception) +std::string DataArrayInt::repr() const { std::ostringstream ret; reprStream(ret); return ret.str(); } -std::string DataArrayInt::reprZip() const throw(INTERP_KERNEL::Exception) +std::string DataArrayInt::reprZip() const { std::ostringstream ret; reprZipStream(ret); return ret.str(); } -void DataArrayInt::writeVTK(std::ostream& ofs, int indent, const char *type, const char *nameInFile, DataArrayByte *byteArr) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::writeVTK(std::ostream& ofs, int indent, const std::string& type, const std::string& nameInFile, DataArrayByte *byteArr) const { static const char SPACE[4]={' ',' ',' ',' '}; checkAllocated(); @@ -5963,31 +6069,31 @@ void DataArrayInt::writeVTK(std::ostream& ofs, int indent, const char *type, con ofs << std::endl << idt << "\n"; } -void DataArrayInt::reprStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprStream(std::ostream& stream) const { stream << "Name of int array : \"" << _name << "\"\n"; reprWithoutNameStream(stream); } -void DataArrayInt::reprZipStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprZipStream(std::ostream& stream) const { stream << "Name of int array : \"" << _name << "\"\n"; reprZipWithoutNameStream(stream); } -void DataArrayInt::reprWithoutNameStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprWithoutNameStream(std::ostream& stream) const { DataArray::reprWithoutNameStream(stream); _mem.repr(getNumberOfComponents(),stream); } -void DataArrayInt::reprZipWithoutNameStream(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprZipWithoutNameStream(std::ostream& stream) const { DataArray::reprWithoutNameStream(stream); _mem.reprZip(getNumberOfComponents(),stream); } -void DataArrayInt::reprCppStream(const char *varName, std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprCppStream(const std::string& varName, std::ostream& stream) const { int nbTuples=getNumberOfTuples(),nbComp=getNumberOfComponents(); const int *data=getConstPointer(); @@ -6007,7 +6113,7 @@ void DataArrayInt::reprCppStream(const char *varName, std::ostream& stream) cons /*! * Method that gives a quick overvien of \a this for python. */ -void DataArrayInt::reprQuickOverview(std::ostream& stream) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprQuickOverview(std::ostream& stream) const { static const std::size_t MAX_NB_OF_BYTE_IN_REPR=300; stream << "DataArrayInt C++ instance at " << this << ". "; @@ -6027,7 +6133,7 @@ void DataArrayInt::reprQuickOverview(std::ostream& stream) const throw(INTERP_KE stream << "*** No data allocated ****"; } -void DataArrayInt::reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const { const int *data=begin(); int nbOfTuples=getNumberOfTuples(); @@ -6073,7 +6179,7 @@ void DataArrayInt::reprQuickOverviewData(std::ostream& stream, std::size_t maxNb * \throw If any value of \a this can't be used as a valid index for * [\a indArrBg, \a indArrEnd). */ -void DataArrayInt::transformWithIndArr(const int *indArrBg, const int *indArrEnd) throw(INTERP_KERNEL::Exception) +void DataArrayInt::transformWithIndArr(const int *indArrBg, const int *indArrEnd) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -6203,7 +6309,7 @@ void DataArrayInt::splitByValueRange(const int *arrBg, const int *arrEnd, * \throw If any value of \a this array is not a valid index for \a indArrBg array. * \throw If any value of \a indArrBg is not a valid index for \a this array. */ -DataArrayInt *DataArrayInt::transformWithIndArrR(const int *indArrBg, const int *indArrEnd) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::transformWithIndArrR(const int *indArrBg, const int *indArrEnd) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -6278,7 +6384,7 @@ DataArrayInt *DataArrayInt::invertArrayO2N2N2O(int newNbOfElem) const * This method is similar to DataArrayInt::invertArrayO2N2N2O except that * Example : If \a this contains [0,1,2,0,3,4,5,4,6,4] this method will return [0,1,2,4,5,6,8] whereas DataArrayInt::invertArrayO2N2N2O returns [3,1,2,4,9,6,8] */ -DataArrayInt *DataArrayInt::invertArrayO2N2N2OBis(int newNbOfElem) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::invertArrayO2N2N2OBis(int newNbOfElem) const { MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); ret->alloc(newNbOfElem,1); @@ -6347,7 +6453,7 @@ DataArrayInt *DataArrayInt::invertArrayN2O2O2N(int oldNbOfElem) const * \param [out] reason In case of inequality returns the reason. * \sa DataArrayInt::isEqual */ -bool DataArrayInt::isEqualIfNotWhy(const DataArrayInt& other, std::string& reason) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isEqualIfNotWhy(const DataArrayInt& other, std::string& reason) const { if(!areInfoEqualsIfNotWhy(other,reason)) return false; @@ -6360,7 +6466,7 @@ bool DataArrayInt::isEqualIfNotWhy(const DataArrayInt& other, std::string& reaso * \param [in] other - an instance of DataArrayInt to compare with \a this one. * \return bool - \a true if the two arrays are equal, \a false else. */ -bool DataArrayInt::isEqual(const DataArrayInt& other) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isEqual(const DataArrayInt& other) const { std::string tmp; return isEqualIfNotWhy(other,tmp); @@ -6372,7 +6478,7 @@ bool DataArrayInt::isEqual(const DataArrayInt& other) const throw(INTERP_KERNEL: * \param [in] other - an instance of DataArrayInt to compare with \a this one. * \return bool - \a true if the values of two arrays are equal, \a false else. */ -bool DataArrayInt::isEqualWithoutConsideringStr(const DataArrayInt& other) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isEqualWithoutConsideringStr(const DataArrayInt& other) const { std::string tmp; return _mem.isEqual(other._mem,0,tmp); @@ -6385,7 +6491,7 @@ bool DataArrayInt::isEqualWithoutConsideringStr(const DataArrayInt& other) const * \param [in] other - an instance of DataArrayInt to compare with \a this one. * \return bool - \a true if the sorted values of two arrays are equal, \a false else. */ -bool DataArrayInt::isEqualWithoutConsideringStrAndOrder(const DataArrayInt& other) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isEqualWithoutConsideringStrAndOrder(const DataArrayInt& other) const { MEDCouplingAutoRefCountObjectPtr a=deepCpy(); MEDCouplingAutoRefCountObjectPtr b=other.deepCpy(); @@ -6405,12 +6511,11 @@ bool DataArrayInt::isEqualWithoutConsideringStrAndOrder(const DataArrayInt& othe * \throw If \a this has not exactly one component. * \throw If \a this is not allocated. */ -bool DataArrayInt::isFittingWith(const std::vector& v) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isFittingWith(const std::vector& v) const { checkAllocated(); if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::isFittingWith : number of components of this should be equal to one !"); - int nbOfTuples(getNumberOfTuples()); const int *w(begin()),*end2(end()); int refVal=-std::numeric_limits::max(); int i=0; @@ -6447,7 +6552,7 @@ bool DataArrayInt::isFittingWith(const std::vector& v) const throw(INTERP_ * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. */ -void DataArrayInt::sort(bool asc) throw(INTERP_KERNEL::Exception) +void DataArrayInt::sort(bool asc) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -6456,12 +6561,34 @@ void DataArrayInt::sort(bool asc) throw(INTERP_KERNEL::Exception) declareAsNew(); } +/*! + * Computes for each tuple the sum of number of components values in the tuple and return it. + * + * \return DataArrayInt * - the new instance of DataArrayInt containing the + * same number of tuples as \a this array and one component. + * The caller is to delete this result array using decrRef() as it is no more + * needed. + * \throw If \a this is not allocated. + */ +DataArrayInt *DataArrayInt::sumPerTuple() const +{ + checkAllocated(); + int nbOfComp(getNumberOfComponents()),nbOfTuple(getNumberOfTuples()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); + ret->alloc(nbOfTuple,1); + const int *src(getConstPointer()); + int *dest(ret->getPointer()); + for(int i=0;igetNumberOfComponents() < 1. * \throw If \a this is not allocated. */ -void DataArrayInt::reverse() throw(INTERP_KERNEL::Exception) +void DataArrayInt::reverse() { checkAllocated(); _mem.reverse(getNumberOfComponents()); @@ -6477,7 +6604,7 @@ void DataArrayInt::reverse() throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this is not allocated. */ -void DataArrayInt::checkMonotonic(bool increasing) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::checkMonotonic(bool increasing) const { if(!isMonotonic(increasing)) { @@ -6495,7 +6622,7 @@ void DataArrayInt::checkMonotonic(bool increasing) const throw(INTERP_KERNEL::Ex * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this is not allocated. */ -bool DataArrayInt::isMonotonic(bool increasing) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isMonotonic(bool increasing) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -6531,7 +6658,7 @@ bool DataArrayInt::isMonotonic(bool increasing) const throw(INTERP_KERNEL::Excep /*! * This method check that array consistently INCREASING or DECREASING in value. */ -bool DataArrayInt::isStrictlyMonotonic(bool increasing) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isStrictlyMonotonic(bool increasing) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -6567,7 +6694,7 @@ bool DataArrayInt::isStrictlyMonotonic(bool increasing) const throw(INTERP_KERNE /*! * This method check that array consistently INCREASING or DECREASING in value. */ -void DataArrayInt::checkStrictlyMonotonic(bool increasing) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::checkStrictlyMonotonic(bool increasing) const { if(!isStrictlyMonotonic(increasing)) { @@ -6597,7 +6724,7 @@ void DataArrayInt::checkStrictlyMonotonic(bool increasing) const throw(INTERP_KE * * \ref py_mcdataarrayint_buildpermutationarr "Here is a Python example". */ -DataArrayInt *DataArrayInt::buildPermutationArr(const DataArrayInt& other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildPermutationArr(const DataArrayInt& other) const { checkAllocated(); if(getNumberOfComponents()!=1 || other.getNumberOfComponents()!=1) @@ -6640,14 +6767,14 @@ DataArrayInt *DataArrayInt::buildPermutationArr(const DataArrayInt& other) const * \param [in] nbOfTuple - new number of tuples in \a this. * \param [in] nbOfCompo - new number of components in \a this. */ -void DataArrayInt::useArray(const int *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayInt::useArray(const int *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo) { _info_on_compo.resize(nbOfCompo); _mem.useArray(array,ownership,type,nbOfTuple*nbOfCompo); declareAsNew(); } -void DataArrayInt::useExternalArrayWithRWAccess(const int *array, int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayInt::useExternalArrayWithRWAccess(const int *array, int nbOfTuple, int nbOfCompo) { _info_on_compo.resize(nbOfCompo); _mem.useExternalArrayWithRWAccess(array,nbOfTuple*nbOfCompo); @@ -6664,7 +6791,7 @@ void DataArrayInt::useExternalArrayWithRWAccess(const int *array, int nbOfTuple, * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayInt *DataArrayInt::fromNoInterlace() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::fromNoInterlace() const { checkAllocated(); if(_mem.isNull()) @@ -6685,7 +6812,7 @@ DataArrayInt *DataArrayInt::fromNoInterlace() const throw(INTERP_KERNEL::Excepti * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayInt *DataArrayInt::toNoInterlace() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::toNoInterlace() const { checkAllocated(); if(_mem.isNull()) @@ -6705,7 +6832,7 @@ DataArrayInt *DataArrayInt::toNoInterlace() const throw(INTERP_KERNEL::Exception * \param [in] old2New - C array of length equal to \a this->getNumberOfTuples() * giving a new position for i-th old value. */ -void DataArrayInt::renumberInPlace(const int *old2New) throw(INTERP_KERNEL::Exception) +void DataArrayInt::renumberInPlace(const int *old2New) { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -6738,7 +6865,7 @@ void DataArrayInt::renumberInPlace(const int *old2New) throw(INTERP_KERNEL::Exce * \return DataArrayInt * - the new instance of DataArrayInt that the caller * is to delete using decrRef() as it is no more needed. */ -void DataArrayInt::renumberInPlaceR(const int *new2Old) throw(INTERP_KERNEL::Exception) +void DataArrayInt::renumberInPlaceR(const int *new2Old) { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -6773,7 +6900,7 @@ void DataArrayInt::renumberInPlaceR(const int *new2Old) throw(INTERP_KERNEL::Exc * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayInt *DataArrayInt::renumber(const int *old2New) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::renumber(const int *old2New) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -6800,7 +6927,7 @@ DataArrayInt *DataArrayInt::renumber(const int *old2New) const throw(INTERP_KERN * \return DataArrayInt * - the new instance of DataArrayInt that the caller * is to delete using decrRef() as it is no more needed. */ -DataArrayInt *DataArrayInt::renumberR(const int *new2Old) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::renumberR(const int *new2Old) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -6829,7 +6956,7 @@ DataArrayInt *DataArrayInt::renumberR(const int *new2Old) const throw(INTERP_KER * \return DataArrayInt * - the new instance of DataArrayInt that the caller * is to delete using decrRef() as it is no more needed. */ -DataArrayInt *DataArrayInt::renumberAndReduce(const int *old2New, int newNbOfTuple) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::renumberAndReduce(const int *old2New, int newNbOfTuple) const { checkAllocated(); int nbTuples=getNumberOfTuples(); @@ -6899,7 +7026,7 @@ DataArrayInt *DataArrayInt::selectByTupleId(const int *new2OldBg, const int *new * is to delete using decrRef() as it is no more needed. * \throw If \a new2OldEnd - \a new2OldBg > \a this->getNumberOfTuples(). */ -DataArrayInt *DataArrayInt::selectByTupleIdSafe(const int *new2OldBg, const int *new2OldEnd) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::selectByTupleIdSafe(const int *new2OldBg, const int *new2OldEnd) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); @@ -6934,7 +7061,7 @@ DataArrayInt *DataArrayInt::selectByTupleIdSafe(const int *new2OldBg, const int * is to delete using decrRef() as it is no more needed. * \sa DataArrayInt::substr. */ -DataArrayInt *DataArrayInt::selectByTupleId2(int bg, int end2, int step) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::selectByTupleId2(int bg, int end2, int step) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); @@ -6961,7 +7088,7 @@ DataArrayInt *DataArrayInt::selectByTupleId2(int bg, int end2, int step) const t * \throw If \a end > \a this->getNumberOfTuples(). * \throw If \a this is not allocated. */ -DataArray *DataArrayInt::selectByTupleRanges(const std::vector >& ranges) const throw(INTERP_KERNEL::Exception) +DataArray *DataArrayInt::selectByTupleRanges(const std::vector >& ranges) const { checkAllocated(); int nbOfComp=getNumberOfComponents(); @@ -7027,7 +7154,7 @@ DataArray *DataArrayInt::selectByTupleRanges(const std::vectorgetNumberOfComponents() != 1. * \throw If there are equal values in \a this array. */ -DataArrayInt *DataArrayInt::checkAndPreparePermutation() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::checkAndPreparePermutation() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -7053,7 +7180,7 @@ DataArrayInt *DataArrayInt::checkAndPreparePermutation() const throw(INTERP_KERN * \throw If either ids1 or ids2 is null not allocated or not with one components. * */ -DataArrayInt *DataArrayInt::FindPermutationFromFirstToSecond(const DataArrayInt *ids1, const DataArrayInt *ids2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::FindPermutationFromFirstToSecond(const DataArrayInt *ids1, const DataArrayInt *ids2) { if(!ids1 || !ids2) throw INTERP_KERNEL::Exception("DataArrayInt::FindPermutationFromFirstToSecond : the two input arrays must be not null !"); @@ -7113,7 +7240,7 @@ DataArrayInt *DataArrayInt::FindPermutationFromFirstToSecond(const DataArrayInt * \throw If \a this->getNumberOfComponents() != 1. * \throw If any value in \a this is more or equal to \a targetNb. */ -void DataArrayInt::changeSurjectiveFormat(int targetNb, DataArrayInt *&arr, DataArrayInt *&arrI) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::changeSurjectiveFormat(int targetNb, DataArrayInt *&arr, DataArrayInt *&arrI) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -7175,7 +7302,7 @@ void DataArrayInt::changeSurjectiveFormat(int targetNb, DataArrayInt *&arr, Data * array using decrRef() as it is no more needed. * \throw If any value of \a arr breaks condition ( 0 <= \a arr[ i ] < \a nbOfOldTuples ). */ -DataArrayInt *DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(int nbOfOldTuples, const int *arr, const int *arrIBg, const int *arrIEnd, int &newNbOfTuples) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(int nbOfOldTuples, const int *arr, const int *arrIBg, const int *arrIEnd, int &newNbOfTuples) { MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); ret->alloc(nbOfOldTuples,1); @@ -7227,7 +7354,7 @@ DataArrayInt *DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(int nbOfOldTu * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::buildPermArrPerLevel() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildPermArrPerLevel() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -7276,7 +7403,7 @@ DataArrayInt *DataArrayInt::buildPermArrPerLevel() const throw(INTERP_KERNEL::Ex * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. */ -bool DataArrayInt::isIdentity() const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isIdentity() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -7296,7 +7423,7 @@ bool DataArrayInt::isIdentity() const throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1 */ -bool DataArrayInt::isUniform(int val) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::isUniform(int val) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -7343,7 +7470,7 @@ DataArrayDouble *DataArrayInt::convertToDblArr() const \throw If \a tupleIdEnd != -1 && \a tupleIdEnd < \a this->getNumberOfTuples(). * \sa DataArrayInt::selectByTupleId2 */ -DataArrayInt *DataArrayInt::substr(int tupleIdBg, int tupleIdEnd) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::substr(int tupleIdBg, int tupleIdEnd) const { checkAllocated(); int nbt=getNumberOfTuples(); @@ -7378,7 +7505,7 @@ DataArrayInt *DataArrayInt::substr(int tupleIdBg, int tupleIdEnd) const throw(IN * \throw If the rearrange method would lead to a number of tuples higher than 2147483647 (maximal capacity of int32 !). * \warning This method erases all (name and unit) component info set before! */ -void DataArrayInt::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception) +void DataArrayInt::rearrange(int newNbOfCompo) { checkAllocated(); if(newNbOfCompo<1) @@ -7403,7 +7530,7 @@ void DataArrayInt::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \sa rearrange() */ -void DataArrayInt::transpose() throw(INTERP_KERNEL::Exception) +void DataArrayInt::transpose() { checkAllocated(); int nbOfTuples=getNumberOfTuples(); @@ -7423,7 +7550,7 @@ void DataArrayInt::transpose() throw(INTERP_KERNEL::Exception) * is to delete using decrRef() as it is no more needed. * \throw If \a this is not allocated. */ -DataArrayInt *DataArrayInt::changeNbOfComponents(int newNbOfComp, int dftValue) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::changeNbOfComponents(int newNbOfComp, int dftValue) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); @@ -7441,10 +7568,10 @@ DataArrayInt *DataArrayInt::changeNbOfComponents(int newNbOfComp, int dftValue) for(;jsetName(getName().c_str()); + ret->setName(getName()); for(int i=0;isetInfoOnComponent(i,getInfoOnComponent(i).c_str()); - ret->setName(getName().c_str()); + ret->setInfoOnComponent(i,getInfoOnComponent(i)); + ret->setName(getName()); return ret.retn(); } @@ -7455,7 +7582,7 @@ DataArrayInt *DataArrayInt::changeNbOfComponents(int newNbOfComp, int dftValue) * \throw If \a this is not allocated. * \throw If \a nbOfTuples is negative. */ -void DataArrayInt::reAlloc(int nbOfTuples) throw(INTERP_KERNEL::Exception) +void DataArrayInt::reAlloc(int nbOfTuples) { if(nbOfTuples<0) throw INTERP_KERNEL::Exception("DataArrayInt::reAlloc : input new number of tuples should be >=0 !"); @@ -7480,7 +7607,7 @@ void DataArrayInt::reAlloc(int nbOfTuples) throw(INTERP_KERNEL::Exception) * * \ref py_mcdataarrayint_keepselectedcomponents "Here is a Python example". */ -DataArray *DataArrayInt::keepSelectedComponents(const std::vector& compoIds) const throw(INTERP_KERNEL::Exception) +DataArray *DataArrayInt::keepSelectedComponents(const std::vector& compoIds) const { checkAllocated(); MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); @@ -7511,7 +7638,7 @@ DataArray *DataArrayInt::keepSelectedComponents(const std::vector& compoIds * * \ref py_mcdataarrayint_meldwith "Here is a Python example". */ -void DataArrayInt::meldWith(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::meldWith(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::meldWith : DataArrayInt pointer in input is NULL !"); @@ -7552,7 +7679,7 @@ void DataArrayInt::meldWith(const DataArrayInt *other) throw(INTERP_KERNEL::Exce * * \ref py_mcdataarrayint_setselectedcomponents "Here is a Python example". */ -void DataArrayInt::setSelectedComponents(const DataArrayInt *a, const std::vector& compoIds) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setSelectedComponents(const DataArrayInt *a, const std::vector& compoIds) { if(!a) throw INTERP_KERNEL::Exception("DataArrayInt::setSelectedComponents : input DataArrayInt is NULL !"); @@ -7603,7 +7730,7 @@ void DataArrayInt::setSelectedComponents(const DataArrayInt *a, const std::vecto * * \ref py_mcdataarrayint_setpartofvalues1 "Here is a Python example". */ -void DataArrayInt::setPartOfValues1(const DataArrayInt *a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValues1(const DataArrayInt *a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayInt::setPartOfValues1 : DataArrayInt pointer in input is NULL !"); @@ -7666,7 +7793,7 @@ void DataArrayInt::setPartOfValues1(const DataArrayInt *a, int bgTuples, int end * * \ref py_mcdataarrayint_setpartofvaluessimple1 "Here is a Python example". */ -void DataArrayInt::setPartOfValuesSimple1(int a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValuesSimple1(int a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp) { const char msg[]="DataArrayInt::setPartOfValuesSimple1"; checkAllocated(); @@ -7721,7 +7848,7 @@ void DataArrayInt::setPartOfValuesSimple1(int a, int bgTuples, int endTuples, in * * \ref py_mcdataarrayint_setpartofvalues2 "Here is a Python example". */ -void DataArrayInt::setPartOfValues2(const DataArrayInt *a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValues2(const DataArrayInt *a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayInt::setPartOfValues2 : DataArrayInt pointer in input is NULL !"); @@ -7792,7 +7919,7 @@ void DataArrayInt::setPartOfValues2(const DataArrayInt *a, const int *bgTuples, * * \ref py_mcdataarrayint_setpartofvaluessimple2 "Here is a Python example". */ -void DataArrayInt::setPartOfValuesSimple2(int a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValuesSimple2(int a, const int *bgTuples, const int *endTuples, const int *bgComp, const int *endComp) { checkAllocated(); int nbComp=getNumberOfComponents(); @@ -7852,7 +7979,7 @@ void DataArrayInt::setPartOfValuesSimple2(int a, const int *bgTuples, const int * * \ref py_mcdataarrayint_setpartofvalues3 "Here is a Python example". */ -void DataArrayInt::setPartOfValues3(const DataArrayInt *a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValues3(const DataArrayInt *a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayInt::setPartOfValues3 : DataArrayInt pointer in input is NULL !"); @@ -7924,7 +8051,7 @@ void DataArrayInt::setPartOfValues3(const DataArrayInt *a, const int *bgTuples, * * \ref py_mcdataarrayint_setpartofvaluessimple3 "Here is a Python example". */ -void DataArrayInt::setPartOfValuesSimple3(int a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValuesSimple3(int a, const int *bgTuples, const int *endTuples, int bgComp, int endComp, int stepComp) { const char msg[]="DataArrayInt::setPartOfValuesSimple3"; checkAllocated(); @@ -7941,7 +8068,7 @@ void DataArrayInt::setPartOfValuesSimple3(int a, const int *bgTuples, const int } } -void DataArrayInt::setPartOfValues4(const DataArrayInt *a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValues4(const DataArrayInt *a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp, bool strictCompoCompare) { if(!a) throw INTERP_KERNEL::Exception("DataArrayInt::setPartOfValues4 : input DataArrayInt is NULL !"); @@ -7985,7 +8112,7 @@ void DataArrayInt::setPartOfValues4(const DataArrayInt *a, int bgTuples, int end } } -void DataArrayInt::setPartOfValuesSimple4(int a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValuesSimple4(int a, int bgTuples, int endTuples, int stepTuples, const int *bgComp, const int *endComp) { const char msg[]="DataArrayInt::setPartOfValuesSimple4"; checkAllocated(); @@ -8022,7 +8149,7 @@ void DataArrayInt::setPartOfValuesSimple4(int a, int bgTuples, int endTuples, in * \throw If any tuple index given by \a tuplesSelec is out of a valid range for * the corresponding (\a this or \a a) array. */ -void DataArrayInt::setPartOfValuesAdv(const DataArrayInt *a, const DataArrayInt *tuplesSelec) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setPartOfValuesAdv(const DataArrayInt *a, const DataArrayInt *tuplesSelec) { if(!a || !tuplesSelec) throw INTERP_KERNEL::Exception("DataArrayInt::setPartOfValuesAdv : DataArrayInt pointer in input is NULL !"); @@ -8083,7 +8210,7 @@ void DataArrayInt::setPartOfValuesAdv(const DataArrayInt *a, const DataArrayInt * \throw If any tuple index given by \a tuplesSelec is out of a valid range for * \a aBase array. */ -void DataArrayInt::setContigPartOfSelectedValues(int tupleIdStart, const DataArray *aBase, const DataArrayInt *tuplesSelec) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setContigPartOfSelectedValues(int tupleIdStart, const DataArray *aBase, const DataArrayInt *tuplesSelec) { if(!aBase || !tuplesSelec) throw INTERP_KERNEL::Exception("DataArrayInt::setContigPartOfSelectedValues : input DataArray is NULL !"); @@ -8145,7 +8272,7 @@ void DataArrayInt::setContigPartOfSelectedValues(int tupleIdStart, const DataArr * non-empty range of increasing indices or indices are out of a valid range * for the array \a aBase. */ -void DataArrayInt::setContigPartOfSelectedValues2(int tupleIdStart, const DataArray *aBase, int bg, int end2, int step) throw(INTERP_KERNEL::Exception) +void DataArrayInt::setContigPartOfSelectedValues2(int tupleIdStart, const DataArray *aBase, int bg, int end2, int step) { if(!aBase) throw INTERP_KERNEL::Exception("DataArrayInt::setContigPartOfSelectedValues2 : input DataArray is NULL !"); @@ -8185,7 +8312,7 @@ void DataArrayInt::setContigPartOfSelectedValues2(int tupleIdStart, const DataAr * \throw If condition ( 0 <= tupleId < this->getNumberOfTuples() ) is violated. * \throw If condition ( 0 <= compoId < this->getNumberOfComponents() ) is violated. */ -int DataArrayInt::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getIJSafe(int tupleId, int compoId) const { checkAllocated(); if(tupleId<0 || tupleId>=getNumberOfTuples()) @@ -8208,7 +8335,7 @@ int DataArrayInt::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL: * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this->getNumberOfTuples() < 1. */ -int DataArrayInt::front() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::front() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8226,7 +8353,7 @@ int DataArrayInt::front() const throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this->getNumberOfTuples() < 1. */ -int DataArrayInt::back() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::back() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8255,7 +8382,7 @@ void DataArrayInt::SetArrayIn(DataArrayInt *newArray, DataArrayInt* &arrayToSet) } } -DataArrayIntIterator *DataArrayInt::iterator() throw(INTERP_KERNEL::Exception) +DataArrayIntIterator *DataArrayInt::iterator() { return new DataArrayIntIterator(this); } @@ -8268,13 +8395,14 @@ DataArrayIntIterator *DataArrayInt::iterator() throw(INTERP_KERNEL::Exception) * array using decrRef() as it is no more needed. * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. + * \sa DataArrayInt::getIdsEqualTuple */ -DataArrayInt *DataArrayInt::getIdsEqual(int val) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getIdsEqual(int val) const { checkAllocated(); if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::getIdsEqual : the array must have only one component, you can call 'rearrange' method before !"); - const int *cptr=getConstPointer(); + const int *cptr(getConstPointer()); MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); int nbOfTuples=getNumberOfTuples(); for(int i=0;igetNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::getIdsNotEqual(int val) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getIdsNotEqual(int val) const { checkAllocated(); if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::getIdsNotEqual : the array must have only one component, you can call 'rearrange' method before !"); - const int *cptr=getConstPointer(); + const int *cptr(getConstPointer()); MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); int nbOfTuples=getNumberOfTuples(); for(int i=0;igetNumberOfComponents() != std::distance(tupleBg,tupleEnd). + * \throw If \a this->getNumberOfComponents() is equal to 0. + * \sa DataArrayInt::getIdsEqual + */ +DataArrayInt *DataArrayInt::getIdsEqualTuple(const int *tupleBg, const int *tupleEnd) const +{ + std::size_t nbOfCompoExp(std::distance(tupleBg,tupleEnd)); + checkAllocated(); + if(getNumberOfComponents()!=(int)nbOfCompoExp) + { + std::ostringstream oss; oss << "DataArrayInt::getIdsEqualTuple : mismatch of number of components. Input tuple has " << nbOfCompoExp << " whereas this array has " << getNumberOfComponents() << " components !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(nbOfCompoExp==0) + throw INTERP_KERNEL::Exception("DataArrayInt::getIdsEqualTuple : number of components should be > 0 !"); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); + const int *bg(begin()),*end2(end()),*work(begin()); + while(work!=end2) + { + work=std::search(work,end2,tupleBg,tupleEnd); + if(work!=end2) + { + std::size_t pos(std::distance(bg,work)); + if(pos%nbOfCompoExp==0) + ret->pushBackSilent(pos/nbOfCompoExp); + work++; + } + } + return ret.retn(); +} /*! * Assigns \a newValue to all elements holding \a oldValue within \a this @@ -8316,7 +8483,7 @@ DataArrayInt *DataArrayInt::getIdsNotEqual(int val) const throw(INTERP_KERNEL::E * \throw If \a this is not allocated. * \throw If \a this->getNumberOfComponents() != 1. */ -int DataArrayInt::changeValue(int oldValue, int newValue) throw(INTERP_KERNEL::Exception) +int DataArrayInt::changeValue(int oldValue, int newValue) { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8345,7 +8512,7 @@ int DataArrayInt::changeValue(int oldValue, int newValue) throw(INTERP_KERNEL::E * array using decrRef() as it is no more needed. * \throw If \a this->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::getIdsEqualList(const int *valsBg, const int *valsEnd) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getIdsEqualList(const int *valsBg, const int *valsEnd) const { if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::getIdsEqualList : the array must have only one component, you can call 'rearrange' method before !"); @@ -8370,7 +8537,7 @@ DataArrayInt *DataArrayInt::getIdsEqualList(const int *valsBg, const int *valsEn * array using decrRef() as it is no more needed. * \throw If \a this->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::getIdsNotEqualList(const int *valsBg, const int *valsEnd) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getIdsNotEqualList(const int *valsBg, const int *valsEnd) const { if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::getIdsNotEqualList : the array must have only one component, you can call 'rearrange' method before !"); @@ -8397,7 +8564,7 @@ DataArrayInt *DataArrayInt::getIdsNotEqualList(const int *valsBg, const int *val * \return tuple id where \b tupl is. -1 if no such tuple exists in \b this. * \sa DataArrayInt::search, DataArrayInt::presenceOfTuple. */ -int DataArrayInt::locateTuple(const std::vector& tupl) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::locateTuple(const std::vector& tupl) const { checkAllocated(); int nbOfCompo=getNumberOfComponents(); @@ -8430,7 +8597,7 @@ int DataArrayInt::locateTuple(const std::vector& tupl) const throw(INTERP_K * This method differs from DataArrayInt::locateTuple in that the position is internal raw data is not considered here contrary to DataArrayInt::locateTuple. * \sa DataArrayInt::locateTuple */ -int DataArrayInt::search(const std::vector& vals) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::search(const std::vector& vals) const { checkAllocated(); int nbOfCompo=getNumberOfComponents(); @@ -8450,7 +8617,7 @@ int DataArrayInt::search(const std::vector& vals) const throw(INTERP_KERNEL * If not any tuple contains \b value -1 is returned. * \sa DataArrayInt::presenceOfValue */ -int DataArrayInt::locateValue(int value) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::locateValue(int value) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8469,7 +8636,7 @@ int DataArrayInt::locateValue(int value) const throw(INTERP_KERNEL::Exception) * If not any tuple contains one of the values contained in 'vals' false is returned. * \sa DataArrayInt::presenceOfValue */ -int DataArrayInt::locateValue(const std::vector& vals) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::locateValue(const std::vector& vals) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8492,7 +8659,7 @@ int DataArrayInt::locateValue(const std::vector& vals) const throw(INTERP_K * \throw If \a this is not allocated * */ -int DataArrayInt::count(int value) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::count(int value) const { int ret=0; checkAllocated(); @@ -8514,7 +8681,7 @@ int DataArrayInt::count(int value) const throw(INTERP_KERNEL::Exception) * the input vector. An INTERP_KERNEL::Exception is thrown too if \b this is not allocated. * \sa DataArrayInt::locateTuple */ -bool DataArrayInt::presenceOfTuple(const std::vector& tupl) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::presenceOfTuple(const std::vector& tupl) const { return locateTuple(tupl)!=-1; } @@ -8528,7 +8695,7 @@ bool DataArrayInt::presenceOfTuple(const std::vector& tupl) const throw(INT * \throw If \a this->getNumberOfComponents() != 1. * \sa locateValue() */ -bool DataArrayInt::presenceOfValue(int value) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::presenceOfValue(int value) const { return locateValue(value)!=-1; } @@ -8539,7 +8706,7 @@ bool DataArrayInt::presenceOfValue(int value) const throw(INTERP_KERNEL::Excepti * If not any tuple contains one of the values contained in 'vals' false is returned. * \sa DataArrayInt::locateValue */ -bool DataArrayInt::presenceOfValue(const std::vector& vals) const throw(INTERP_KERNEL::Exception) +bool DataArrayInt::presenceOfValue(const std::vector& vals) const { return locateValue(vals)!=-1; } @@ -8551,7 +8718,7 @@ bool DataArrayInt::presenceOfValue(const std::vector& vals) const throw(INT * component. * \throw If \a this is not allocated. */ -void DataArrayInt::accumulate(int *res) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::accumulate(int *res) const { checkAllocated(); const int *ptr=getConstPointer(); @@ -8562,7 +8729,7 @@ void DataArrayInt::accumulate(int *res) const throw(INTERP_KERNEL::Exception) std::transform(ptr+i*nbComps,ptr+(i+1)*nbComps,res,res,std::plus()); } -int DataArrayInt::accumulate(int compId) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::accumulate(int compId) const { checkAllocated(); const int *ptr=getConstPointer(); @@ -8592,7 +8759,7 @@ int DataArrayInt::accumulate(int compId) const throw(INTERP_KERNEL::Exception) * \throw If there is an id in [ \a bgOfIndex, \a endOfIndex ) not in [0, \c this->getNumberOfTuples). * \throw If std::distance(bgOfIndex,endOfIndex)==0. */ -DataArrayInt *DataArrayInt::accumulatePerChunck(const int *bgOfIndex, const int *endOfIndex) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::accumulatePerChunck(const int *bgOfIndex, const int *endOfIndex) const { if(!bgOfIndex || !endOfIndex) throw INTERP_KERNEL::Exception("DataArrayInt::accumulatePerChunck : input pointer NULL !"); @@ -8675,6 +8842,8 @@ DataArrayInt *DataArrayInt::Aggregate(const DataArrayInt *a1, const DataArrayInt * the number of component in the result array is same as that of each of given arrays. * Info on components is copied from the first of the given arrays. Number of components * in the given arrays must be the same. + * If the number of non null of elements in \a arr is equal to one the returned object is a copy of it + * not the object itself. * \param [in] arr - a sequence of arrays to include in the result array. * \return DataArrayInt * - the new instance of DataArrayInt. * The caller is to delete this result array using decrRef() as it is no more @@ -8682,7 +8851,7 @@ DataArrayInt *DataArrayInt::Aggregate(const DataArrayInt *a1, const DataArrayInt * \throw If all arrays within \a arr are NULL. * \throw If getNumberOfComponents() of arrays within \a arr. */ -DataArrayInt *DataArrayInt::Aggregate(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Aggregate(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -8716,7 +8885,7 @@ DataArrayInt *DataArrayInt::Aggregate(const std::vector& a * * \return DataArrayInt * - a new object to be managed by the caller. */ -DataArrayInt *DataArrayInt::AggregateIndexes(const std::vector& arrs) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::AggregateIndexes(const std::vector& arrs) { int retSz=1; for(std::vector::const_iterator it4=arrs.begin();it4!=arrs.end();it4++) @@ -8766,7 +8935,7 @@ DataArrayInt *DataArrayInt::AggregateIndexes(const std::vectorgetNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -int DataArrayInt::getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getMaxValue(int& tupleId) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8786,7 +8955,7 @@ int DataArrayInt::getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception * \return int - the maximal value among all values of \a this array. * \throw If \a this is not allocated. */ -int DataArrayInt::getMaxValueInArray() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getMaxValueInArray() const { checkAllocated(); const int *loc=std::max_element(begin(),end()); @@ -8800,7 +8969,7 @@ int DataArrayInt::getMaxValueInArray() const throw(INTERP_KERNEL::Exception) * \throw If \a this->getNumberOfComponents() != 1 * \throw If \a this->getNumberOfTuples() < 1 */ -int DataArrayInt::getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getMinValue(int& tupleId) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -8820,7 +8989,7 @@ int DataArrayInt::getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception * \return int - the minimal value among all values of \a this array. * \throw If \a this is not allocated. */ -int DataArrayInt::getMinValueInArray() const throw(INTERP_KERNEL::Exception) +int DataArrayInt::getMinValueInArray() const { checkAllocated(); const int *loc=std::min_element(begin(),end()); @@ -8829,17 +8998,44 @@ int DataArrayInt::getMinValueInArray() const throw(INTERP_KERNEL::Exception) /*! * Converts every value of \a this array to its absolute value. - * \throw If \a this is not allocated. + * \b WARNING this method is non const. If a new DataArrayInt instance should be built containing the result of abs DataArrayInt::computeAbs + * should be called instead. + * + * \throw If \a this is not allocated. + * \sa DataArrayInt::computeAbs */ -void DataArrayInt::abs() throw(INTERP_KERNEL::Exception) +void DataArrayInt::abs() { checkAllocated(); - int *ptr=getPointer(); - std::size_t nbOfElems=getNbOfElems(); + int *ptr(getPointer()); + std::size_t nbOfElems(getNbOfElems()); std::transform(ptr,ptr+nbOfElems,ptr,std::ptr_fun(std::abs)); declareAsNew(); } +/*! + * This method builds a new instance of \a this object containing the result of std::abs applied of all elements in \a this. + * This method is a const method (that do not change any values in \a this) contrary to DataArrayInt::abs method. + * + * \return DataArrayInt * - the new instance of DataArrayInt containing the + * same number of tuples and component as \a this array. + * The caller is to delete this result array using decrRef() as it is no more + * needed. + * \throw If \a this is not allocated. + * \sa DataArrayInt::abs + */ +DataArrayInt *DataArrayInt::computeAbs() const +{ + checkAllocated(); + DataArrayInt *newArr(DataArrayInt::New()); + int nbOfTuples(getNumberOfTuples()); + int nbOfComp(getNumberOfComponents()); + newArr->alloc(nbOfTuples,nbOfComp); + std::transform(begin(),end(),newArr->getPointer(),std::ptr_fun(std::abs)); + newArr->copyStringInfoFrom(*this); + return newArr; +} + /*! * Apply a liner function to a given component of \a this array, so that * an array element (x) becomes \f$ a * x + b \f$. @@ -8848,7 +9044,7 @@ void DataArrayInt::abs() throw(INTERP_KERNEL::Exception) * \param [in] compoId - the index of component to modify. * \throw If \a this is not allocated. */ -void DataArrayInt::applyLin(int a, int b, int compoId) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyLin(int a, int b, int compoId) { checkAllocated(); int *ptr=getPointer()+compoId; @@ -8866,7 +9062,7 @@ void DataArrayInt::applyLin(int a, int b, int compoId) throw(INTERP_KERNEL::Exce * \param [in] b - the second coefficient of the function. * \throw If \a this is not allocated. */ -void DataArrayInt::applyLin(int a, int b) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyLin(int a, int b) { checkAllocated(); int *ptr=getPointer(); @@ -8884,7 +9080,7 @@ void DataArrayInt::applyLin(int a, int b) throw(INTERP_KERNEL::Exception) * needed. * \throw If \a this is not allocated. */ -DataArrayInt *DataArrayInt::negate() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::negate() const { checkAllocated(); DataArrayInt *newArr=DataArrayInt::New(); @@ -8907,7 +9103,7 @@ DataArrayInt *DataArrayInt::negate() const throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If there is an element equal to 0 in \a this array. */ -void DataArrayInt::applyInv(int numerator) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyInv(int numerator) { checkAllocated(); int *ptr=getPointer(); @@ -8935,7 +9131,7 @@ void DataArrayInt::applyInv(int numerator) throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If \a val == 0. */ -void DataArrayInt::applyDivideBy(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyDivideBy(int val) { if(val==0) throw INTERP_KERNEL::Exception("DataArrayInt::applyDivideBy : Trying to divide by 0 !"); @@ -8953,7 +9149,7 @@ void DataArrayInt::applyDivideBy(int val) throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If \a val <= 0. */ -void DataArrayInt::applyModulus(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyModulus(int val) { if(val<=0) throw INTERP_KERNEL::Exception("DataArrayInt::applyDivideBy : Trying to operate modulus on value <= 0 !"); @@ -8972,30 +9168,56 @@ void DataArrayInt::applyModulus(int val) throw(INTERP_KERNEL::Exception) * \param [in] vmin begin of range. This value is included in range (included). * \param [in] vmax end of range. This value is \b not included in range (excluded). * \return a newly allocated data array that the caller should deal with. + * + * \sa DataArrayInt::getIdsNotInRange */ -DataArrayInt *DataArrayInt::getIdsInRange(int vmin, int vmax) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getIdsInRange(int vmin, int vmax) const { checkAllocated(); if(getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::getIdsInRange : this must have exactly one component !"); - const int *cptr=getConstPointer(); - MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); ret->alloc(0,1); - int nbOfTuples=getNumberOfTuples(); + const int *cptr(begin()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); + int nbOfTuples(getNumberOfTuples()); for(int i=0;i=vmin && *cptrpushBackSilent(i); return ret.retn(); } +/*! + * This method works only on data array with one component. + * This method returns a newly allocated array storing stored ascendantly tuple ids in \b this so that + * this[*id] \b not in [\b vmin,\b vmax) + * + * \param [in] vmin begin of range. This value is \b not included in range (excluded). + * \param [in] vmax end of range. This value is included in range (included). + * \return a newly allocated data array that the caller should deal with. + * + * \sa DataArrayInt::getIdsInRange + */ +DataArrayInt *DataArrayInt::getIdsNotInRange(int vmin, int vmax) const +{ + checkAllocated(); + if(getNumberOfComponents()!=1) + throw INTERP_KERNEL::Exception("DataArrayInt::getIdsNotInRange : this must have exactly one component !"); + const int *cptr(getConstPointer()); + MEDCouplingAutoRefCountObjectPtr ret(DataArrayInt::New()); ret->alloc(0,1); + int nbOfTuples(getNumberOfTuples()); + for(int i=0;i=vmax) + ret->pushBackSilent(i); + return ret.retn(); +} + /*! * This method works only on data array with one component. * This method checks that all ids in \b this are in [ \b vmin, \b vmax ). If there is at least one element in \a this not in [ \b vmin, \b vmax ) an exception will be thrown. * * \param [in] vmin begin of range. This value is included in range (included). * \param [in] vmax end of range. This value is \b not included in range (excluded). - * \return if all ids in \a this are so that (*this)[i]==i for all i in [ 0, \c this->getNumberOfTuples() ). - */ -bool DataArrayInt::checkAllIdsInRange(int vmin, int vmax) const throw(INTERP_KERNEL::Exception) + * \return if all ids in \a this are so that (*this)[i]==i for all i in [ 0, \c this->getNumberOfTuples() ). */ +bool DataArrayInt::checkAllIdsInRange(int vmin, int vmax) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9026,7 +9248,7 @@ bool DataArrayInt::checkAllIdsInRange(int vmin, int vmax) const throw(INTERP_KER * \throw If \a this is not allocated. * \throw If there is an element equal to or less than 0 in \a this array. */ -void DataArrayInt::applyRModulus(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyRModulus(int val) { checkAllocated(); int *ptr=getPointer(); @@ -9054,7 +9276,7 @@ void DataArrayInt::applyRModulus(int val) throw(INTERP_KERNEL::Exception) * \throw If \a this is not allocated. * \throw If \a val < 0. */ -void DataArrayInt::applyPow(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyPow(int val) { checkAllocated(); if(val<0) @@ -9086,7 +9308,7 @@ void DataArrayInt::applyPow(int val) throw(INTERP_KERNEL::Exception) * array, all elements processed before detection of the zero element remain * modified. */ -void DataArrayInt::applyRPow(int val) throw(INTERP_KERNEL::Exception) +void DataArrayInt::applyRPow(int val) { checkAllocated(); int *ptr=getPointer(); @@ -9126,7 +9348,7 @@ void DataArrayInt::applyRPow(int val) throw(INTERP_KERNEL::Exception) * \throw If any given array is not allocated. * \throw If \a a1->getNumberOfTuples() != \a a2->getNumberOfTuples() */ -DataArrayInt *DataArrayInt::Meld(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Meld(const DataArrayInt *a1, const DataArrayInt *a2) { std::vector arr(2); arr[0]=a1; arr[1]=a2; @@ -9148,7 +9370,7 @@ DataArrayInt *DataArrayInt::Meld(const DataArrayInt *a1, const DataArrayInt *a2) * \throw If any given array is not allocated. * \throw If getNumberOfTuples() of arrays within \a arr is different. */ -DataArrayInt *DataArrayInt::Meld(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Meld(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -9185,7 +9407,7 @@ DataArrayInt *DataArrayInt::Meld(const std::vector& arr) t int k=0; for(int i=0;i<(int)a.size();i++) for(int j=0;jsetInfoOnComponent(k,a[i]->getInfoOnComponent(j).c_str()); + ret->setInfoOnComponent(k,a[i]->getInfoOnComponent(j)); return ret; } @@ -9213,7 +9435,7 @@ DataArrayInt *DataArrayInt::Meld(const std::vector& arr) t * delete this array using decrRef() as it is no more needed. * \throw If any element ID in \a groups violates condition ( 0 <= ID < \a newNb ). */ -DataArrayInt *DataArrayInt::MakePartition(const std::vector& groups, int newNb, std::vector< std::vector >& fidsOfGroups) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::MakePartition(const std::vector& groups, int newNb, std::vector< std::vector >& fidsOfGroups) { std::vector groups2; for(std::vector::const_iterator it4=groups.begin();it4!=groups.end();it4++) @@ -9278,7 +9500,7 @@ DataArrayInt *DataArrayInt::MakePartition(const std::vectorgetNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::BuildUnion(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::BuildUnion(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -9314,7 +9536,7 @@ DataArrayInt *DataArrayInt::BuildUnion(const std::vector& * \throw If any \a arr[i] is not allocated. * \throw If \a arr[i]->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::BuildIntersection(const std::vector& arr) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::BuildIntersection(const std::vector& arr) { std::vector a; for(std::vector::const_iterator it4=arr.begin();it4!=arr.end();it4++) @@ -9360,7 +9582,7 @@ DataArrayInt *DataArrayInt::BuildIntersection(const std::vectorgetNumberOfComponents() != 1. * \sa DataArrayInt::buildSubstractionOptimized() */ -DataArrayInt *DataArrayInt::buildSubstraction(const DataArrayInt *other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildSubstraction(const DataArrayInt *other) const { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::buildSubstraction : DataArrayInt pointer in input is NULL !"); @@ -9429,7 +9651,7 @@ DataArrayInt *DataArrayInt::buildSubstraction(const DataArrayInt *other) const t * \ret list of ids in \a this but not in \a other. * \sa DataArrayInt::buildSubstraction */ -DataArrayInt *DataArrayInt::buildSubstractionOptimized(const DataArrayInt *other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildSubstractionOptimized(const DataArrayInt *other) const { static const char *MSG="DataArrayInt::buildSubstractionOptimized : only single component allowed !"; if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::buildSubstractionOptimized : NULL input array !"); @@ -9460,7 +9682,7 @@ DataArrayInt *DataArrayInt::buildSubstractionOptimized(const DataArrayInt *other * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a other->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::buildUnion(const DataArrayInt *other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildUnion(const DataArrayInt *other) const { std::vectorarrs(2); arrs[0]=this; arrs[1]=other; @@ -9479,7 +9701,7 @@ DataArrayInt *DataArrayInt::buildUnion(const DataArrayInt *other) const throw(IN * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a other->getNumberOfComponents() != 1. */ -DataArrayInt *DataArrayInt::buildIntersection(const DataArrayInt *other) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildIntersection(const DataArrayInt *other) const { std::vectorarrs(2); arrs[0]=this; arrs[1]=other; @@ -9494,7 +9716,7 @@ DataArrayInt *DataArrayInt::buildIntersection(const DataArrayInt *other) const t * \return a newly allocated array that contain the result of the unique operation applied on \a this. * \throw if \a this is not allocated or if \a this has not exactly one component. */ -DataArrayInt *DataArrayInt::buildUnique() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildUnique() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9531,7 +9753,7 @@ DataArrayInt *DataArrayInt::buildUnique() const throw(INTERP_KERNEL::Exception) * * \sa DataArrayInt::computeOffsets2 */ -DataArrayInt *DataArrayInt::deltaShiftIndex() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::deltaShiftIndex() const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9564,7 +9786,7 @@ DataArrayInt *DataArrayInt::deltaShiftIndex() const throw(INTERP_KERNEL::Excepti * Note that the last element 19 = 11 + 8 is missing because size of \a this * array is retained and thus there is no space to store the last element. */ -void DataArrayInt::computeOffsets() throw(INTERP_KERNEL::Exception) +void DataArrayInt::computeOffsets() { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9601,7 +9823,7 @@ void DataArrayInt::computeOffsets() throw(INTERP_KERNEL::Exception) * - After \a this contains [0,3,8,9,11,11,19]
* \sa DataArrayInt::deltaShiftIndex */ -void DataArrayInt::computeOffsets2() throw(INTERP_KERNEL::Exception) +void DataArrayInt::computeOffsets2() { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9640,7 +9862,7 @@ void DataArrayInt::computeOffsets2() throw(INTERP_KERNEL::Exception) * In this example id 3 in input \a listOfIds is alone so it do not appear in output \a idsInInputListThatFetch. *
*/ -void DataArrayInt::searchRangesInListOfIds(const DataArrayInt *listOfIds, DataArrayInt *& rangeIdsFetched, DataArrayInt *& idsInInputListThatFetch) const throw(INTERP_KERNEL::Exception) +void DataArrayInt::searchRangesInListOfIds(const DataArrayInt *listOfIds, DataArrayInt *& rangeIdsFetched, DataArrayInt *& idsInInputListThatFetch) const { if(!listOfIds) throw INTERP_KERNEL::Exception("DataArrayInt::searchRangesInListOfIds : input list of ids is null !"); @@ -9696,7 +9918,7 @@ void DataArrayInt::searchRangesInListOfIds(const DataArrayInt *listOfIds, DataAr * \c range( \a offsets[ \a this[1] ], offsets[ \a this[1]+1 ]) + * \c range( \a offsets[ \a this[2] ], offsets[ \a this[2]+1 ]) */ -DataArrayInt *DataArrayInt::buildExplicitArrByRanges(const DataArrayInt *offsets) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildExplicitArrByRanges(const DataArrayInt *offsets) const { if(!offsets) throw INTERP_KERNEL::Exception("DataArrayInt::buildExplicitArrByRanges : DataArrayInt pointer in input is NULL !"); @@ -9759,14 +9981,14 @@ from that of \a this and \a * \throw If \a this->getNumberOfComponents() != 1. * \throw If \a this->getNumberOfTuples() == 0. * \throw If \a this is not monotonically increasing. - * \throw If any element of ids in ( \a gb \a end \a step ) points outside the scale in \a this. + * \throw If any element of ids in ( \a bg \a stop \a step ) points outside the scale in \a this. * * \b Example:
- * - \a bg , \a end and \a step : (0,5,2) + * - \a bg , \a stop and \a step : (0,5,2) * - \a this: [0,3,6,10,14,20] * - result array: [0,0,0, 2,2,2,2, 4,4,4,4,4,4] ==
*/ -DataArrayInt *DataArrayInt::buildExplicitArrOfSliceOnScaledArr(int bg, int end, int step) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::buildExplicitArrOfSliceOnScaledArr(int bg, int stop, int step) const { if(!isAllocated()) throw INTERP_KERNEL::Exception("DataArrayInt::buildExplicitArrOfSliceOnScaledArr : not allocated array !"); @@ -9776,7 +9998,7 @@ DataArrayInt *DataArrayInt::buildExplicitArrOfSliceOnScaledArr(int bg, int end, if(nbOfTuples==0) throw INTERP_KERNEL::Exception("DataArrayInt::buildExplicitArrOfSliceOnScaledArr : number of tuples must be != 0 !"); const int *ids(begin()); - int nbOfEltsInSlc(GetNumberOfItemGivenBESRelative(bg,end,step,"DataArrayInt::buildExplicitArrOfSliceOnScaledArr")),sz(0),pos(bg); + int nbOfEltsInSlc(GetNumberOfItemGivenBESRelative(bg,stop,step,"DataArrayInt::buildExplicitArrOfSliceOnScaledArr")),sz(0),pos(bg); for(int i=0;i=0 && posgetNumberOfTuples. * \throw if \a this is not allocated or if \a this has not number of components set to one or if \a nbTimes is lower than 1. */ -DataArrayInt *DataArrayInt::duplicateEachTupleNTimes(int nbTimes) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::duplicateEachTupleNTimes(int nbTimes) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9938,7 +10160,7 @@ DataArrayInt *DataArrayInt::duplicateEachTupleNTimes(int nbTimes) const throw(IN * But the number of components can be different from one. * \return a newly allocated array (that should be dealt by the caller) containing different values in \a this. */ -DataArrayInt *DataArrayInt::getDifferentValues() const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::getDifferentValues() const { checkAllocated(); std::set ret; @@ -9956,7 +10178,7 @@ DataArrayInt *DataArrayInt::getDifferentValues() const throw(INTERP_KERNEL::Exce * The instances of DataArrayInt in the returned vector have be specially allocated and computed by this method. Each of them should be dealt by the caller of this method. * Example : if this is equal to [1,0,1,2,0,2,2,-3,2] -> differentIds=[-3,0,1,2] and returned array will be equal to [[7],[1,4],[0,2],[3,5,6,8]] */ -std::vector DataArrayInt::partitionByDifferentValues(std::vector& differentIds) const throw(INTERP_KERNEL::Exception) +std::vector DataArrayInt::partitionByDifferentValues(std::vector& differentIds) const { checkAllocated(); if(getNumberOfComponents()!=1) @@ -9995,7 +10217,7 @@ std::vector DataArrayInt::partitionByDifferentValues(std::vector * \throw If \a this is not allocated or not with exactly one component. * \throw If an element in \a this if < 0. */ -std::vector< std::pair > DataArrayInt::splitInBalancedSlices(int nbOfSlices) const throw(INTERP_KERNEL::Exception) +std::vector< std::pair > DataArrayInt::splitInBalancedSlices(int nbOfSlices) const { if(!isAllocated() || getNumberOfComponents()!=1) throw INTERP_KERNEL::Exception("DataArrayInt::splitInBalancedSlices : this array should have number of components equal to one and must be allocated !"); @@ -10044,7 +10266,7 @@ std::vector< std::pair > DataArrayInt::splitInBalancedSlices(int nbOfSl * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayInt *DataArrayInt::Add(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Add(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Add : input DataArrayInt instance is NULL !"); @@ -10131,7 +10353,7 @@ DataArrayInt *DataArrayInt::Add(const DataArrayInt *a1, const DataArrayInt *a2) * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayInt::addEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::addEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::addEqual : input DataArrayInt instance is NULL !"); @@ -10199,7 +10421,7 @@ void DataArrayInt::addEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exce * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayInt *DataArrayInt::Substract(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Substract(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Substract : input DataArrayInt instance is NULL !"); @@ -10271,7 +10493,7 @@ DataArrayInt *DataArrayInt::Substract(const DataArrayInt *a1, const DataArrayInt * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayInt::substractEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::substractEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::substractEqual : input DataArrayInt instance is NULL !"); @@ -10334,7 +10556,7 @@ void DataArrayInt::substractEqual(const DataArrayInt *other) throw(INTERP_KERNEL * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayInt *DataArrayInt::Multiply(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Multiply(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Multiply : input DataArrayInt instance is NULL !"); @@ -10422,7 +10644,7 @@ DataArrayInt *DataArrayInt::Multiply(const DataArrayInt *a1, const DataArrayInt * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayInt::multiplyEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::multiplyEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::multiplyEqual : input DataArrayInt instance is NULL !"); @@ -10492,7 +10714,7 @@ void DataArrayInt::multiplyEqual(const DataArrayInt *other) throw(INTERP_KERNEL: * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayInt *DataArrayInt::Divide(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Divide(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Divide : input DataArrayInt instance is NULL !"); @@ -10565,7 +10787,7 @@ DataArrayInt *DataArrayInt::Divide(const DataArrayInt *a1, const DataArrayInt *a * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayInt::divideEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::divideEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::divideEqual : input DataArrayInt instance is NULL !"); @@ -10635,7 +10857,7 @@ void DataArrayInt::divideEqual(const DataArrayInt *other) throw(INTERP_KERNEL::E * \a a1->getNumberOfComponents() != \a a2->getNumberOfComponents() and * none of them has number of tuples or components equal to 1. */ -DataArrayInt *DataArrayInt::Modulus(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Modulus(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Modulus : input DataArrayInt instance is NULL !"); @@ -10708,7 +10930,7 @@ DataArrayInt *DataArrayInt::Modulus(const DataArrayInt *a1, const DataArrayInt * * \a this->getNumberOfComponents() != \a other->getNumberOfComponents() and * \a other has number of both tuples and components not equal to 1. */ -void DataArrayInt::modulusEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::modulusEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::modulusEqual : input DataArrayInt instance is NULL !"); @@ -10765,7 +10987,7 @@ void DataArrayInt::modulusEqual(const DataArrayInt *other) throw(INTERP_KERNEL:: * \throw If \a a1->getNumberOfComponents() != 1 or \a a2->getNumberOfComponents() != 1. * \throw If there is a negative value in \a a2. */ -DataArrayInt *DataArrayInt::Pow(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Pow(const DataArrayInt *a1, const DataArrayInt *a2) { if(!a1 || !a2) throw INTERP_KERNEL::Exception("DataArrayInt::Pow : at least one of input instances is null !"); @@ -10807,7 +11029,7 @@ DataArrayInt *DataArrayInt::Pow(const DataArrayInt *a1, const DataArrayInt *a2) * \throw If \a this->getNumberOfComponents() != 1 or \a other->getNumberOfComponents() != 1 * \throw If there is a negative value in \a other. */ -void DataArrayInt::powEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) +void DataArrayInt::powEqual(const DataArrayInt *other) { if(!other) throw INTERP_KERNEL::Exception("DataArrayInt::powEqual : input instance is null !"); @@ -10889,7 +11111,7 @@ int *DataArrayInt::CheckAndPreparePermutation(const int *start, const int *end) * \throw If \a end < \a begin && \a step > 0. * \throw If \a end > \a begin && \a step < 0. */ -DataArrayInt *DataArrayInt::Range(int begin, int end, int step) throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayInt::Range(int begin, int end, int step) { int nbOfTuples=GetNumberOfItemGivenBESRelative(begin,end,step,"DataArrayInt::Range"); MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); @@ -10970,12 +11192,12 @@ bool DataArrayInt::resizeForUnserialization(const std::vector& tinyInfoI) */ void DataArrayInt::finishUnserialization(const std::vector& tinyInfoI, const std::vector& tinyInfoS) { - setName(tinyInfoS[0].c_str()); + setName(tinyInfoS[0]); if(isAllocated()) { int nbOfCompo=tinyInfoI[1]; for(int i=0;idecrRef(); } -DataArrayIntTuple *DataArrayIntIterator::nextt() throw(INTERP_KERNEL::Exception) +DataArrayIntTuple *DataArrayIntIterator::nextt() { if(_tuple_id<_nb_tuple) { @@ -11016,7 +11238,7 @@ DataArrayIntTuple::DataArrayIntTuple(int *pt, int nbOfComp):_pt(pt),_nb_of_compo { } -std::string DataArrayIntTuple::repr() const throw(INTERP_KERNEL::Exception) +std::string DataArrayIntTuple::repr() const { std::ostringstream oss; oss << "("; for(int i=0;i<_nb_of_compo-1;i++) @@ -11025,7 +11247,7 @@ std::string DataArrayIntTuple::repr() const throw(INTERP_KERNEL::Exception) return oss.str(); } -int DataArrayIntTuple::intValue() const throw(INTERP_KERNEL::Exception) +int DataArrayIntTuple::intValue() const { if(_nb_of_compo==1) return *_pt; @@ -11038,7 +11260,7 @@ int DataArrayIntTuple::intValue() const throw(INTERP_KERNEL::Exception) * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem. */ -DataArrayInt *DataArrayIntTuple::buildDAInt(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception) +DataArrayInt *DataArrayIntTuple::buildDAInt(int nbOfTuples, int nbOfCompo) const { if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1)) {