+
+ template<class T>
+ class DataArrayTemplateClassic : public DataArrayTemplate<T>
+ {
+ public:
+ MEDCOUPLING_EXPORT MCAuto<DataArrayDouble> convertToDblArr() const;
+ MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> convertToIntArr() const;
+ MEDCOUPLING_EXPORT MCAuto<DataArrayFloat> convertToFloatArr() const;
+ MEDCOUPLING_EXPORT void applyLin(T a, T b, int compoId);
+ MEDCOUPLING_EXPORT void applyLin(T a, T b);
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *negate() const;
+ MEDCOUPLING_EXPORT void addEqual(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT void substractEqual(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT void multiplyEqual(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT void divideEqual(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Substract(const typename Traits<T>::ArrayType *a1, const typename Traits<T>::ArrayType *a2);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Divide(const typename Traits<T>::ArrayType *a1, const typename Traits<T>::ArrayType *a2);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Add(const typename Traits<T>::ArrayType *a1, const typename Traits<T>::ArrayType *a2);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Multiply(const typename Traits<T>::ArrayType *a1, const typename Traits<T>::ArrayType *a2);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Meld(const typename Traits<T>::ArrayType *a1, const typename Traits<T>::ArrayType *a2);
+ MEDCOUPLING_EXPORT static typename Traits<T>::ArrayType *Meld(const std::vector<const typename Traits<T>::ArrayType *>& arr);
+ MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> findIdsGreaterOrEqualTo(T val) const;
+ MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> findIdsGreaterThan(T val) const;
+ MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> findIdsLowerOrEqualTo(T val) const;
+ MEDCOUPLING_EXPORT MCAuto<DataArrayInt32> findIdsLowerThan(T val) const;
+ MEDCOUPLING_EXPORT DataArrayInt32 *findIdsStrictlyNegative() const;
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *fromNoInterlace() const;
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *toNoInterlace() const;
+ MEDCOUPLING_EXPORT void meldWith(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *duplicateEachTupleNTimes(int nbTimes) const;
+ MEDCOUPLING_EXPORT void aggregate(const typename Traits<T>::ArrayType *other);
+ MEDCOUPLING_EXPORT void abs();
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *computeAbs() const;
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *performCopyOrIncrRef(bool dCpy) const;
+ MEDCOUPLING_EXPORT typename Traits<T>::ArrayType *sumPerTuple() const;
+ MEDCOUPLING_EXPORT void iota(T init=(T)0);
+ MEDCOUPLING_EXPORT void reprStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprZipStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprNotTooLongStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprWithoutNameStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprZipWithoutNameStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprNotTooLongWithoutNameStream(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT std::string reprNotTooLong() const;
+ template<class U>
+ MCAuto< typename Traits<U>::ArrayType > convertToOtherTypeOfArr() const;
+ protected:
+ static typename Traits<T>::ArrayType *PerformCopyOrIncrRef(bool dCpy, const typename Traits<T>::ArrayType& self);
+ template<class OP>
+ MCAuto<DataArrayInt32> findIdsAdv(const OP& op) const;
+ private:
+ template<class FCT>
+ void somethingEqual(const typename Traits<T>::ArrayType *other);
+ };
+
+ template<class T>
+ class DataArrayTemplateFP : public DataArrayTemplateClassic<T>
+ {
+ public:
+ MEDCOUPLING_EXPORT bool isUniform(T val, T eps) const;
+ };
+}
+
+namespace MEDCoupling
+{
+ class DataArrayFloatIterator;
+ class DataArrayFloat : public DataArrayTemplateFP<float>
+ {
+ public:
+ MEDCOUPLING_EXPORT static DataArrayFloat *New();
+ public:// abstract method overload
+ MEDCOUPLING_EXPORT DataArrayFloat *deepCopy() const;
+ MEDCOUPLING_EXPORT DataArrayFloat *buildNewEmptyInstance() const { return DataArrayFloat::New(); }
+ MEDCOUPLING_EXPORT DataArrayFloat *selectByTupleRanges(const std::vector<std::pair<int,int> >& ranges) const { return DataArrayTemplateFP<float>::mySelectByTupleRanges(ranges); }
+ MEDCOUPLING_EXPORT DataArrayFloat *keepSelectedComponents(const std::vector<int>& compoIds) const { return DataArrayTemplateFP<float>::myKeepSelectedComponents(compoIds); }
+ MEDCOUPLING_EXPORT DataArrayFloat *selectByTupleId(const int *new2OldBg, const int *new2OldEnd) const { return DataArrayTemplateFP<float>::mySelectByTupleId(new2OldBg,new2OldEnd); }
+ MEDCOUPLING_EXPORT DataArrayFloat *selectByTupleIdSafe(const int *new2OldBg, const int *new2OldEnd) const { return DataArrayTemplateFP<float>::mySelectByTupleIdSafe(new2OldBg,new2OldEnd); }
+ MEDCOUPLING_EXPORT DataArrayFloat *selectByTupleIdSafeSlice(int bg, int end2, int step) const { return DataArrayTemplateFP<float>::mySelectByTupleIdSafeSlice(bg,end2,step); }
+ MEDCOUPLING_EXPORT void reprCppStream(const std::string& varName, std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprQuickOverview(std::ostream& stream) const;
+ MEDCOUPLING_EXPORT void reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const;
+ public:// non abstract but essential
+ MEDCOUPLING_EXPORT bool isEqual(const DataArrayFloat& other, float prec) const;
+ MEDCOUPLING_EXPORT bool isEqualIfNotWhy(const DataArrayFloat& other, float prec, std::string& reason) const;
+ MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const DataArrayFloat& other, float prec) const;
+ public:
+ MEDCOUPLING_EXPORT DataArrayFloatIterator *iterator();
+ private:
+ ~DataArrayFloat() { }
+ DataArrayFloat() { }
+ };