X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingMemArrayFloat.cxx;h=4b7132cd533b16099e6f346297432d4b22fa1c92;hb=b832b15337be013a56e0976170e5e235b89fcb03;hp=a06401848c202cfa4e71ef972d86e0c8190aa4a8;hpb=8c9ecbe43d32cbea0d0b9ce867144df3f3061abd;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingMemArrayFloat.cxx b/src/MEDCoupling/MEDCouplingMemArrayFloat.cxx index a06401848..4b7132cd5 100644 --- a/src/MEDCoupling/MEDCouplingMemArrayFloat.cxx +++ b/src/MEDCoupling/MEDCouplingMemArrayFloat.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2017 CEA/DEN, EDF R&D +// Copyright (C) 2007-2024 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,7 +24,9 @@ using namespace MEDCoupling; template class MEDCoupling::MemArray; template class MEDCoupling::DataArrayTemplate; +template class MEDCoupling::DataArrayTemplateClassic; template class MEDCoupling::DataArrayTemplateFP; +template class MEDCoupling::DataArrayIterator; DataArrayFloat *DataArrayFloat::New() { @@ -36,28 +38,10 @@ DataArrayFloat *DataArrayFloat::deepCopy() const return new DataArrayFloat(*this); } -void DataArrayFloat::reprStream(std::ostream& stream) const -{ - stream << "Name of float array : \"" << _name << "\"\n"; - reprWithoutNameStream(stream); -} - -void DataArrayFloat::reprZipStream(std::ostream& stream) const -{ - stream << "Name of float array : \"" << _name << "\"\n"; - reprZipWithoutNameStream(stream); -} - -void DataArrayFloat::reprZipWithoutNameStream(std::ostream& stream) const -{ - DataArray::reprWithoutNameStream(stream); - stream.precision(7); - _mem.repr(getNumberOfComponents(),stream); -} - void DataArrayFloat::reprCppStream(const std::string& varName, std::ostream& stream) const { - int nbTuples(getNumberOfTuples()),nbComp(getNumberOfComponents()); + mcIdType nbTuples(getNumberOfTuples()); + std::size_t nbComp(getNumberOfComponents()); const float *data(begin()); stream.precision(7); stream << "DataArrayFloat *" << varName << "=DataArrayFloat::New();" << std::endl; @@ -79,10 +63,10 @@ void DataArrayFloat::reprQuickOverview(std::ostream& stream) const stream << "DataArrayFloat C++ instance at " << this << ". "; if(isAllocated()) { - int nbOfCompo=(int)_info_on_compo.size(); + std::size_t nbOfCompo=_info_on_compo.size(); if(nbOfCompo>=1) { - int nbOfTuples=getNumberOfTuples(); + mcIdType nbOfTuples=getNumberOfTuples(); stream << "Number of tuples : " << nbOfTuples << ". Number of components : " << nbOfCompo << "." << std::endl; reprQuickOverviewData(stream,MAX_NB_OF_BYTE_IN_REPR); } @@ -96,18 +80,18 @@ void DataArrayFloat::reprQuickOverview(std::ostream& stream) const void DataArrayFloat::reprQuickOverviewData(std::ostream& stream, std::size_t maxNbOfByteInRepr) const { const float *data(begin()); - int nbOfTuples(getNumberOfTuples()); - int nbOfCompo=(int)_info_on_compo.size(); + mcIdType nbOfTuples(getNumberOfTuples()); + std::size_t nbOfCompo=_info_on_compo.size(); std::ostringstream oss2; oss2 << "["; oss2.precision(7); std::string oss2Str(oss2.str()); bool isFinished=true; - for(int i=0;i1) { oss2 << "("; - for(int j=0;j(da) +{ +} + +DataArrayFloatTuple::DataArrayFloatTuple(float *pt, std::size_t nbOfComp):DataArrayTuple(pt,nbOfComp) +{ +} + +std::string DataArrayFloatTuple::repr() const +{ + std::ostringstream oss; oss.precision(7); oss << "("; + for(std::size_t i=0;i<_nb_of_compo-1;i++) + oss << _pt[i] << ", "; + oss << _pt[_nb_of_compo-1] << ")"; + return oss.str(); +} + +float DataArrayFloatTuple::floatValue() const +{ + return this->zeValue(); +} + +/*! + * This method returns a newly allocated instance the caller should dealed with by a MEDCoupling::DataArrayFloat::decrRef. + * This method performs \b no copy of data. The content is only referenced using MEDCoupling::DataArrayFloat::useArray with ownership set to \b false. + * 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. + */ +DataArrayFloat *DataArrayFloatTuple::buildDAFloat(std::size_t nbOfTuples, std::size_t nbOfCompo) const +{ + return this->buildDA(nbOfTuples,nbOfCompo); +}