1 // Copyright (C) 2007-2020 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 // Author : Anthony Geay (EDF R&D)
22 %typemap(out) MEDCoupling::DataArray*
24 $result=convertDataArray($1,$owner);
27 %typemap(out) DataArray*
29 $result=convertDataArray($1,$owner);
34 %typemap(out) MEDCoupling::DataArrayChar*
36 $result=convertDataArrayChar($1,$owner);
39 %typemap(out) DataArrayChar*
41 $result=convertDataArrayChar($1,$owner);
44 %typemap(out) MCAuto<MEDCoupling::DataArrayInt32>
46 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt32,SWIG_POINTER_OWN|0);
49 %typemap(out) MCAuto<MEDCoupling::DataArrayInt64>
51 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayInt64,SWIG_POINTER_OWN|0);
54 %typemap(out) MCAuto<MEDCoupling::DataArrayIdType>
56 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTITraits<mcIdType>::TI,SWIG_POINTER_OWN|0);
59 %typemap(out) MCAuto<MEDCoupling::DataArrayDouble>
61 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble,SWIG_POINTER_OWN|0);
64 %typemap(out) MCAuto<MEDCoupling::DataArrayFloat>
66 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTYPE_p_MEDCoupling__DataArrayFloat,SWIG_POINTER_OWN|0);
69 %typemap(out) MCAuto<MEDCoupling::MapII>
71 $result=SWIG_NewPointerObj(SWIG_as_voidptr($1.retn()),SWIGTYPE_p_MEDCoupling__MapII,SWIG_POINTER_OWN|0);
75 %newobject MEDCoupling::DataArray::deepCopy;
76 %newobject MEDCoupling::DataArray::buildNewEmptyInstance;
77 %newobject MEDCoupling::DataArray::selectByTupleRanges;
78 %newobject MEDCoupling::DataArray::selectByTupleId;
79 %newobject MEDCoupling::DataArray::selectByTupleIdSafe;
80 %newobject MEDCoupling::DataArray::selectByTupleIdSafeSlice;
81 %newobject MEDCoupling::DataArray::Aggregate;
82 %newobject MEDCoupling::DataArrayFloat::New;
83 %newobject MEDCoupling::DataArrayFloat::iterator;
84 %newobject MEDCoupling::DataArrayFloat::__iter__;
85 %newobject MEDCoupling::DataArrayFloat::Meld;
86 %newobject MEDCoupling::DataArrayFloat::__rmul__;
87 %newobject MEDCoupling::DataArrayInt32::New;
88 %newobject MEDCoupling::DataArrayInt32::__iter__;
89 %newobject MEDCoupling::DataArrayInt32::performCopyOrIncrRef;
90 %newobject MEDCoupling::DataArrayInt32::subArray;
91 %newobject MEDCoupling::DataArrayInt32::changeNbOfComponents;
92 %newobject MEDCoupling::DataArrayInt32::accumulatePerChunck;
93 %newobject MEDCoupling::DataArrayInt32::checkAndPreparePermutation;
94 %newobject MEDCoupling::DataArrayInt32::transformWithIndArrR;
95 %newobject MEDCoupling::DataArrayInt32::renumber;
96 %newobject MEDCoupling::DataArrayInt32::renumberR;
97 %newobject MEDCoupling::DataArrayInt32::renumberAndReduce;
98 %newobject MEDCoupling::DataArrayInt32::invertArrayO2N2N2O;
99 %newobject MEDCoupling::DataArrayInt32::invertArrayN2O2O2N;
100 %newobject MEDCoupling::DataArrayInt32::invertArrayO2N2N2OBis;
101 %newobject MEDCoupling::DataArrayInt32::findIdsEqual;
102 %newobject MEDCoupling::DataArrayInt32::findIdsNotEqual;
103 %newobject MEDCoupling::DataArrayInt32::findIdsEqualList;
104 %newobject MEDCoupling::DataArrayInt32::findIdsNotEqualList;
105 %newobject MEDCoupling::DataArrayInt32::findIdsEqualTuple;
106 %newobject MEDCoupling::DataArrayInt32::findIdForEach;
107 %newobject MEDCoupling::DataArrayInt32::sumPerTuple;
108 %newobject MEDCoupling::DataArrayInt32::negate;
109 %newobject MEDCoupling::DataArrayInt32::computeAbs;
110 %newobject MEDCoupling::DataArrayInt32::findIdsInRange;
111 %newobject MEDCoupling::DataArrayInt32::findIdsNotInRange;
112 %newobject MEDCoupling::DataArrayInt32::findIdsStrictlyNegative;
113 %newobject MEDCoupling::DataArrayInt32::Aggregate;
114 %newobject MEDCoupling::DataArrayInt32::AggregateIndexes;
115 %newobject MEDCoupling::DataArrayInt32::Meld;
116 %newobject MEDCoupling::DataArrayInt32::Add;
117 %newobject MEDCoupling::DataArrayInt32::Substract;
118 %newobject MEDCoupling::DataArrayInt32::Multiply;
119 %newobject MEDCoupling::DataArrayInt32::Divide;
120 %newobject MEDCoupling::DataArrayInt32::Pow;
121 %newobject MEDCoupling::DataArrayInt32::BuildUnion;
122 %newobject MEDCoupling::DataArrayInt32::BuildIntersection;
123 %newobject MEDCoupling::DataArrayInt32::Range;
124 %newobject MEDCoupling::DataArrayInt32::indicesOfSubPart;
125 %newobject MEDCoupling::DataArrayInt32::fromNoInterlace;
126 %newobject MEDCoupling::DataArrayInt32::toNoInterlace;
127 %newobject MEDCoupling::DataArrayInt32::buildComplement;
128 %newobject MEDCoupling::DataArrayInt32::buildUnion;
129 %newobject MEDCoupling::DataArrayInt32::buildSubstraction;
130 %newobject MEDCoupling::DataArrayInt32::buildSubstractionOptimized;
131 %newobject MEDCoupling::DataArrayInt32::buildIntersection;
132 %newobject MEDCoupling::DataArrayInt32::indexOfSameConsecutiveValueGroups;
133 %newobject MEDCoupling::DataArrayInt32::buildUnique;
134 %newobject MEDCoupling::DataArrayInt32::buildUniqueNotSorted;
135 %newobject MEDCoupling::DataArrayInt32::deltaShiftIndex;
136 %newobject MEDCoupling::DataArrayInt32::buildExplicitArrByRanges;
137 %newobject MEDCoupling::DataArrayInt32::buildExplicitArrOfSliceOnScaledArr;
138 %newobject MEDCoupling::DataArrayInt32::findRangeIdForEachTuple;
139 %newobject MEDCoupling::DataArrayInt32::findIdInRangeForEachTuple;
140 %newobject MEDCoupling::DataArrayInt32::duplicateEachTupleNTimes;
141 %newobject MEDCoupling::DataArrayInt32::occurenceRankInThis;
142 %newobject MEDCoupling::DataArrayInt32::buildPermutationArr;
143 %newobject MEDCoupling::DataArrayInt32::buildPermArrPerLevel;
144 %newobject MEDCoupling::DataArrayInt32::getDifferentValues;
145 %newobject MEDCoupling::DataArrayInt32::FindPermutationFromFirstToSecond;
146 %newobject MEDCoupling::DataArrayInt32::FindPermutationFromFirstToSecondDuplicate;
147 %newobject MEDCoupling::DataArrayInt32::CheckAndPreparePermutation;
148 %newobject MEDCoupling::DataArrayInt32::__neg__;
149 %newobject MEDCoupling::DataArrayInt32::__add__;
150 %newobject MEDCoupling::DataArrayInt32::__radd__;
151 %newobject MEDCoupling::DataArrayInt32::__sub__;
152 %newobject MEDCoupling::DataArrayInt32::__rsub__;
153 %newobject MEDCoupling::DataArrayInt32::__mul__;
154 %newobject MEDCoupling::DataArrayInt32::__rmul__;
155 %newobject MEDCoupling::DataArrayInt32::__div__;
156 %newobject MEDCoupling::DataArrayInt32::__rdiv__;
157 %newobject MEDCoupling::DataArrayInt32::__mod__;
158 %newobject MEDCoupling::DataArrayInt32::__rmod__;
159 %newobject MEDCoupling::DataArrayInt32::__pow__;
160 %newobject MEDCoupling::DataArrayInt32::__rpow__;
161 %newobject MEDCoupling::DataArrayInt32Tuple::buildDAInt;
162 %newobject MEDCoupling::DataArrayInt64::New;
163 %newobject MEDCoupling::DataArrayInt64::__iter__;
164 %newobject MEDCoupling::DataArrayInt64::performCopyOrIncrRef;
165 %newobject MEDCoupling::DataArrayInt64::subArray;
166 %newobject MEDCoupling::DataArrayInt64::changeNbOfComponents;
167 %newobject MEDCoupling::DataArrayInt64::accumulatePerChunck;
168 %newobject MEDCoupling::DataArrayInt64::checkAndPreparePermutation;
169 %newobject MEDCoupling::DataArrayInt64::transformWithIndArrR;
170 %newobject MEDCoupling::DataArrayInt64::renumber;
171 %newobject MEDCoupling::DataArrayInt64::renumberR;
172 %newobject MEDCoupling::DataArrayInt64::renumberAndReduce;
173 %newobject MEDCoupling::DataArrayInt64::invertArrayO2N2N2O;
174 %newobject MEDCoupling::DataArrayInt64::invertArrayN2O2O2N;
175 %newobject MEDCoupling::DataArrayInt64::invertArrayO2N2N2OBis;
176 %newobject MEDCoupling::DataArrayInt64::findIdsEqual;
177 %newobject MEDCoupling::DataArrayInt64::findIdsNotEqual;
178 %newobject MEDCoupling::DataArrayInt64::findIdsEqualList;
179 %newobject MEDCoupling::DataArrayInt64::findIdsNotEqualList;
180 %newobject MEDCoupling::DataArrayInt64::findIdsEqualTuple;
181 %newobject MEDCoupling::DataArrayInt64::findIdForEach;
182 %newobject MEDCoupling::DataArrayInt64::sumPerTuple;
183 %newobject MEDCoupling::DataArrayInt64::negate;
184 %newobject MEDCoupling::DataArrayInt64::computeAbs;
185 %newobject MEDCoupling::DataArrayInt64::findIdsInRange;
186 %newobject MEDCoupling::DataArrayInt64::findIdsNotInRange;
187 %newobject MEDCoupling::DataArrayInt64::findIdsStrictlyNegative;
188 %newobject MEDCoupling::DataArrayInt64::Aggregate;
189 %newobject MEDCoupling::DataArrayInt64::AggregateIndexes;
190 %newobject MEDCoupling::DataArrayInt64::Meld;
191 %newobject MEDCoupling::DataArrayInt64::Add;
192 %newobject MEDCoupling::DataArrayInt64::Substract;
193 %newobject MEDCoupling::DataArrayInt64::Multiply;
194 %newobject MEDCoupling::DataArrayInt64::Divide;
195 %newobject MEDCoupling::DataArrayInt64::Pow;
196 %newobject MEDCoupling::DataArrayInt64::BuildUnion;
197 %newobject MEDCoupling::DataArrayInt64::BuildIntersection;
198 %newobject MEDCoupling::DataArrayInt64::Range;
199 %newobject MEDCoupling::DataArrayInt64::indicesOfSubPart;
200 %newobject MEDCoupling::DataArrayInt64::fromNoInterlace;
201 %newobject MEDCoupling::DataArrayInt64::toNoInterlace;
202 %newobject MEDCoupling::DataArrayInt64::buildComplement;
203 %newobject MEDCoupling::DataArrayInt64::buildUnion;
204 %newobject MEDCoupling::DataArrayInt64::buildSubstraction;
205 %newobject MEDCoupling::DataArrayInt64::buildSubstractionOptimized;
206 %newobject MEDCoupling::DataArrayInt64::buildIntersection;
207 %newobject MEDCoupling::DataArrayInt64::indexOfSameConsecutiveValueGroups;
208 %newobject MEDCoupling::DataArrayInt64::buildUnique;
209 %newobject MEDCoupling::DataArrayInt64::buildUniqueNotSorted;
210 %newobject MEDCoupling::DataArrayInt64::deltaShiftIndex;
211 %newobject MEDCoupling::DataArrayInt64::buildExplicitArrByRanges;
212 %newobject MEDCoupling::DataArrayInt64::buildExplicitArrOfSliceOnScaledArr;
213 %newobject MEDCoupling::DataArrayInt64::findRangeIdForEachTuple;
214 %newobject MEDCoupling::DataArrayInt64::findIdInRangeForEachTuple;
215 %newobject MEDCoupling::DataArrayInt64::duplicateEachTupleNTimes;
216 %newobject MEDCoupling::DataArrayInt64::occurenceRankInThis;
217 %newobject MEDCoupling::DataArrayInt64::buildPermutationArr;
218 %newobject MEDCoupling::DataArrayInt64::buildPermArrPerLevel;
219 %newobject MEDCoupling::DataArrayInt64::getDifferentValues;
220 %newobject MEDCoupling::DataArrayInt64::FindPermutationFromFirstToSecond;
221 %newobject MEDCoupling::DataArrayInt64::FindPermutationFromFirstToSecondDuplicate;
222 %newobject MEDCoupling::DataArrayInt64::CheckAndPreparePermutation;
223 %newobject MEDCoupling::DataArrayInt64::__neg__;
224 %newobject MEDCoupling::DataArrayInt64::__add__;
225 %newobject MEDCoupling::DataArrayInt64::__radd__;
226 %newobject MEDCoupling::DataArrayInt64::__sub__;
227 %newobject MEDCoupling::DataArrayInt64::__rsub__;
228 %newobject MEDCoupling::DataArrayInt64::__mul__;
229 %newobject MEDCoupling::DataArrayInt64::__rmul__;
230 %newobject MEDCoupling::DataArrayInt64::__div__;
231 %newobject MEDCoupling::DataArrayInt64::__rdiv__;
232 %newobject MEDCoupling::DataArrayInt64::__mod__;
233 %newobject MEDCoupling::DataArrayInt64::__rmod__;
234 %newobject MEDCoupling::DataArrayInt64::__pow__;
235 %newobject MEDCoupling::DataArrayInt64::__rpow__;
236 %newobject MEDCoupling::DataArrayInt64Tuple::buildDAInt;
237 %newobject MEDCoupling::DataArrayChar::convertToIntArr;
238 %newobject MEDCoupling::DataArrayChar::renumber;
239 %newobject MEDCoupling::DataArrayChar::renumberR;
240 %newobject MEDCoupling::DataArrayChar::renumberAndReduce;
241 %newobject MEDCoupling::DataArrayChar::changeNbOfComponents;
242 %newobject MEDCoupling::DataArrayChar::findIdsEqual;
243 %newobject MEDCoupling::DataArrayChar::findIdsNotEqual;
244 %newobject MEDCoupling::DataArrayChar::Aggregate;
245 %newobject MEDCoupling::DataArrayChar::Meld;
246 %newobject MEDCoupling::DataArrayByte::New;
247 %newobject MEDCoupling::DataArrayByte::__iter__;
248 %newobject MEDCoupling::DataArrayByte::performCopyOrIncrRef;
249 %newobject MEDCoupling::DataArrayByteTuple::buildDAByte;
250 %newobject MEDCoupling::DataArrayChar::subArray;
251 %newobject MEDCoupling::DataArrayAsciiChar::New;
252 %newobject MEDCoupling::DataArrayAsciiChar::__iter__;
253 %newobject MEDCoupling::DataArrayAsciiChar::performCopyOrIncrRef;
254 %newobject MEDCoupling::DataArrayAsciiCharTuple::buildDAAsciiChar;
255 %newobject MEDCoupling::DataArrayDouble::New;
256 %newobject MEDCoupling::DataArrayDouble::__iter__;
257 %newobject MEDCoupling::DataArrayDouble::performCopyOrIncrRef;
258 %newobject MEDCoupling::DataArrayDouble::Aggregate;
259 %newobject MEDCoupling::DataArrayDouble::Meld;
260 %newobject MEDCoupling::DataArrayDouble::Dot;
261 %newobject MEDCoupling::DataArrayDouble::CrossProduct;
262 %newobject MEDCoupling::DataArrayDouble::Add;
263 %newobject MEDCoupling::DataArrayDouble::Substract;
264 %newobject MEDCoupling::DataArrayDouble::Multiply;
265 %newobject MEDCoupling::DataArrayDouble::Divide;
266 %newobject MEDCoupling::DataArrayDouble::Pow;
267 %newobject MEDCoupling::DataArrayDouble::symmetry3DPlane;
268 %newobject MEDCoupling::DataArrayDouble::subArray;
269 %newobject MEDCoupling::DataArrayDouble::changeNbOfComponents;
270 %newobject MEDCoupling::DataArrayDouble::accumulatePerChunck;
271 %newobject MEDCoupling::DataArrayDouble::findIdsInRange;
272 %newobject MEDCoupling::DataArrayDouble::findIdsNotInRange;
273 %newobject MEDCoupling::DataArrayDouble::findIdsStrictlyNegative;
274 %newobject MEDCoupling::DataArrayDouble::negate;
275 %newobject MEDCoupling::DataArrayDouble::computeAbs;
276 %newobject MEDCoupling::DataArrayDouble::applyFunc;
277 %newobject MEDCoupling::DataArrayDouble::applyFuncCompo;
278 %newobject MEDCoupling::DataArrayDouble::applyFuncNamedCompo;
279 %newobject MEDCoupling::DataArrayDouble::doublyContractedProduct;
280 %newobject MEDCoupling::DataArrayDouble::determinant;
281 %newobject MEDCoupling::DataArrayDouble::eigenValues;
282 %newobject MEDCoupling::DataArrayDouble::eigenVectors;
283 %newobject MEDCoupling::DataArrayDouble::inverse;
284 %newobject MEDCoupling::DataArrayDouble::trace;
285 %newobject MEDCoupling::DataArrayDouble::deviator;
286 %newobject MEDCoupling::DataArrayDouble::magnitude;
287 %newobject MEDCoupling::DataArrayDouble::maxPerTuple;
288 %newobject MEDCoupling::DataArrayDouble::sumPerTuple;
289 %newobject MEDCoupling::DataArrayDouble::computeBBoxPerTuple;
290 %newobject MEDCoupling::DataArrayDouble::buildEuclidianDistanceDenseMatrix;
291 %newobject MEDCoupling::DataArrayDouble::buildEuclidianDistanceDenseMatrixWith;
292 %newobject MEDCoupling::DataArrayDouble::renumber;
293 %newobject MEDCoupling::DataArrayDouble::renumberR;
294 %newobject MEDCoupling::DataArrayDouble::renumberAndReduce;
295 %newobject MEDCoupling::DataArrayDouble::fromNoInterlace;
296 %newobject MEDCoupling::DataArrayDouble::toNoInterlace;
297 %newobject MEDCoupling::DataArrayDouble::fromPolarToCart;
298 %newobject MEDCoupling::DataArrayDouble::fromCylToCart;
299 %newobject MEDCoupling::DataArrayDouble::fromSpherToCart;
300 %newobject MEDCoupling::DataArrayDouble::fromCartToPolar;
301 %newobject MEDCoupling::DataArrayDouble::fromCartToCyl;
302 %newobject MEDCoupling::DataArrayDouble::fromCartToSpher;
303 %newobject MEDCoupling::DataArrayDouble::fromCartToCylGiven;
304 %newobject MEDCoupling::DataArrayDouble::cartesianize;
305 %newobject MEDCoupling::DataArrayDouble::getDifferentValues;
306 %newobject MEDCoupling::DataArrayDouble::findClosestTupleId;
307 %newobject MEDCoupling::DataArrayDouble::computeNbOfInteractionsWith;
308 %newobject MEDCoupling::DataArrayDouble::duplicateEachTupleNTimes;
309 %newobject MEDCoupling::DataArrayDouble::__neg__;
310 %newobject MEDCoupling::DataArrayDouble::__radd__;
311 %newobject MEDCoupling::DataArrayDouble::__rsub__;
312 %newobject MEDCoupling::DataArrayDouble::__rmul__;
313 %newobject MEDCoupling::DataArrayDouble::__rdiv__;
314 %newobject MEDCoupling::DataArrayDouble::__pow__;
315 %newobject MEDCoupling::DataArrayDouble::__rpow__;
316 %newobject MEDCoupling::DataArrayDoubleTuple::buildDADouble;
318 %newobject MEDCoupling::PartDefinition::New;
319 %newobject MEDCoupling::PartDefinition::toDAI;
320 %newobject MEDCoupling::PartDefinition::__add__;
321 %newobject MEDCoupling::PartDefinition::composeWith;
322 %newobject MEDCoupling::PartDefinition::tryToSimplify;
323 %newobject MEDCoupling::DataArrayPartDefinition::New;
324 %newobject MEDCoupling::SlicePartDefinition::New;
327 %feature("unref") DataArray "$this->decrRef();"
328 %feature("unref") DataArrayDouble "$this->decrRef();"
329 %feature("unref") DataArrayInt32 "$this->decrRef();"
330 %feature("unref") DataArrayInt64 "$this->decrRef();"
331 %feature("unref") DataArrayChar "$this->decrRef();"
332 %feature("unref") DataArrayAsciiChar "$this->decrRef();"
333 %feature("unref") DataArrayByte "$this->decrRef();"
335 %feature("unref") MapII "$this->decrRef();"
336 %feature("unref") PartDefinition "$this->decrRef();"
337 %feature("unref") DataArrayPartDefinition "$this->decrRef();"
338 %feature("unref") SlicePartDefinition "$this->decrRef();"
340 namespace MEDCoupling
347 } MEDCouplingAxisType;
349 class DataArrayInt32;
350 class DataArrayInt64;
352 #ifndef MEDCOUPLING_USE_64BIT_IDS
353 typedef DataArrayInt32 DataArrayIdType;
354 #define DataArrayIdType DataArrayInt32
356 typedef DataArrayInt64 DataArrayIdType;
357 #define DataArrayIdType DataArrayInt64
360 class MapII : public RefCountObject, public TimeLabel
363 static MCAuto< MapII > New();
366 class PartDefinition : public RefCountObject, public TimeLabel
369 static PartDefinition *New(int start, int stop, int step);
370 static PartDefinition *New(DataArrayIdType *listOfIds);
371 virtual DataArrayIdType *toDAI() const;
372 virtual int getNumberOfElems() const;
373 virtual std::string getRepr() const;
374 virtual PartDefinition *composeWith(const PartDefinition *other) const;
375 virtual void checkConsistencyLight() const;
376 virtual PartDefinition *tryToSimplify() const;
379 virtual PartDefinition *__add__(const PartDefinition& other) const
381 return (*self)+other;
384 virtual PyObject *isEqual(const PartDefinition *other) const
387 bool ret0(self->isEqual(other,ret1));
388 PyObject *ret=PyTuple_New(2);
389 PyObject *ret0Py=ret0?Py_True:Py_False;
391 PyTuple_SetItem(ret,0,ret0Py);
392 PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
396 virtual PyObject *deepCopy() const
398 return convertPartDefinition(self->deepCopy(),SWIG_POINTER_OWN | 0);
402 virtual ~PartDefinition();
405 class DataArrayPartDefinition : public PartDefinition
408 static DataArrayPartDefinition *New(DataArrayIdType *listOfIds);
411 DataArrayPartDefinition(DataArrayIdType *listOfIds)
413 return DataArrayPartDefinition::New(listOfIds);
416 std::string __str__() const
418 return self->getRepr();
421 std::string __repr__() const
423 std::ostringstream oss; oss << "DataArrayPartDefinition C++ instance at " << self << "." << std::endl;
424 oss << self->getRepr();
429 virtual ~DataArrayPartDefinition();
432 class SlicePartDefinition : public PartDefinition
435 static SlicePartDefinition *New(int start, int stop, int step);
436 int getEffectiveStop() const;
439 SlicePartDefinition(mcIdType start, mcIdType stop, mcIdType step)
441 return SlicePartDefinition::New(start,stop,step);
444 PyObject *getSlice() const
447 self->getSlice(a,b,c);
448 return PySlice_New(PyInt_FromLong(a),PyInt_FromLong(b),PyInt_FromLong(c));
451 std::string __str__() const
453 return self->getRepr();
456 std::string __repr__() const
458 std::ostringstream oss; oss << "SlicePartDefinition C++ instance at " << self << "." << std::endl;
459 oss << self->getRepr();
464 virtual ~SlicePartDefinition();
467 class DataArray : public RefCountObject, public TimeLabel
470 void setName(const std::string& name);
471 void copyStringInfoFrom(const DataArray& other);
472 void copyPartOfStringInfoFrom(const DataArray& other, const std::vector<std::size_t>& compoIds);
473 void copyPartOfStringInfoFrom2(const std::vector<std::size_t>& compoIds, const DataArray& other);
474 bool areInfoEqualsIfNotWhy(const DataArray& other, std::string& reason) const;
475 bool areInfoEquals(const DataArray& other) const;
476 std::string cppRepr(const std::string& varName) const;
477 std::string getName() const;
478 void setInfoOnComponents(const std::vector<std::string>& info);
479 void setInfoAndChangeNbOfCompo(const std::vector<std::string>& info);
480 std::vector<std::string> getVarsOnComponent() const;
481 std::vector<std::string> getUnitsOnComponent() const;
482 std::string getInfoOnComponent(int i) const;
483 std::string getVarOnComponent(int i) const;
484 std::string getUnitOnComponent(int i) const;
485 void setInfoOnComponent(int i, const std::string& info);
486 int getNumberOfComponents() const;
487 virtual void alloc(int nbOfTuple, int nbOfCompo=1);
488 virtual void reAlloc(int nbOfTuples);
489 virtual bool isAllocated() const;
490 virtual void checkAllocated() const;
491 virtual void desallocate();
492 virtual int getNumberOfTuples() const;
493 virtual std::size_t getNbOfElems() const;
494 virtual std::size_t getNbOfElemAllocated() const;
495 virtual DataArray *deepCopy() const;
496 virtual DataArray *buildNewEmptyInstance() const;
497 virtual DataArray *selectByTupleIdSafeSlice(int bg, int end2, int step) const;
498 virtual void rearrange(int newNbOfCompo);
499 virtual void circularPermutation(int nbOfShift=1);
500 virtual void circularPermutationPerTuple(int nbOfShift=1);
501 virtual void reversePerTuple();
502 void checkNbOfTuples(int nbOfTuples, const std::string& msg) const;
503 void checkNbOfComps(int nbOfCompo, const std::string& msg) const;
504 void checkNbOfTuplesAndComp(const DataArray& other, const std::string& msg) const;
505 void checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const std::string& msg) const;
506 void checkNbOfElems(mcIdType nbOfElems, const std::string& msg) const;
507 static int GetNumberOfItemGivenBES(int begin, int end, int step, const std::string& msg);
508 static int GetNumberOfItemGivenBESRelative(int begin, int end, int step, const std::string& msg);
509 static int GetPosOfItemGivenBESRelativeNoThrow(int value, int begin, int end, int step);
510 static std::string GetVarNameFromInfo(const std::string& info);
511 static std::string GetUnitFromInfo(const std::string& info);
512 static std::string BuildInfoFromVarAndUnit(const std::string& var, const std::string& unit);
513 static std::string GetAxisTypeRepr(MEDCouplingAxisType at);
514 void updateTime() const;
517 PyObject *getInfoOnComponents() const
519 const std::vector<std::string>& comps=self->getInfoOnComponents();
520 PyObject *ret=PyList_New((mcIdType)comps.size());
521 for(std::size_t i=0;i<comps.size();i++)
522 PyList_SetItem(ret,i,PyString_FromString(comps[i].c_str()));
526 void copyPartOfStringInfoFrom(const DataArray& other, PyObject *li)
528 std::vector<std::size_t> tmp;
529 convertPyToNewIntArr3(li,tmp);
530 self->copyPartOfStringInfoFrom(other,tmp);
533 void copyPartOfStringInfoFrom2(PyObject *li, const DataArray& other)
535 std::vector<std::size_t> tmp;
536 convertPyToNewIntArr3(li,tmp);
537 self->copyPartOfStringInfoFrom2(tmp,other);
540 virtual void renumberInPlace(PyObject *li)
543 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
544 if (!SWIG_IsOK(res1))
547 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
548 if(size!=self->getNumberOfTuples())
550 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
552 self->renumberInPlace(tmp);
556 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
558 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
559 da2->checkAllocated();
560 mcIdType size=self->getNumberOfTuples();
561 if(size!=self->getNumberOfTuples())
563 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
565 self->renumberInPlace(da2->getConstPointer());
569 virtual void renumberInPlaceR(PyObject *li)
572 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
573 if (!SWIG_IsOK(res1))
576 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
577 if(size!=self->getNumberOfTuples())
579 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
581 self->renumberInPlaceR(tmp);
585 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
587 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
588 da2->checkAllocated();
589 mcIdType size=self->getNumberOfTuples();
590 if(size!=self->getNumberOfTuples())
592 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
594 self->renumberInPlaceR(da2->getConstPointer());
598 //tuplesSelec in PyObject * because DataArrayInt is not already existing !
599 virtual void setContigPartOfSelectedValues(mcIdType tupleIdStart, PyObject *aBase, PyObject *tuplesSelec)
601 static const char msg[]="DataArray::setContigPartOfSelectedValuesSlice : 4th parameter \"tuplesSelec\" should be of type DataArrayInt";
602 DataArray *a=CheckAndRetrieveDataArrayInstance(aBase,"DataArray::setContigPartOfSelectedValuesSlice : 3rd parameter \"aBase\" should be of type DataArray");
603 DataArray *tuplesSelecPtr=CheckAndRetrieveDataArrayInstance(tuplesSelec,msg);
604 DataArrayIdType *tuplesSelecPtr2=0;
607 tuplesSelecPtr2=dynamic_cast<DataArrayIdType *>(tuplesSelecPtr);
609 throw INTERP_KERNEL::Exception(msg);
611 self->setContigPartOfSelectedValues(tupleIdStart,a,tuplesSelecPtr2);
614 virtual void setContigPartOfSelectedValuesSlice(mcIdType tupleIdStart, PyObject *aBase, mcIdType bg, mcIdType end2, mcIdType step)
616 DataArray *a=CheckAndRetrieveDataArrayInstance(aBase,"DataArray::setContigPartOfSelectedValuesSlice : 2nd parameter \"aBase\" should be of type DataArray");
617 self->setContigPartOfSelectedValuesSlice(tupleIdStart,a,bg,end2,step);
620 virtual DataArray *selectByTupleRanges(PyObject *li) const
622 std::vector<std::pair<mcIdType,mcIdType> > ranges;
623 convertPyToVectorPairInt(li,ranges);
624 return self->selectByTupleRanges(ranges);
627 virtual DataArray *selectByTupleId(PyObject *li) const
630 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
631 if (!SWIG_IsOK(res1))
634 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
635 return self->selectByTupleId(tmp,tmp+size);
639 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
641 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
642 da2->checkAllocated();
643 return self->selectByTupleId(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems());
647 virtual DataArray *selectByTupleIdSafe(PyObject *li) const
650 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
651 if (!SWIG_IsOK(res1))
654 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
655 return self->selectByTupleIdSafe(tmp,tmp+size);
659 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
661 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
662 da2->checkAllocated();
663 return self->selectByTupleIdSafe(da2->getConstPointer(),da2->getConstPointer()+da2->getNbOfElems());
667 virtual PyObject *keepSelectedComponents(PyObject *li) const
669 std::vector<std::size_t> tmp;
670 convertPyToNewIntArr3(li,tmp);
671 DataArray *ret=self->keepSelectedComponents(tmp);
672 return convertDataArray(ret,SWIG_POINTER_OWN | 0 );
675 static PyObject *GetSlice(PyObject *slic, mcIdType sliceId, mcIdType nbOfSlices)
677 if(!PySlice_Check(slic))
678 throw INTERP_KERNEL::Exception("DataArray::GetSlice (wrap) : expecting a pyslice as second (first) parameter !");
679 Py_ssize_t strt=2,stp=2,step=2;
680 GetIndicesOfSliceExplicitely(slic,&strt,&stp,&step,"DataArray::GetSlice (wrap) : the input slice is invalid !");
682 DataArray::GetSlice(ToIdType(strt),ToIdType(stp),ToIdType(step),sliceId,nbOfSlices,a,b);
683 AutoPyPtr ap(PyInt_FromLong(a)),bp(PyInt_FromLong(b)),stepp(PyInt_FromLong(step));
684 return PySlice_New(ap,bp,stepp);
687 PyObject *getSlice(PyObject *slic, mcIdType sliceId, mcIdType nbOfSlices) const
689 if(!PySlice_Check(slic))
690 throw INTERP_KERNEL::Exception("DataArray::getSlice (wrap) : expecting a pyslice as second (first) parameter !");
691 Py_ssize_t strt=2,stp=2,step=2;
692 GetIndicesOfSlice(slic,self->getNumberOfTuples(),&strt,&stp,&step,"DataArray::getSlice (wrap) : the input slice is invalid !");
694 DataArray::GetSlice(ToIdType(strt),ToIdType(stp),ToIdType(step),sliceId,nbOfSlices,a,b);
695 AutoPyPtr ap(PyInt_FromLong(a)),bp(PyInt_FromLong(b)),stepp(PyInt_FromLong(step));
696 return PySlice_New(ap,bp,stepp);
699 static mcIdType GetNumberOfItemGivenBES(PyObject *slic)
701 if(!PySlice_Check(slic))
702 throw INTERP_KERNEL::Exception("DataArray::GetNumberOfItemGivenBES (wrap) : expecting a pyslice as second (first) parameter !");
703 Py_ssize_t strt=2,stp=2,step=2;
704 GetIndicesOfSliceExplicitely(slic,&strt,&stp,&step,"DataArray::GetNumberOfItemGivenBES (wrap) : the input slice is invalid !");
705 return DataArray::GetNumberOfItemGivenBES(ToIdType(strt),ToIdType(stp),ToIdType(step),"");
708 static mcIdType GetNumberOfItemGivenBESRelative(PyObject *slic)
710 if(!PySlice_Check(slic))
711 throw INTERP_KERNEL::Exception("DataArray::GetNumberOfItemGivenBESRelative (wrap) : expecting a pyslice as second (first) parameter !");
712 Py_ssize_t strt=2,stp=2,step=2;
713 GetIndicesOfSliceExplicitely(slic,&strt,&stp,&step,"DataArray::GetNumberOfItemGivenBESRelative (wrap) : the input slice is invalid !");
714 return DataArray::GetNumberOfItemGivenBESRelative(ToIdType(strt),ToIdType(stp),ToIdType(step),"");
717 static DataArray *Aggregate(PyObject *arrs)
719 std::vector<const DataArray *> tmp;
720 convertFromPyObjVectorOfObj<const MEDCoupling::DataArray *>(arrs,SWIGTYPE_p_MEDCoupling__DataArray,"DataArray",tmp);
721 return DataArray::Aggregate(tmp);
724 mcIdType getNumberOfItemGivenBES(PyObject *slic) const
726 if(!PySlice_Check(slic))
727 throw INTERP_KERNEL::Exception("DataArray::getNumberOfItemGivenBES (wrap) : expecting a pyslice as second (first) parameter !");
728 Py_ssize_t strt=2,stp=2,step=2;
729 GetIndicesOfSlice(slic,self->getNumberOfTuples(),&strt,&stp,&step,"DataArray::getNumberOfItemGivenBES (wrap) : the input slice is invalid !");
730 return DataArray::GetNumberOfItemGivenBES(ToIdType(strt),ToIdType(stp),ToIdType(step),"");
733 mcIdType getNumberOfItemGivenBESRelative(PyObject *slic)
735 if(!PySlice_Check(slic))
736 throw INTERP_KERNEL::Exception("DataArray::getNumberOfItemGivenBESRelative (wrap) : expecting a pyslice as second (first) parameter !");
737 Py_ssize_t strt=2,stp=2,step=2;
738 GetIndicesOfSlice(slic,self->getNumberOfTuples(),&strt,&stp,&step,"DataArray::getNumberOfItemGivenBESRelative (wrap) : the input slice is invalid !");
739 return DataArray::GetNumberOfItemGivenBESRelative(ToIdType(strt),ToIdType(stp),ToIdType(step),"");
742 PyObject *__getstate__() const
744 PyObject *ret(PyTuple_New(2));
745 std::string a0(self->getName());
746 const std::vector<std::string> &a1(self->getInfoOnComponents());
747 PyTuple_SetItem(ret,0,PyString_FromString(a0.c_str()));
749 std::size_t sz(a1.size());
750 PyObject *ret1(PyList_New(sz));
751 for(std::size_t i=0;i<sz;i++)
752 PyList_SetItem(ret1,i,PyString_FromString(a1[i].c_str()));
753 PyTuple_SetItem(ret,1,ret1);
758 void __setstate__(PyObject *inp)
760 static const char MSG[]="DataArrayDouble.__setstate__ : expected input is a tuple of size 2 with string as 1st arg and list of string as 2nd arg !";
761 if(!PyTuple_Check(inp))
762 throw INTERP_KERNEL::Exception("DataArrayDouble.__setstate__ : invalid input ! Invalid overwrite of __getstate__ ?");
763 std::size_t sz(PyTuple_Size(inp));
765 throw INTERP_KERNEL::Exception("DataArrayDouble.__setstate__ : invalid tuple in input ! Should be of size 2 ! Invalid overwrite of __getstate__ ?");
766 PyObject *a0(PyTuple_GetItem(inp,0));
767 self->setName(convertPyObjectToStr(a0,MSG));
768 PyObject *a1(PyTuple_GetItem(inp,1));
769 std::vector<std::string> a1cpp;
770 if(!fillStringVector(a1,a1cpp))
771 throw INTERP_KERNEL::Exception(MSG);
772 self->setInfoOnComponents(a1cpp);
777 class DataArrayDouble;
779 class DataArrayFloat : public DataArray
782 static DataArrayFloat *New();
783 void fillWithValue(float val);
784 bool isEqual(const DataArrayFloat& other, float prec) const;
785 bool isEqualWithoutConsideringStr(const DataArrayFloat& other, float prec) const;
786 bool isUniform(float val, float eps) const;
787 void pushBackSilent(float val);
788 void iota(float init=0.);
789 DataArrayFloatIterator *iterator();
790 MCAuto<DataArrayDouble> convertToDblArr() const;
791 static DataArrayFloat *Meld(const DataArrayFloat *a1, const DataArrayFloat *a2);
796 return DataArrayFloat::New();
799 static DataArrayFloat *New(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *elt2=0)
801 return DataArrayT_New<float>(elt0,nbOfTuples,elt2);
804 DataArrayFloat(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *elt2=0)
806 return MEDCoupling_DataArrayFloat_New__SWIG_1(elt0,nbOfTuples,elt2);
809 DataArrayFloatIterator *__iter__()
811 return self->iterator();
814 std::string __repr__() const
816 std::ostringstream oss;
817 self->reprQuickOverview(oss);
821 std::string __str__() const
823 return self->reprNotTooLong();
826 mcIdType __len__() const
828 if(self->isAllocated())
830 return self->getNumberOfTuples();
834 throw INTERP_KERNEL::Exception("DataArrayFloat::__len__ : Instance is NOT allocated !");
838 PyObject *getValues() const
840 const float *vals(self->begin());
841 return convertDblArrToPyList<float>(vals,self->getNbOfElems());
844 PyObject *getValuesAsTuple() const
846 const float *vals(self->begin());
847 std::size_t nbOfComp(self->getNumberOfComponents());
848 mcIdType nbOfTuples(self->getNumberOfTuples());
849 return convertDblArrToPyListOfTuple<float>(vals,nbOfComp,nbOfTuples);
852 PyObject *isEqualIfNotWhy(const DataArrayFloat& other, float prec) const
855 bool ret0=self->isEqualIfNotWhy(other,prec,ret1);
856 PyObject *ret=PyTuple_New(2);
857 PyObject *ret0Py=ret0?Py_True:Py_False;
859 PyTuple_SetItem(ret,0,ret0Py);
860 PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
864 PyObject *__getitem__(PyObject *obj)
866 return DataArrayT__getitem<float>(self,obj);
869 DataArrayFloat *__setitem__(PyObject *obj, PyObject *value)
871 return DataArrayT__setitem__<float>(self,obj,value);
874 PyObject *___iadd___(PyObject *trueSelf, PyObject *obj)
876 return DataArrayT_iadd<float>(trueSelf,obj,self);
879 PyObject *___isub___(PyObject *trueSelf, PyObject *obj)
881 return DataArrayT_isub<float>(trueSelf,obj,self);
884 PyObject *___imul___(PyObject *trueSelf, PyObject *obj)
886 return DataArrayT_imul<float>(trueSelf,obj,self);
889 DataArrayFloat *__rmul__(PyObject *obj)
891 return DataArrayFPT_rmul<float>(self,obj);
894 PyObject *___idiv___(PyObject *trueSelf, PyObject *obj)
896 return DataArrayT_idiv<float>(trueSelf,obj,self);
900 PyObject *toNumPyArray() // not const. It is not a bug !
902 return ToNumPyArray<DataArrayFloat,float>(self,NPY_FLOAT,"DataArrayFloat");
908 class DataArrayFloatTuple;
910 class DataArrayFloatIterator
913 DataArrayFloatIterator(DataArrayFloat *da);
914 ~DataArrayFloatIterator();
919 DataArrayFloatTuple *ret=self->nextt();
921 return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayFloatTuple,SWIG_POINTER_OWN|0);
924 PyErr_SetString(PyExc_StopIteration,"No more data.");
931 class DataArrayFloatTuple
934 std::size_t getNumberOfCompo() const;
935 DataArrayFloat *buildDAFloat(mcIdType nbOfTuples, mcIdType nbOfCompo) const;
938 std::string __str__() const
943 float __float__() const
945 return self->floatValue();
948 DataArrayFloat *buildDAFloat()
950 return self->buildDAFloat(1,self->getNumberOfCompo());
953 /*PyObject *___imul___(PyObject *trueSelf, PyObject *obj)
955 MCAuto<DataArrayFloat> ret=self->buildDAFloat(1,self->getNumberOfCompo());
956 MEDCoupling_DataArrayFloat____imul___(ret,0,obj);
957 Py_XINCREF(trueSelf);
963 return PyInt_FromLong(self->getNumberOfCompo());
968 class DataArrayDoubleIterator;
970 class DataArrayDouble : public DataArray
973 static DataArrayDouble *New();
974 double doubleValue() const;
976 void aggregate(const DataArrayDouble *other);
977 DataArrayDouble *performCopyOrIncrRef(bool deepCopy) const;
978 void deepCopyFrom(const DataArrayDouble& other);
979 void reserve(std::size_t nbOfElems);
980 void pushBackSilent(double val);
981 double popBackSilent();
983 void allocIfNecessary(int nbOfTuple, int nbOfCompo);
985 void fillWithValue(double val);
986 void iota(double init=0.);
987 bool isUniform(double val, double eps) const;
988 void sort(bool asc=true);
990 void checkMonotonic(bool increasing, double eps) const;
991 bool isMonotonic(bool increasing, double eps) const;
992 std::string repr() const;
993 std::string reprZip() const;
994 std::string reprNotTooLong() const;
995 bool isEqual(const DataArrayDouble& other, double prec) const;
996 bool isEqualWithoutConsideringStr(const DataArrayDouble& other, double prec) const;
997 DataArrayDouble *fromNoInterlace() const;
998 DataArrayDouble *toNoInterlace() const;
999 DataArrayDouble *subArray(int tupleIdBg, int tupleIdEnd=-1) const;
1001 DataArrayDouble *changeNbOfComponents(std::size_t newNbOfComp, double dftValue) const;
1002 void meldWith(const DataArrayDouble *other);
1003 DataArrayDouble *duplicateEachTupleNTimes(int nbTimes) const;
1004 DataArrayDouble *getDifferentValues(double prec, int limitTupleId=-1) const;
1005 DataArrayIdType *findClosestTupleId(const DataArrayDouble *other) const;
1006 DataArrayIdType *computeNbOfInteractionsWith(const DataArrayDouble *otherBBoxFrmt, double eps) const;
1007 void setPartOfValues1(const DataArrayDouble *a, int bgTuples, int endTuples, int stepTuples, int bgComp, int endComp, int stepComp, bool strictCompoCompare=true);
1008 void setPartOfValuesSimple1(double a, mcIdType bgTuples, mcIdType endTuples, mcIdType stepTuples, mcIdType bgComp, mcIdType endComp, mcIdType stepComp);
1009 void setPartOfValuesAdv(const DataArrayDouble *a, const DataArrayIdType *tuplesSelec);
1010 double getIJ(int tupleId, int compoId) const;
1011 double front() const;
1012 double back() const;
1013 double getIJSafe(int tupleId, int compoId) const;
1014 void setIJ(int tupleId, int compoId, double newVal);
1015 void setIJSilent(int tupleId, int compoId, double newVal);
1016 double *getPointer();
1017 void checkNoNullValues() const;
1018 DataArrayDouble *computeBBoxPerTuple(double epsilon=0.0) const;
1019 void recenterForMaxPrecision(double eps);
1020 double getMaxValueInArray() const;
1021 double getMaxAbsValueInArray() const;
1022 double getMinValueInArray() const;
1023 int count(double value, double eps) const;
1024 double getAverageValue() const;
1025 double norm2() const;
1026 double normMax() const;
1027 double normMin() const;
1028 double accumulate(int compId) const;
1029 DataArrayDouble *fromPolarToCart() const;
1030 DataArrayDouble *fromCylToCart() const;
1031 DataArrayDouble *fromSpherToCart() const;
1032 DataArrayDouble *fromCartToPolar() const;
1033 DataArrayDouble *fromCartToCyl() const;
1034 DataArrayDouble *fromCartToSpher() const;
1035 DataArrayDouble *cartesianize(MEDCouplingAxisType atOfThis) const;
1036 DataArrayDouble *doublyContractedProduct() const;
1037 DataArrayDouble *determinant() const;
1038 DataArrayDouble *eigenValues() const;
1039 DataArrayDouble *eigenVectors() const;
1040 DataArrayDouble *inverse() const;
1041 DataArrayDouble *trace() const;
1042 DataArrayDouble *deviator() const;
1043 DataArrayDouble *magnitude() const;
1044 DataArrayDouble *maxPerTuple() const;
1045 DataArrayDouble *sumPerTuple() const;
1046 DataArrayDouble *buildEuclidianDistanceDenseMatrix() const;
1047 DataArrayDouble *buildEuclidianDistanceDenseMatrixWith(const DataArrayDouble *other) const;
1048 void sortPerTuple(bool asc);
1050 DataArrayDouble *computeAbs() const;
1051 void applyLin(double a, double b, int compoId);
1052 void applyLin(double a, double b);
1053 void applyInv(double numerator);
1054 void applyPow(double val);
1055 void applyRPow(double val);
1056 DataArrayDouble *negate() const;
1057 DataArrayDouble *applyFunc(int nbOfComp, FunctionToEvaluate func) const;
1058 DataArrayDouble *applyFunc(int nbOfComp, const std::string& func, bool isSafe=true) const;
1059 DataArrayDouble *applyFunc(const std::string& func, bool isSafe=true) const;
1060 void applyFuncOnThis(const std::string& func, bool isSafe=true);
1061 DataArrayDouble *applyFuncCompo(int nbOfComp, const std::string& func, bool isSafe=true) const;
1062 DataArrayDouble *applyFuncNamedCompo(int nbOfComp, const std::vector<std::string>& varsOrder, const std::string& func, bool isSafe=true) const;
1063 void applyFuncFast32(const std::string& func);
1064 void applyFuncFast64(const std::string& func);
1065 DataArrayIdType *findIdsInRange(double vmin, double vmax) const;
1066 DataArrayIdType *findIdsNotInRange(double vmin, double vmax) const;
1067 DataArrayIdType *findIdsStrictlyNegative() const;
1068 static DataArrayDouble *Aggregate(const DataArrayDouble *a1, const DataArrayDouble *a2);
1069 static DataArrayDouble *Meld(const DataArrayDouble *a1, const DataArrayDouble *a2);
1070 static DataArrayDouble *Dot(const DataArrayDouble *a1, const DataArrayDouble *a2);
1071 static DataArrayDouble *CrossProduct(const DataArrayDouble *a1, const DataArrayDouble *a2);
1072 static DataArrayDouble *Max(const DataArrayDouble *a1, const DataArrayDouble *a2);
1073 static DataArrayDouble *Min(const DataArrayDouble *a1, const DataArrayDouble *a2);
1074 static DataArrayDouble *Add(const DataArrayDouble *a1, const DataArrayDouble *a2);
1075 void addEqual(const DataArrayDouble *other);
1076 static DataArrayDouble *Substract(const DataArrayDouble *a1, const DataArrayDouble *a2);
1077 void substractEqual(const DataArrayDouble *other);
1078 static DataArrayDouble *Multiply(const DataArrayDouble *a1, const DataArrayDouble *a2);
1079 void multiplyEqual(const DataArrayDouble *other);
1080 static DataArrayDouble *Divide(const DataArrayDouble *a1, const DataArrayDouble *a2);
1081 void divideEqual(const DataArrayDouble *other);
1082 static DataArrayDouble *Pow(const DataArrayDouble *a1, const DataArrayDouble *a2);
1083 void powEqual(const DataArrayDouble *other);
1084 MCAuto<DataArrayIdType> findIdsGreaterOrEqualTo(double val) const;
1085 MCAuto<DataArrayIdType> findIdsGreaterThan(double val) const;
1086 MCAuto<DataArrayIdType> findIdsLowerOrEqualTo(double val) const;
1087 MCAuto<DataArrayIdType> findIdsLowerThan(double val) const;
1088 MCAuto<DataArrayInt32> convertToIntArr() const;
1089 MCAuto<DataArrayDouble> selectPartDef(const PartDefinition* pd) const;
1090 MCAuto<DataArrayDouble> cumSum() const;
1091 MCAuto<DataArrayFloat> convertToFloatArr() const;
1096 return DataArrayDouble::New();
1099 static DataArrayDouble *New(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *elt2=0)
1101 return DataArrayT_New<double>(elt0,nbOfTuples,elt2);
1104 DataArrayDouble(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *elt2=0)
1106 return MEDCoupling_DataArrayDouble_New__SWIG_1(elt0,nbOfTuples,elt2);
1109 void pushBackValsSilent(PyObject *li)
1112 std::vector<double> bb;
1113 mcIdType sw; mcIdType nbTuples=-1;
1114 const char msg[]="Python wrap of DataArrayDouble::pushBackValsSilent : ";
1115 const double *tmp=convertObjToPossibleCpp5_SingleCompo(li,sw,val,bb,msg,true,nbTuples);
1116 self->pushBackValsSilent(tmp,tmp+nbTuples);
1119 std::string __repr__() const
1121 std::ostringstream oss;
1122 self->reprQuickOverview(oss);
1126 std::string __str__() const
1128 return self->reprNotTooLong();
1131 double __float__() const
1133 return self->doubleValue();
1136 mcIdType __len__() const
1138 if(self->isAllocated())
1140 return self->getNumberOfTuples();
1144 throw INTERP_KERNEL::Exception("DataArrayDouble::__len__ : Instance is NOT allocated !");
1148 PyObject *asArcOfCircle() const
1150 double center[2],radius,ang;
1151 self->asArcOfCircle(center,radius,ang);
1152 PyObject *ret(PyTuple_New(3));
1154 PyObject *ret0(PyList_New(2));
1155 PyList_SetItem(ret0,0,PyFloat_FromDouble(center[0]));
1156 PyList_SetItem(ret0,1,PyFloat_FromDouble(center[1]));
1157 PyTuple_SetItem(ret,0,ret0);
1159 PyTuple_SetItem(ret,1,PyFloat_FromDouble(radius));
1160 PyTuple_SetItem(ret,2,PyFloat_FromDouble(ang));
1164 DataArrayDoubleIterator *__iter__()
1166 return self->iterator();
1169 void setValues(PyObject *li, PyObject *nbOfTuples=0, PyObject *nbOfComp=0)
1171 const char *msg="MEDCoupling::DataArrayDouble::setValues : Available API are : \n-DataArrayDouble.setValues([1.,3.,4.])\n-DataArrayDouble.setValues([1.,3.,4.],3)\n-DataArrayDouble.setValues([1.,3.,4.,5.],2,2)\n-DataArrayDouble.setValues([(1.,1.7),(3.,3.7),(4.,4.7)])\n !";
1172 if(PyList_Check(li) || PyTuple_Check(li))
1174 if(nbOfTuples && nbOfTuples != Py_None)
1176 if(PyInt_Check(nbOfTuples))
1178 mcIdType nbOfTuples1=ToIdType(PyInt_AS_LONG(nbOfTuples));
1180 throw INTERP_KERNEL::Exception("DataArrayDouble::setValues : should be a positive set of allocated memory !");
1181 if(nbOfComp && nbOfComp != Py_None)
1183 if(PyInt_Check(nbOfComp))
1184 {//DataArrayDouble.setValues([1.,3.,4.,5.],2,2)
1185 mcIdType nbOfCompo=ToIdType(PyInt_AS_LONG(nbOfComp));
1187 throw INTERP_KERNEL::Exception("DataArrayDouble::setValues : should be a positive number of components !");
1188 std::vector<double> tmp=fillArrayWithPyListDbl2(li,nbOfTuples1,nbOfCompo);
1189 self->alloc(nbOfTuples1,nbOfCompo); std::copy(tmp.begin(),tmp.end(),self->getPointer());
1192 throw INTERP_KERNEL::Exception(msg);
1195 {//DataArrayDouble.setValues([1.,3.,4.],3)
1197 std::vector<double> tmp=fillArrayWithPyListDbl2(li,nbOfTuples1,tmpp1);
1198 self->alloc(nbOfTuples1,tmpp1); std::copy(tmp.begin(),tmp.end(),self->getPointer());
1202 throw INTERP_KERNEL::Exception(msg);
1205 {// DataArrayDouble.setValues([1.,3.,4.])
1206 mcIdType tmpp1=-1,tmpp2=-1;
1207 std::vector<double> tmp=fillArrayWithPyListDbl2(li,tmpp1,tmpp2);
1208 self->alloc(tmpp1,tmpp2); std::copy(tmp.begin(),tmp.end(),self->getPointer());
1212 throw INTERP_KERNEL::Exception(msg);
1215 PyObject *getValues() const
1217 const double *vals(self->begin());
1218 return convertDblArrToPyList<double>(vals,self->getNbOfElems());
1222 PyObject *toNumPyArray() // not const. It is not a bug !
1224 return ToNumPyArray<DataArrayDouble,double>(self,NPY_DOUBLE,"DataArrayDouble");
1228 PyObject *isEqualIfNotWhy(const DataArrayDouble& other, double prec) const
1231 bool ret0=self->isEqualIfNotWhy(other,prec,ret1);
1232 PyObject *ret=PyTuple_New(2);
1233 PyObject *ret0Py=ret0?Py_True:Py_False;
1235 PyTuple_SetItem(ret,0,ret0Py);
1236 PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
1240 PyObject *getValuesAsTuple() const
1242 const double *vals(self->begin());
1243 std::size_t nbOfComp(self->getNumberOfComponents());
1244 mcIdType nbOfTuples(self->getNumberOfTuples());
1245 return convertDblArrToPyListOfTuple<double>(vals,nbOfComp,nbOfTuples);
1248 static PyObject *ComputeIntegralOfSeg2IntoTri3(PyObject *seg2, PyObject *tri3)
1250 const char msg[]="Python wrap of DataArrayDouble::ComputeIntegralOfSeg2IntoTri3 : ";
1252 DataArrayDouble *a,*a2;
1253 DataArrayDoubleTuple *aa,*aa2;
1254 std::vector<double> bb,bb2;
1256 const double *seg2Ptr(convertObjToPossibleCpp5_Safe(seg2,sw,val,a,aa,bb,msg,2,2,true));
1257 const double *tri3Ptr(convertObjToPossibleCpp5_Safe(tri3,sw,val2,a2,aa2,bb2,msg,3,2,true));
1259 double res0[3],res1;
1260 DataArrayDouble::ComputeIntegralOfSeg2IntoTri3(seg2Ptr,tri3Ptr,res0,res1);
1261 PyObject *ret(PyTuple_New(2)),*ret0(PyTuple_New(3));
1262 PyTuple_SetItem(ret0,0,PyFloat_FromDouble(res0[0]));
1263 PyTuple_SetItem(ret0,1,PyFloat_FromDouble(res0[1]));
1264 PyTuple_SetItem(ret0,2,PyFloat_FromDouble(res0[2]));
1265 PyTuple_SetItem(ret,0,ret0);
1266 PyTuple_SetItem(ret,1,PyFloat_FromDouble(res1));
1270 DataArrayDouble *symmetry3DPlane(PyObject *point, PyObject *normalVector)
1272 const char msg[]="Python wrap of DataArrayDouble::symmetry3DPlane : ";
1274 DataArrayDouble *a,*a2;
1275 DataArrayDoubleTuple *aa,*aa2;
1276 std::vector<double> bb,bb2;
1278 const double *centerPtr(convertObjToPossibleCpp5_Safe(point,sw,val,a,aa,bb,msg,1,3,true));
1279 const double *vectorPtr(convertObjToPossibleCpp5_Safe(normalVector,sw,val2,a2,aa2,bb2,msg,1,3,true));
1280 MCAuto<DataArrayDouble> ret(self->symmetry3DPlane(centerPtr,vectorPtr));
1284 static PyObject *GiveBaseForPlane(PyObject *normalVector)
1286 const char msg[]="Python wrap of DataArrayDouble::GiveBaseForPlane : ";
1289 DataArrayDoubleTuple *aa;
1290 std::vector<double> bb,bb2;
1292 const double *vectorPtr(convertObjToPossibleCpp5_Safe(normalVector,sw,val,a,aa,bb,msg,1,3,true));
1294 DataArrayDouble::GiveBaseForPlane(vectorPtr,res);
1295 return convertDblArrToPyListOfTuple<double>(res,3,3);
1298 DataArrayDouble *fromCartToCylGiven(const DataArrayDouble *coords, PyObject *center, PyObject *vector) const
1300 const char msg[]="Python wrap of DataArrayDouble::fromCartToCylGiven : ";
1302 DataArrayDouble *a,*a2;
1303 DataArrayDoubleTuple *aa,*aa2;
1304 std::vector<double> bb,bb2;
1306 const double *centerPtr=convertObjToPossibleCpp5_Safe(center,sw,val,a,aa,bb,msg,1,3,true);
1307 const double *vectorPtr=convertObjToPossibleCpp5_Safe(vector,sw,val2,a2,aa2,bb2,msg,1,3,true);
1308 return self->fromCartToCylGiven(coords,centerPtr,vectorPtr);
1311 DataArrayDouble *renumber(PyObject *li)
1314 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
1315 if (!SWIG_IsOK(res1))
1318 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
1319 if(size!=self->getNumberOfTuples())
1321 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1323 return self->renumber(tmp);
1327 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
1329 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
1330 da2->checkAllocated();
1331 mcIdType size=self->getNumberOfTuples();
1332 if(size!=self->getNumberOfTuples())
1334 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1336 return self->renumber(da2->getConstPointer());
1340 DataArrayDouble *renumberR(PyObject *li)
1343 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
1344 if (!SWIG_IsOK(res1))
1347 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
1348 if(size!=self->getNumberOfTuples())
1350 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1352 return self->renumberR(tmp);
1356 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
1358 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
1359 da2->checkAllocated();
1360 mcIdType size=self->getNumberOfTuples();
1361 if(size!=self->getNumberOfTuples())
1363 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1365 return self->renumberR(da2->getConstPointer());
1369 DataArrayDouble *renumberAndReduce(PyObject *li, mcIdType newNbOfTuple)
1372 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
1373 if (!SWIG_IsOK(res1))
1376 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
1377 if(size!=self->getNumberOfTuples())
1379 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1381 return self->renumberAndReduce(tmp,newNbOfTuple);
1385 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
1387 throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !");
1388 da2->checkAllocated();
1389 mcIdType size=self->getNumberOfTuples();
1390 if(size!=self->getNumberOfTuples())
1392 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
1394 return self->renumberAndReduce(da2->getConstPointer(),newNbOfTuple);
1398 PyObject *minimalDistanceTo(const DataArrayDouble *other) const
1400 mcIdType thisTupleId,otherTupleId;
1401 double r0=self->minimalDistanceTo(other,thisTupleId,otherTupleId);
1402 PyObject *ret=PyTuple_New(3);
1403 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r0));
1404 PyTuple_SetItem(ret,1,PyInt_FromLong(thisTupleId));
1405 PyTuple_SetItem(ret,2,PyInt_FromLong(otherTupleId));
1409 PyObject *getMaxValue() const
1412 double r1=self->getMaxValue(tmp);
1413 PyObject *ret=PyTuple_New(2);
1414 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
1415 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
1419 PyObject *getMaxAbsValue() const
1422 double r1=self->getMaxAbsValue(tmp);
1423 PyObject *ret=PyTuple_New(2);
1424 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
1425 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
1429 PyObject *getMaxValue2() const
1431 DataArrayIdType *tmp;
1432 double r1=self->getMaxValue2(tmp);
1433 PyObject *ret=PyTuple_New(2);
1434 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
1435 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1439 PyObject *getMinValue() const
1442 double r1=self->getMinValue(tmp);
1443 PyObject *ret=PyTuple_New(2);
1444 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
1445 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
1449 PyObject *getMinValue2() const
1451 DataArrayIdType *tmp;
1452 double r1=self->getMinValue2(tmp);
1453 PyObject *ret=PyTuple_New(2);
1454 PyTuple_SetItem(ret,0,PyFloat_FromDouble(r1));
1455 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(tmp),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1459 PyObject *getMinMaxPerComponent() const
1461 std::size_t nbOfCompo(self->getNumberOfComponents());
1462 INTERP_KERNEL::AutoPtr<double> tmp(new double[2*nbOfCompo]);
1463 self->getMinMaxPerComponent(tmp);
1464 PyObject *ret=convertDblArrToPyListOfTuple<double>(tmp,2,ToIdType(nbOfCompo));
1468 PyObject *normMaxPerComponent() const
1470 std::size_t nbOfCompo(self->getNumberOfComponents());
1471 INTERP_KERNEL::AutoPtr<double> tmp(new double[nbOfCompo]);
1472 self->normMaxPerComponent(tmp);
1473 return convertDblArrToPyList<double>(tmp,ToIdType(nbOfCompo));
1476 PyObject *accumulate() const
1478 std::size_t sz=self->getNumberOfComponents();
1479 INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
1480 self->accumulate(tmp);
1481 return convertDblArrToPyList<double>(tmp,ToIdType(sz));
1484 DataArrayDouble *accumulatePerChunck(PyObject *indexArr) const
1486 mcIdType sw, sz,val;
1487 std::vector<mcIdType> val2;
1488 const mcIdType *bg=convertIntStarLikePyObjToCppIntStar(indexArr,sw,sz,val,val2);
1489 return self->accumulatePerChunck(bg,bg+sz);
1492 PyObject *findCommonTuples(double prec, mcIdType limitNodeId=-1) const
1494 DataArrayIdType *comm, *commIndex;
1495 self->findCommonTuples(prec,limitNodeId,comm,commIndex);
1496 PyObject *res = PyList_New(2);
1497 PyList_SetItem(res,0,SWIG_NewPointerObj(SWIG_as_voidptr(comm),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1498 PyList_SetItem(res,1,SWIG_NewPointerObj(SWIG_as_voidptr(commIndex),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1502 PyObject *distanceToTuple(PyObject *tuple) const
1506 DataArrayDoubleTuple *aa;
1507 std::vector<double> bb;
1509 mcIdType tupleId=-1;
1510 std::size_t nbOfCompo=self->getNumberOfComponents();
1511 const double *pt=convertObjToPossibleCpp5_Safe(tuple,sw,val,a,aa,bb,"Python wrap of DataArrayDouble::distanceToTuple",1,(int)nbOfCompo,true);
1513 double ret0=self->distanceToTuple(pt,pt+nbOfCompo,tupleId);
1514 PyObject *ret=PyTuple_New(2);
1515 PyTuple_SetItem(ret,0,PyFloat_FromDouble(ret0));
1516 PyTuple_SetItem(ret,1,PyInt_FromLong(tupleId));
1520 void setSelectedComponents(const DataArrayDouble *a, PyObject *li)
1522 std::vector<std::size_t> tmp;
1523 convertPyToNewIntArr3(li,tmp);
1524 self->setSelectedComponents(a,tmp);
1527 PyObject *explodeComponents() const
1529 std::vector< MCAuto<DataArrayDouble> > retCpp(self->explodeComponents());
1530 std::size_t sz(retCpp.size());
1531 PyObject *res(PyList_New(sz));
1532 for(std::size_t i=0;i<sz;i++)
1533 PyList_SetItem(res,i,SWIG_NewPointerObj(SWIG_as_voidptr(retCpp[i].retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
1537 PyObject *getTuple(mcIdType tupleId)
1539 std::size_t sz=self->getNumberOfComponents();
1540 INTERP_KERNEL::AutoPtr<double> tmp=new double[sz];
1541 self->getTuple(tupleId,tmp);
1542 return convertDblArrToPyList<double>(tmp,ToIdType(sz));
1545 static DataArrayDouble *Aggregate(PyObject *li)
1547 std::vector<const DataArrayDouble *> tmp;
1548 convertFromPyObjVectorOfObj<const DataArrayDouble *>(li,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",tmp);
1549 return DataArrayDouble::Aggregate(tmp);
1552 static DataArrayDouble *Meld(PyObject *li)
1554 std::vector<const DataArrayDouble *> tmp;
1555 convertFromPyObjVectorOfObj<const DataArrayDouble *>(li,SWIGTYPE_p_MEDCoupling__DataArrayDouble,"DataArrayDouble",tmp);
1556 return DataArrayDouble::Meld(tmp);
1559 PyObject *computeTupleIdsNearTuples(PyObject *pt, double eps) const
1563 DataArrayDoubleTuple *aa;
1564 std::vector<double> bb;
1566 std::size_t nbComp=self->getNumberOfComponents();
1567 mcIdType nbTuples=-1;
1568 const char msg[]="Python wrap of DataArrayDouble::computeTupleIdsNearTuples : ";
1569 const double *pos=convertObjToPossibleCpp5_Safe2(pt,sw,val,a,aa,bb,msg,(int)nbComp,true,nbTuples);
1570 MCAuto<DataArrayDouble> inpu=DataArrayDouble::New(); inpu->useArray(pos,false,DeallocType::CPP_DEALLOC,nbTuples,nbComp);
1571 DataArrayIdType *c=0,*cI=0;
1572 self->computeTupleIdsNearTuples(inpu,eps,c,cI);
1573 PyObject *ret=PyTuple_New(2);
1574 PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1575 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1579 PyObject *areIncludedInMe(const DataArrayDouble *other, double prec) const
1581 DataArrayIdType *ret1=0;
1582 bool ret0=self->areIncludedInMe(other,prec,ret1);
1583 PyObject *ret=PyTuple_New(2);
1584 PyObject *ret0Py=ret0?Py_True:Py_False;
1586 PyTuple_SetItem(ret,0,ret0Py);
1587 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
1591 PyObject *__getitem__(PyObject *obj)
1593 return DataArrayT__getitem<double>(self,obj);
1596 DataArrayDouble *__setitem__(PyObject *obj, PyObject *value)
1598 return DataArrayT__setitem__<double>(self,obj,value);
1601 DataArrayDouble *__neg__() const
1603 return self->negate();
1606 PyObject *__add__(PyObject *obj)
1608 const char msg[]="Unexpected situation in DataArrayDouble.__add__ !";
1611 DataArrayDoubleTuple *aa;
1612 std::vector<double> bb;
1615 #ifndef WITHOUT_AUTOFIELD
1617 if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0)))
1619 MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
1622 PyObject *tmp=SWIG_NewPointerObj(SWIG_as_voidptr(self),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
1623 MCAuto<MEDCouplingFieldDouble> ret=MEDCoupling_MEDCouplingFieldDouble___radd__Impl(other,tmp);
1625 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 );
1628 throw INTERP_KERNEL::Exception(msg);
1632 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1637 MCAuto<DataArrayDouble> ret=self->deepCopy();
1638 ret->applyLin(1.,val);
1639 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1643 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Add(self,a)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1647 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1648 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Add(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1652 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1653 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Add(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1656 throw INTERP_KERNEL::Exception(msg);
1660 DataArrayDouble *__radd__(PyObject *obj)
1662 const char msg[]="Unexpected situation in __radd__ !";
1665 DataArrayDoubleTuple *aa;
1666 std::vector<double> bb;
1668 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1673 MCAuto<DataArrayDouble> ret=self->deepCopy();
1674 ret->applyLin(1.,val);
1679 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1680 return DataArrayDouble::Add(self,aaa);
1684 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1685 return DataArrayDouble::Add(self,aaa);
1688 throw INTERP_KERNEL::Exception(msg);
1692 PyObject *___iadd___(PyObject *trueSelf, PyObject *obj)
1694 return DataArrayT_iadd<double>(trueSelf,obj,self);
1697 PyObject *__sub__(PyObject *obj)
1699 const char msg[]="Unexpected situation in __sub__ !";
1702 DataArrayDoubleTuple *aa;
1703 std::vector<double> bb;
1706 #ifndef WITHOUT_AUTOFIELD
1708 if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0)))
1710 MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
1713 PyObject *tmp=SWIG_NewPointerObj(SWIG_as_voidptr(self),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
1714 MCAuto<MEDCouplingFieldDouble> ret=MEDCoupling_MEDCouplingFieldDouble___rsub__Impl(other,tmp);
1716 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 );
1719 throw INTERP_KERNEL::Exception(msg);
1723 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1728 MCAuto<DataArrayDouble> ret=self->deepCopy();
1729 ret->applyLin(1.,-val);
1730 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1734 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Substract(self,a)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1738 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1739 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Substract(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1743 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1744 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Substract(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1747 throw INTERP_KERNEL::Exception(msg);
1751 DataArrayDouble *__rsub__(PyObject *obj)
1753 const char msg[]="Unexpected situation in __rsub__ !";
1756 DataArrayDoubleTuple *aa;
1757 std::vector<double> bb;
1759 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1764 MCAuto<DataArrayDouble> ret=self->deepCopy();
1765 ret->applyLin(-1.,val);
1770 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1771 return DataArrayDouble::Substract(aaa,self);
1775 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1776 return DataArrayDouble::Substract(aaa,self);
1779 throw INTERP_KERNEL::Exception(msg);
1783 PyObject *___isub___(PyObject *trueSelf, PyObject *obj)
1785 return DataArrayT_isub<double>(trueSelf,obj,self);
1788 PyObject *__mul__(PyObject *obj)
1790 const char msg[]="Unexpected situation in __mul__ !";
1793 DataArrayDoubleTuple *aa;
1794 std::vector<double> bb;
1797 #ifndef WITHOUT_AUTOFIELD
1799 if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0)))
1801 MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
1804 PyObject *tmp=SWIG_NewPointerObj(SWIG_as_voidptr(self),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
1805 MCAuto<MEDCouplingFieldDouble> ret=MEDCoupling_MEDCouplingFieldDouble___rmul__Impl(other,tmp);
1807 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 );
1810 throw INTERP_KERNEL::Exception(msg);
1814 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1819 MCAuto<DataArrayDouble> ret=self->deepCopy();
1820 ret->applyLin(val,0.);
1821 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1825 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Multiply(self,a)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1829 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1830 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Multiply(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1834 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1835 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Multiply(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1838 throw INTERP_KERNEL::Exception(msg);
1842 DataArrayDouble *__rmul__(PyObject *obj)
1844 return DataArrayFPT_rmul<double>(self,obj);
1847 PyObject *___imul___(PyObject *trueSelf, PyObject *obj)
1849 return DataArrayT_imul<double>(trueSelf,obj,self);
1852 PyObject *__div__(PyObject *obj)
1854 const char msg[]="Unexpected situation in __div__ !";
1857 DataArrayDoubleTuple *aa;
1858 std::vector<double> bb;
1861 #ifndef WITHOUT_AUTOFIELD
1863 if(SWIG_IsOK(SWIG_ConvertPtr(obj,&argp,SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble,0|0)))
1865 MEDCouplingFieldDouble *other=reinterpret_cast< MEDCoupling::MEDCouplingFieldDouble * >(argp);
1868 PyObject *tmp=SWIG_NewPointerObj(SWIG_as_voidptr(self),SWIGTYPE_p_MEDCoupling__DataArrayDouble, 0 | 0 );
1869 MCAuto<MEDCouplingFieldDouble> ret=MEDCoupling_MEDCouplingFieldDouble___rdiv__Impl(other,tmp);
1871 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__MEDCouplingFieldDouble, SWIG_POINTER_OWN | 0 );
1874 throw INTERP_KERNEL::Exception(msg);
1878 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1884 throw INTERP_KERNEL::Exception("DataArrayDouble::__div__ : trying to divide by zero !");
1885 MCAuto<DataArrayDouble> ret=self->deepCopy();
1886 ret->applyLin(1/val,0.);
1887 return SWIG_NewPointerObj(SWIG_as_voidptr(ret.retn()),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1891 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Divide(self,a)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1895 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1896 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Divide(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1900 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1901 return SWIG_NewPointerObj(SWIG_as_voidptr(DataArrayDouble::Divide(self,aaa)),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 );
1904 throw INTERP_KERNEL::Exception(msg);
1908 DataArrayDouble *__rdiv__(PyObject *obj)
1910 const char msg[]="Unexpected situation in __rdiv__ !";
1913 DataArrayDoubleTuple *aa;
1914 std::vector<double> bb;
1916 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1921 MCAuto<DataArrayDouble> ret=self->deepCopy();
1927 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1928 return DataArrayDouble::Divide(aaa,self);
1932 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1933 return DataArrayDouble::Divide(aaa,self);
1936 throw INTERP_KERNEL::Exception(msg);
1940 PyObject *___idiv___(PyObject *trueSelf, PyObject *obj)
1942 return DataArrayT_idiv<double>(trueSelf,obj,self);
1945 DataArrayDouble *__pow__(PyObject *obj)
1947 const char msg[]="Unexpected situation in __pow__ !";
1950 DataArrayDoubleTuple *aa;
1951 std::vector<double> bb;
1953 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1958 MCAuto<DataArrayDouble> ret=self->deepCopy();
1964 return DataArrayDouble::Pow(self,a);
1968 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
1969 return DataArrayDouble::Pow(self,aaa);
1973 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
1974 return DataArrayDouble::Pow(self,aaa);
1977 throw INTERP_KERNEL::Exception(msg);
1981 DataArrayDouble *__rpow__(PyObject *obj)
1983 const char msg[]="Unexpected situation in __rpow__ !";
1986 DataArrayDoubleTuple *aa;
1987 std::vector<double> bb;
1989 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
1994 MCAuto<DataArrayDouble> ret=self->deepCopy();
1995 ret->applyRPow(val);
2000 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
2001 return DataArrayDouble::Pow(aaa,self);
2005 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
2006 return DataArrayDouble::Pow(aaa,self);
2009 throw INTERP_KERNEL::Exception(msg);
2013 PyObject *___ipow___(PyObject *trueSelf, PyObject *obj)
2015 const char msg[]="Unexpected situation in __ipow__ !";
2018 DataArrayDoubleTuple *aa;
2019 std::vector<double> bb;
2021 convertDoubleStarLikePyObjToCpp_2(obj,sw,val,a,aa,bb);
2026 self->applyPow(val);
2027 Py_XINCREF(trueSelf);
2033 Py_XINCREF(trueSelf);
2038 MCAuto<DataArrayDouble> aaa=aa->buildDADouble(1,self->getNumberOfComponents());
2039 self->powEqual(aaa);
2040 Py_XINCREF(trueSelf);
2045 MCAuto<DataArrayDouble> aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,DeallocType::CPP_DEALLOC,1,bb.size());
2046 self->powEqual(aaa);
2047 Py_XINCREF(trueSelf);
2051 throw INTERP_KERNEL::Exception(msg);
2055 PyObject *computeTupleIdsNearTuples(const DataArrayDouble *other, double eps)
2057 DataArrayIdType *c=0,*cI=0;
2059 self->computeTupleIdsNearTuples(other,eps,c,cI);
2060 PyObject *ret=PyTuple_New(2);
2061 PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(c),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
2062 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(cI),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
2066 PyObject *maxPerTupleWithCompoId() const
2068 DataArrayIdType *ret1=0;
2069 DataArrayDouble *ret0=self->maxPerTupleWithCompoId(ret1);
2070 PyObject *ret=PyTuple_New(2);
2071 PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(ret0),SWIGTYPE_p_MEDCoupling__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
2072 PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTITraits<mcIdType>::TI, SWIG_POINTER_OWN | 0 ));
2078 class DataArrayDoubleTuple;
2080 class DataArrayDoubleIterator
2083 DataArrayDoubleIterator(DataArrayDouble *da);
2084 ~DataArrayDoubleIterator();
2089 DataArrayDoubleTuple *ret=self->nextt();
2091 return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayDoubleTuple,SWIG_POINTER_OWN|0);
2094 PyErr_SetString(PyExc_StopIteration,"No more data.");
2101 class DataArrayDoubleTuple
2104 std::size_t getNumberOfCompo() const;
2105 DataArrayDouble *buildDADouble(int nbOfTuples, int nbOfCompo) const;
2108 std::string __str__() const
2110 return self->repr();
2113 double __float__() const
2115 return self->doubleValue();
2118 DataArrayDouble *buildDADouble()
2120 return self->buildDADouble(1,self->getNumberOfCompo());
2123 PyObject *___iadd___(PyObject *trueSelf, PyObject *obj)
2125 MCAuto<DataArrayDouble> ret=self->buildDADouble(1,self->getNumberOfCompo());
2126 MEDCoupling_DataArrayDouble____iadd___(ret,0,obj);
2127 Py_XINCREF(trueSelf);
2131 PyObject *___isub___(PyObject *trueSelf, PyObject *obj)
2133 MCAuto<DataArrayDouble> ret=self->buildDADouble(1,self->getNumberOfCompo());
2134 MEDCoupling_DataArrayDouble____isub___(ret,0,obj);
2135 Py_XINCREF(trueSelf);
2139 PyObject *___imul___(PyObject *trueSelf, PyObject *obj)
2141 MCAuto<DataArrayDouble> ret=self->buildDADouble(1,self->getNumberOfCompo());
2142 MEDCoupling_DataArrayDouble____imul___(ret,0,obj);
2143 Py_XINCREF(trueSelf);
2147 PyObject *___idiv___(PyObject *trueSelf, PyObject *obj)
2149 MCAuto<DataArrayDouble> ret=self->buildDADouble(1,self->getNumberOfCompo());
2150 MEDCoupling_DataArrayDouble____idiv___(ret,0,obj);
2151 Py_XINCREF(trueSelf);
2157 return PyInt_FromLong(self->getNumberOfCompo());
2160 PyObject *__getitem__(PyObject *obj)
2162 const char msg2[]="DataArrayDoubleTuple::__getitem__ : Mismatch of slice values in 2nd parameter (components) !";
2165 std::vector<mcIdType> multiVal;
2166 std::pair<mcIdType, std::pair<mcIdType,mcIdType> > slic;
2167 MEDCoupling::DataArrayIdType *daIntTyypp=0;
2168 const double *pt=self->getConstPointer();
2169 mcIdType nbc=ToIdType(self->getNumberOfCompo());
2170 convertIntStarOrSliceLikePyObjToCppWithNegIntInterp(obj,nbc,sw,singleVal,multiVal,slic,daIntTyypp);
2177 std::ostringstream oss;
2178 oss << "Requesting for id " << singleVal << " having only " << nbc << " components !";
2179 PyErr_SetString(PyExc_StopIteration,oss.str().c_str());
2183 return PyFloat_FromDouble(pt[singleVal]);
2187 return PyFloat_FromDouble(pt[nbc+singleVal]);
2190 std::ostringstream oss;
2191 oss << "Requesting for id " << singleVal << " having only " << nbc << " components !";
2192 throw INTERP_KERNEL::Exception(oss.str().c_str());
2198 PyObject *t=PyTuple_New(multiVal.size());
2199 for(std::size_t j=0;j<multiVal.size();j++)
2201 mcIdType cid=multiVal[j];
2204 std::ostringstream oss;
2205 oss << "Requesting for id #" << cid << " having only " << nbc << " components !";
2206 throw INTERP_KERNEL::Exception(oss.str().c_str());
2208 PyTuple_SetItem(t,j,PyFloat_FromDouble(pt[cid]));
2214 mcIdType sz=DataArray::GetNumberOfItemGivenBES(slic.first,slic.second.first,slic.second.second,msg2);
2215 PyObject *t=PyTuple_New(sz);
2216 for(mcIdType j=0;j<sz;j++)
2217 PyTuple_SetItem(t,j,PyFloat_FromDouble(pt[slic.first+j*slic.second.second]));
2221 throw INTERP_KERNEL::Exception("DataArrayDoubleTuple::__getitem__ : unrecognized type entered !");
2225 DataArrayDoubleTuple *__setitem__(PyObject *obj, PyObject *value)
2227 const char msg[]="DataArrayDoubleTuple::__setitem__ : unrecognized type entered, int, slice, list<int>, tuple<int> !";
2228 const char msg2[]="DataArrayDoubleTuple::__setitem__ : Mismatch of slice values in 2nd parameter (components) !";
2231 std::vector<double> multiValV;
2232 MEDCoupling::DataArrayDoubleTuple *daIntTyyppV=0;
2233 mcIdType nbc=ToIdType(self->getNumberOfCompo());
2234 convertDoubleStarLikePyObjToCpp(value,sw1,singleValV,multiValV,daIntTyyppV);
2236 std::vector<mcIdType> multiVal;
2237 std::pair<mcIdType, std::pair<mcIdType,mcIdType> > slic;
2238 MEDCoupling::DataArrayIdType *daIntTyypp=0;
2239 double *pt=self->getPointer();
2240 convertIntStarOrSliceLikePyObjToCppWithNegIntInterp(obj,nbc,sw2,singleVal,multiVal,slic,daIntTyypp);
2247 std::ostringstream oss;
2248 oss << "Requesting for setting id # " << singleVal << " having only " << nbc << " components !";
2249 throw INTERP_KERNEL::Exception(oss.str().c_str());
2255 pt[singleVal]=singleValV;
2260 if(multiValV.size()!=1)
2262 std::ostringstream oss;
2263 oss << "Requesting for setting id # " << singleVal << " with a list or tuple with size != 1 ! ";
2264 throw INTERP_KERNEL::Exception(oss.str().c_str());
2266 pt[singleVal]=multiValV[0];
2271 pt[singleVal]=daIntTyyppV->getConstPointer()[0];
2275 throw INTERP_KERNEL::Exception(msg);
2284 for(std::vector<mcIdType>::const_iterator it=multiVal.begin();it!=multiVal.end();it++)
2288 std::ostringstream oss;
2289 oss << "Requesting for setting id # " << *it << " having only " << nbc << " components !";
2290 throw INTERP_KERNEL::Exception(oss.str().c_str());
2298 if(multiVal.size()!=multiValV.size())
2300 std::ostringstream oss;
2301 oss << "Mismatch length of during assignment : " << multiValV.size() << " != " << multiVal.size() << " !";
2302 throw INTERP_KERNEL::Exception(oss.str().c_str());
2304 for(std::size_t i=0;i<multiVal.size();i++)
2306 mcIdType pos=multiVal[i];
2309 std::ostringstream oss;
2310 oss << "Requesting for setting id # " << pos << " having only " << nbc << " components !";
2311 throw INTERP_KERNEL::Exception(oss.str().c_str());
2313 pt[multiVal[i]]=multiValV[i];
2319 const double *ptV=daIntTyyppV->getConstPointer();
2320 if(nbc>(mcIdType)daIntTyyppV->getNumberOfCompo())
2322 std::ostringstream oss;
2323 oss << "Mismatch length of during assignment : " << nbc << " != " << daIntTyyppV->getNumberOfCompo() << " !";
2324 throw INTERP_KERNEL::Exception(oss.str().c_str());
2326 std::copy(ptV,ptV+nbc,pt);
2330 throw INTERP_KERNEL::Exception(msg);
2335 mcIdType sz=DataArray::GetNumberOfItemGivenBES(slic.first,slic.second.first,slic.second.second,msg2);
2340 for(mcIdType j=0;j<sz;j++)
2341 pt[slic.first+j*slic.second.second]=singleValV;
2346 if(sz!=(mcIdType)multiValV.size())
2348 std::ostringstream oss;
2349 oss << "Mismatch length of during assignment : " << multiValV.size() << " != " << sz << " !";
2350 throw INTERP_KERNEL::Exception(oss.str().c_str());
2352 for(mcIdType j=0;j<sz;j++)
2353 pt[slic.first+j*slic.second.second]=multiValV[j];
2358 const double *ptV=daIntTyyppV->getConstPointer();
2359 if(sz>(mcIdType)daIntTyyppV->getNumberOfCompo())
2361 std::ostringstream oss;
2362 oss << "Mismatch length of during assignment : " << nbc << " != " << daIntTyyppV->getNumberOfCompo() << " !";
2363 throw INTERP_KERNEL::Exception(oss.str().c_str());
2365 for(mcIdType j=0;j<sz;j++)
2366 pt[slic.first+j*slic.second.second]=ptV[j];
2370 throw INTERP_KERNEL::Exception(msg);
2374 throw INTERP_KERNEL::Exception(msg);
2380 class DataArrayChar : public DataArray
2383 virtual DataArrayChar *buildEmptySpecializedDAChar() const;
2384 int getHashCode() const;
2386 void deepCopyFrom(const DataArrayChar& other);
2387 void reserve(std::size_t nbOfElems);
2388 void pushBackSilent(char val);
2389 char popBackSilent();
2391 void allocIfNecessary(int nbOfTuple, int nbOfCompo);
2392 bool isEqual(const DataArrayChar& other) const;
2393 bool isEqualWithoutConsideringStr(const DataArrayChar& other) const;
2395 void fillWithZero();
2396 void fillWithValue(char val);
2397 std::string repr() const;
2398 std::string reprZip() const;
2399 DataArrayInt *convertToIntArr() const;
2400 DataArrayChar *renumber(const mcIdType *old2New) const;
2401 DataArrayChar *renumberR(const mcIdType *new2Old) const;
2402 DataArrayChar *renumberAndReduce(const mcIdType *old2NewBg, mcIdType newNbOfTuple) const;
2403 bool isUniform(char val) const;
2404 void sort(bool asc=true);
2405 DataArrayChar *subArray(mcIdType tupleIdBg, mcIdType tupleIdEnd=-1) const;
2406 DataArrayChar *changeNbOfComponents(std::size_t newNbOfComp, char dftValue) const;
2407 void meldWith(const DataArrayChar *other);
2408 void setPartOfValuesAdv(const DataArrayChar *a, const DataArrayIdType *tuplesSelec);
2411 void setIJ(mcIdType tupleId, int compoId, char newVal);
2412 void setIJSilent(mcIdType tupleId, int compoId, char newVal);
2414 DataArrayIdType *findIdsEqual(char val) const;
2415 DataArrayIdType *findIdsNotEqual(char val) const;
2416 int findIdFirstEqualTuple(const std::vector<char>& tupl) const;
2417 bool presenceOfTuple(const std::vector<char>& tupl) const;
2418 char getMaxValue(mcIdType& tupleId) const;
2419 char getMaxValueInArray() const;
2420 char getMinValue(mcIdType& tupleId) const;
2421 char getMinValueInArray() const;
2422 DataArrayIdType *findIdsInRange(char vmin, char vmax) const;
2423 static DataArrayChar *Aggregate(const DataArrayChar *a1, const DataArrayChar *a2);
2424 static DataArrayChar *Meld(const DataArrayChar *a1, const DataArrayChar *a2);
2427 mcIdType __len__() const
2429 if(self->isAllocated())
2431 return self->getNumberOfTuples();
2435 throw INTERP_KERNEL::Exception("DataArrayChar::__len__ : Instance is NOT allocated !");
2439 PyObject *isEqualIfNotWhy(const DataArrayChar& other) const
2442 bool ret0=self->isEqualIfNotWhy(other,ret1);
2443 PyObject *ret=PyTuple_New(2);
2444 PyObject *ret0Py=ret0?Py_True:Py_False;
2446 PyTuple_SetItem(ret,0,ret0Py);
2447 PyTuple_SetItem(ret,1,PyString_FromString(ret1.c_str()));
2451 DataArrayChar *renumber(PyObject *li)
2454 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
2455 if (!SWIG_IsOK(res1))
2458 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
2459 if(size!=self->getNumberOfTuples())
2461 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2463 return self->renumber(tmp);
2467 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
2469 throw INTERP_KERNEL::Exception("Not null DataArrayIdType instance expected !");
2470 da2->checkAllocated();
2471 mcIdType size=self->getNumberOfTuples();
2472 if(size!=self->getNumberOfTuples())
2474 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2476 return self->renumber(da2->getConstPointer());
2480 DataArrayChar *renumberR(PyObject *li)
2483 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
2484 if (!SWIG_IsOK(res1))
2487 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
2488 if(size!=self->getNumberOfTuples())
2490 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2492 return self->renumberR(tmp);
2496 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
2498 throw INTERP_KERNEL::Exception("Not null DataArrayIdType instance expected !");
2499 da2->checkAllocated();
2500 mcIdType size=self->getNumberOfTuples();
2501 if(size!=self->getNumberOfTuples())
2503 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2505 return self->renumberR(da2->getConstPointer());
2509 DataArrayChar *renumberAndReduce(PyObject *li, mcIdType newNbOfTuple)
2512 int res1=SWIG_ConvertPtr(li,&da,SWIGTITraits<mcIdType>::TI, 0 | 0 );
2513 if (!SWIG_IsOK(res1))
2516 INTERP_KERNEL::AutoPtr<mcIdType> tmp=convertPyToNewIntArr2(li,&size);
2517 if(size!=self->getNumberOfTuples())
2519 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2521 return self->renumberAndReduce(tmp,newNbOfTuple);
2525 DataArrayIdType *da2=reinterpret_cast< DataArrayIdType * >(da);
2527 throw INTERP_KERNEL::Exception("Not null DataArrayIdType instance expected !");
2528 da2->checkAllocated();
2529 mcIdType size=self->getNumberOfTuples();
2530 if(size!=self->getNumberOfTuples())
2532 throw INTERP_KERNEL::Exception("Invalid list length ! Must be equal to number of tuples !");
2534 return self->renumberAndReduce(da2->getConstPointer(),newNbOfTuple);
2538 static DataArrayChar *Aggregate(PyObject *dachs)
2540 std::vector<const MEDCoupling::DataArrayChar *> tmp;
2541 convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayChar *>(dachs,SWIGTYPE_p_MEDCoupling__DataArrayChar,"DataArrayChar",tmp);
2542 return DataArrayChar::Aggregate(tmp);
2545 static DataArrayChar *Meld(PyObject *dachs)
2547 std::vector<const MEDCoupling::DataArrayChar *> tmp;
2548 convertFromPyObjVectorOfObj<const MEDCoupling::DataArrayChar *>(dachs,SWIGTYPE_p_MEDCoupling__DataArrayChar,"DataArrayChar",tmp);
2549 return DataArrayChar::Meld(tmp);
2554 class DataArrayByteIterator;
2556 class DataArrayByte : public DataArrayChar
2559 static DataArrayByte *New();
2560 DataArrayByteIterator *iterator();
2561 DataArrayByte *performCopyOrIncrRef(bool deepCopy) const;
2562 char byteValue() const;
2567 return DataArrayByte::New();
2570 static DataArrayByte *New(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *nbOfComp=0)
2572 const char *msg="MEDCoupling::DataArrayByte::New : Available API are : \n-DataArrayByte.New()\n--DataArrayByte.New([1,3,4])\n-DataArrayByte.New([1,3,4],3)\n-DataArrayByte.New([1,3,4,5],2,2)\n-DataArrayByte.New(5)\n-DataArrayByte.New(5,2) !";
2573 if(PyList_Check(elt0) || PyTuple_Check(elt0))
2577 if(PyInt_Check(nbOfTuples))
2579 mcIdType nbOfTuples1=ToIdType(PyInt_AS_LONG(nbOfTuples));
2581 throw INTERP_KERNEL::Exception("DataArrayByte::New : should be a positive set of allocated memory !");
2584 if(PyInt_Check(nbOfComp))
2585 {//DataArrayByte.New([1,3,4,5],2,2)
2586 mcIdType nbOfCompo=ToIdType(PyInt_AS_LONG(nbOfComp));
2588 throw INTERP_KERNEL::Exception("DataArrayByte::New : should be a positive number of components !");
2589 MCAuto<DataArrayByte> ret=DataArrayByte::New();
2590 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,nbOfTuples1,nbOfCompo);
2591 ret->alloc(nbOfTuples1,nbOfCompo); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
2595 throw INTERP_KERNEL::Exception(msg);
2598 {//DataArrayByte.New([1,3,4],3)
2599 MCAuto<DataArrayByte> ret=DataArrayByte::New();
2601 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,nbOfTuples1,tmpp1);
2602 ret->alloc(nbOfTuples1,tmpp1); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
2607 throw INTERP_KERNEL::Exception(msg);
2610 {// DataArrayByte.New([1,3,4])
2611 MCAuto<DataArrayByte> ret=DataArrayByte::New();
2612 mcIdType tmpp1=-1,tmpp2=-1;
2613 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,tmpp1,tmpp2);
2614 ret->alloc(tmpp1,tmpp2); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
2618 else if(PyInt_Check(elt0))
2620 mcIdType nbOfTuples1=ToIdType(PyInt_AS_LONG(elt0));
2622 throw INTERP_KERNEL::Exception("DataArrayByte::New : should be a positive set of allocated memory !");
2627 if(PyInt_Check(nbOfTuples))
2628 {//DataArrayByte.New(5,2)
2629 mcIdType nbOfCompo=ToIdType(PyInt_AS_LONG(nbOfTuples));
2631 throw INTERP_KERNEL::Exception("DataArrayByte::New : should be a positive number of components !");
2632 MCAuto<DataArrayByte> ret=DataArrayByte::New();
2633 ret->alloc(nbOfTuples1,nbOfCompo);
2637 throw INTERP_KERNEL::Exception(msg);
2640 throw INTERP_KERNEL::Exception(msg);
2643 {//DataArrayByte.New(5)
2644 MCAuto<DataArrayByte> ret=DataArrayByte::New();
2645 ret->alloc(nbOfTuples1,1);
2650 else if(PyArray_Check(elt0) && nbOfTuples==NULL && nbOfComp==NULL)
2651 {//DataArrayDouble.New(numpyArray)
2652 return BuildNewInstance<DataArrayByte,char>(elt0,NPY_INT8,&PyCallBackDataArrayChar_RefType,"INT8");
2656 throw INTERP_KERNEL::Exception(msg);
2659 DataArrayByte(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *nbOfComp=0)
2661 return MEDCoupling_DataArrayByte_New__SWIG_1(elt0,nbOfTuples,nbOfComp);
2664 std::string __repr__() const
2666 std::ostringstream oss;
2667 self->reprQuickOverview(oss);
2673 return (int) self->byteValue();
2676 DataArrayByteIterator *__iter__()
2678 return self->iterator();
2681 mcIdType getIJ(mcIdType tupleId, mcIdType compoId) const
2683 return (mcIdType)self->getIJ(tupleId,compoId);
2686 mcIdType getIJSafe(mcIdType tupleId, mcIdType compoId) const
2688 return (mcIdType)self->getIJSafe(tupleId,compoId);
2691 std::string __str__() const
2693 return self->repr();
2696 PyObject *toStrList() const
2698 const char *vals=self->getConstPointer();
2699 std::size_t nbOfComp=self->getNumberOfComponents();
2700 mcIdType nbOfTuples=self->getNumberOfTuples();
2701 return convertCharArrToPyListOfTuple(vals,(int)nbOfComp,nbOfTuples);
2704 bool presenceOfTuple(PyObject *tupl) const
2706 mcIdType sz=-1,sw=-1;
2707 mcIdType ival=-1; std::vector<mcIdType> ivval;
2708 const mcIdType *pt=convertIntStarLikePyObjToCppIntStar(tupl,sw,sz,ival,ivval);
2709 std::vector<char> vals(sz);
2710 std::copy(pt,pt+sz,vals.begin());
2711 return self->presenceOfTuple(vals);
2714 bool presenceOfValue(PyObject *vals) const
2716 mcIdType sz=-1,sw=-1;
2717 mcIdType ival=-1; std::vector<mcIdType> ivval;
2718 const mcIdType *pt=convertIntStarLikePyObjToCppIntStar(vals,sw,sz,ival,ivval);
2719 std::vector<char> vals2(sz);
2720 std::copy(pt,pt+sz,vals2.begin());
2721 return self->presenceOfValue(vals2);
2724 mcIdType findIdFirstEqual(PyObject *vals) const
2726 mcIdType sz=-1,sw=-1;
2727 mcIdType ival=-1; std::vector<mcIdType> ivval;
2728 const mcIdType *pt=convertIntStarLikePyObjToCppIntStar(vals,sw,sz,ival,ivval);
2729 std::vector<char> vals2(sz);
2730 std::copy(pt,pt+sz,vals2.begin());
2731 return self->findIdFirstEqual(vals2);
2734 mcIdType findIdFirstEqualTuple(PyObject *tupl) const
2736 mcIdType sz=-1,sw=-1;
2737 mcIdType ival=-1; std::vector<mcIdType> ivval;
2738 const mcIdType *pt=convertIntStarLikePyObjToCppIntStar(tupl,sw,sz,ival,ivval);
2739 std::vector<char> vals(sz);
2740 std::copy(pt,pt+sz,vals.begin());
2741 return self->findIdFirstEqualTuple(vals);
2744 mcIdType findIdSequence(PyObject *strOrListOfInt) const
2746 mcIdType sz=-1,sw=-1;
2747 mcIdType ival=-1; std::vector<mcIdType> ivval;
2748 const mcIdType *pt=convertIntStarLikePyObjToCppIntStar(strOrListOfInt,sw,sz,ival,ivval);
2749 std::vector<char> vals(sz);
2750 std::copy(pt,pt+sz,vals.begin());
2751 return self->findIdSequence(vals);
2754 PyObject *getTuple(mcIdType tupleId)
2756 std::size_t sz=self->getNumberOfComponents();
2757 INTERP_KERNEL::AutoPtr<char> tmp=new char[sz];
2758 self->getTuple(tupleId,tmp);
2759 PyObject *ret=PyTuple_New(sz);
2760 for(std::size_t i=0;i<sz;i++) PyTuple_SetItem(ret,i,PyInt_FromLong((mcIdType)tmp[i]));
2764 PyObject *getMaxValue() const
2767 mcIdType r1=(mcIdType)self->getMaxValue(tmp);
2768 PyObject *ret=PyTuple_New(2);
2769 PyTuple_SetItem(ret,0,PyInt_FromLong(r1));
2770 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
2774 PyObject *getMinValue() const
2777 mcIdType r1=(mcIdType)self->getMinValue(tmp);
2778 PyObject *ret=PyTuple_New(2);
2779 PyTuple_SetItem(ret,0,PyInt_FromLong(r1));
2780 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
2784 mcIdType index(PyObject *obj) const
2786 std::size_t nbOfCompo=self->getNumberOfComponents();
2791 if(PyInt_Check(obj))
2793 char val=(char)PyInt_AS_LONG(obj);
2794 return self->findIdFirstEqual(val);
2797 throw INTERP_KERNEL::Exception("DataArrayByte::index : 'this' contains one component and trying to find an element which is not an integer !");
2800 return MEDCoupling_DataArrayByte_findIdFirstEqualTuple(self,obj);
2804 bool __contains__(PyObject *obj) const
2806 std::size_t nbOfCompo=self->getNumberOfComponents();
2813 if(PyInt_Check(obj))
2815 char val=(char)PyInt_AS_LONG(obj);
2816 return self->presenceOfValue(val);
2819 throw INTERP_KERNEL::Exception("DataArrayByte::__contains__ : 'this' contains one component and trying to find an element which is not an integer !");
2822 return MEDCoupling_DataArrayByte_presenceOfTuple(self,obj);
2827 PyObject *toNumPyArray() // not const. It is not a bug !
2829 return ToNumPyArray<DataArrayByte,char>(self,NPY_INT8,"DataArrayByte");
2833 DataArrayByte *__setitem__(PyObject *obj, PyObject *value)
2835 self->checkAllocated();
2836 const char msg[]="Unexpected situation in __setitem__ !";
2837 mcIdType nbOfTuples(self->getNumberOfTuples());
2838 int nbOfComponents((int)self->getNumberOfComponents());
2841 std::vector<int> v1;
2842 DataArrayIdType *d1=0;
2843 DataArrayIntTuple *dd1=0;
2844 convertIntStarLikePyObjToCpp(value,sw1,int1,v1,d1,dd1);
2846 std::vector<mcIdType> vt1,vc1;
2847 std::pair<mcIdType, std::pair<mcIdType,mcIdType> > pt1,pc1;
2848 DataArrayIdType *dt1=0,*dc1=0;
2849 convertObjToPossibleCpp3(obj,nbOfTuples,nbOfComponents,sw2,it1,ic1,vt1,vc1,pt1,pc1,dt1,dc1);
2850 MCAuto<DataArrayIdType> tmp;
2851 char i1 = (char)int1;
2859 self->setPartOfValuesSimple1(i1,it1,it1+1,1,0,nbOfComponents,1);
2862 throw INTERP_KERNEL::Exception(msg);
2871 self->setPartOfValuesSimple3(i1,&vt1[0],&vt1[0]+vt1.size(),0,nbOfComponents,1);
2874 throw INTERP_KERNEL::Exception(msg);
2883 self->setPartOfValuesSimple1(i1,pt1.first,pt1.second.first,pt1.second.second,0,nbOfComponents,1);
2886 throw INTERP_KERNEL::Exception(msg);
2895 self->setPartOfValuesSimple3(i1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),0,nbOfComponents,1);
2898 throw INTERP_KERNEL::Exception(msg);
2907 self->setPartOfValuesSimple1(i1,it1,it1+1,1,ic1,ic1+1,1);
2910 throw INTERP_KERNEL::Exception(msg);
2919 self->setPartOfValuesSimple3(i1,&vt1[0],&vt1[0]+vt1.size(),ic1,ic1+1,1);
2922 throw INTERP_KERNEL::Exception(msg);
2931 self->setPartOfValuesSimple1(i1,pt1.first,pt1.second.first,pt1.second.second,ic1,ic1+1,1);
2934 throw INTERP_KERNEL::Exception(msg);
2943 self->setPartOfValuesSimple3(i1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),ic1,ic1+1,1);
2946 throw INTERP_KERNEL::Exception(msg);
2955 self->setPartOfValuesSimple2(i1,&it1,&it1+1,&vc1[0],&vc1[0]+vc1.size());
2958 throw INTERP_KERNEL::Exception(msg);
2967 self->setPartOfValuesSimple2(i1,&vt1[0],&vt1[0]+vt1.size(),&vc1[0],&vc1[0]+vc1.size());
2970 throw INTERP_KERNEL::Exception(msg);
2979 self->setPartOfValuesSimple4(i1,pt1.first,pt1.second.first,pt1.second.second,&vc1[0],&vc1[0]+vc1.size());
2982 throw INTERP_KERNEL::Exception(msg);
2991 self->setPartOfValuesSimple2(i1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),&vc1[0],&vc1[0]+vc1.size());
2994 throw INTERP_KERNEL::Exception(msg);
3003 self->setPartOfValuesSimple1(i1,it1,it1+1,1,pc1.first,pc1.second.first,pc1.second.second);
3006 throw INTERP_KERNEL::Exception(msg);
3015 self->setPartOfValuesSimple3(i1,&vt1[0],&vt1[0]+vt1.size(),pc1.first,pc1.second.first,pc1.second.second);
3018 throw INTERP_KERNEL::Exception(msg);
3027 self->setPartOfValuesSimple1(i1,pt1.first,pt1.second.first,pt1.second.second,pc1.first,pc1.second.first,pc1.second.second);
3030 throw INTERP_KERNEL::Exception(msg);
3039 self->setPartOfValuesSimple3(i1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),pc1.first,pc1.second.first,pc1.second.second);
3042 throw INTERP_KERNEL::Exception(msg);
3047 throw INTERP_KERNEL::Exception(msg);
3054 class DataArrayByteTuple;
3056 class DataArrayByteIterator
3059 DataArrayByteIterator(DataArrayByte *da);
3060 ~DataArrayByteIterator();
3063 class DataArrayByteTuple
3066 std::string repr() const;
3067 DataArrayByte *buildDAByte(mcIdType nbOfTuples, mcIdType nbOfCompo) const;
3070 std::string __str__() const
3072 return self->repr();
3075 char __int__() const
3077 return self->byteValue();
3080 DataArrayByte *buildDAByte()
3082 return self->buildDAByte(1,self->getNumberOfCompo());
3087 class DataArrayAsciiCharIterator;
3089 class DataArrayAsciiChar : public DataArrayChar
3092 static DataArrayAsciiChar *New();
3093 DataArrayAsciiCharIterator *iterator();
3094 DataArrayAsciiChar *performCopyOrIncrRef(bool deepCopy) const;
3095 char asciiCharValue() const;
3098 DataArrayAsciiChar()
3100 return DataArrayAsciiChar::New();
3103 static DataArrayAsciiChar *New(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *nbOfComp=0)
3105 const char *msg="MEDCoupling::DataArrayAsciiChar::New : Available API are : \n-DataArrayAsciiChar.New()\n-DataArrayAsciiChar.New([1,3,4])\n-DataArrayAsciiChar.New([\"abc\",\"de\",\"fghi\"])\n-DataArrayAsciiChar.New([\"abc\",\"de\",\"fghi\"],\"t\")\n-DataArrayAsciiChar.New([1,3,4],3)\n-DataArrayAsciiChar.New([1,3,4,5],2,2)\n-DataArrayAsciiChar.New(5)\n-DataArrayAsciiChar.New(5,2) !";
3106 if(PyList_Check(elt0) || PyTuple_Check(elt0))
3110 if(PyInt_Check(nbOfTuples))
3112 mcIdType nbOfTuples1=ToIdType(PyInt_AS_LONG(nbOfTuples));
3114 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::New : should be a positive set of allocated memory !");
3117 if(PyInt_Check(nbOfComp))
3118 {//DataArrayAsciiChar.New([1,3,4,5],2,2)
3119 mcIdType nbOfCompo=ToIdType(PyInt_AS_LONG(nbOfComp));
3121 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::New : should be a positive number of components !");
3122 MCAuto<DataArrayAsciiChar> ret=DataArrayAsciiChar::New();
3123 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,nbOfTuples1,nbOfCompo);
3124 ret->alloc(nbOfTuples1,nbOfCompo); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
3128 throw INTERP_KERNEL::Exception(msg);
3131 {//DataArrayAsciiChar.New([1,3,4],3)
3132 MCAuto<DataArrayAsciiChar> ret=DataArrayAsciiChar::New();
3134 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,nbOfTuples1,tmpp1);
3135 ret->alloc(nbOfTuples1,tmpp1); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
3139 else if(PyString_Check(nbOfTuples))
3141 if(PyString_Size(nbOfTuples)!=1)
3142 throw INTERP_KERNEL::Exception(msg);
3143 //DataArrayAsciiChar.New(["abc","de","fghi"],"t")
3144 std::vector<std::string> tmp;
3145 if(fillStringVector(elt0,tmp))
3146 return DataArrayAsciiChar::New(tmp,PyString_AsString(nbOfTuples)[0]);
3148 throw INTERP_KERNEL::Exception(msg);
3150 %#if PY_VERSION_HEX >= 0x03000000
3151 else if(PyUnicode_Check(nbOfTuples))
3153 if(PyUnicode_GET_LENGTH(nbOfTuples)!=1)
3154 throw INTERP_KERNEL::Exception(msg);
3155 //DataArrayAsciiChar.New(["abc","de","fghi"],"t")
3156 std::vector<std::string> tmp;
3157 if(fillStringVector(elt0,tmp))
3158 return DataArrayAsciiChar::New(tmp,PyUnicode_AsUTF8(nbOfTuples)[0]);
3160 throw INTERP_KERNEL::Exception(msg);
3164 throw INTERP_KERNEL::Exception(msg);
3168 std::vector<std::string> tmmp;
3169 if(fillStringVector(elt0,tmmp))
3170 //DataArrayAsciiChar.New(["abc","de","fghi"])
3171 return DataArrayAsciiChar::New(tmmp,' ');
3174 // DataArrayAsciiChar.New([1,3,4])
3175 MCAuto<DataArrayAsciiChar> ret=DataArrayAsciiChar::New();
3176 mcIdType tmpp1=-1,tmpp2=-1;
3177 std::vector<mcIdType> tmp=fillArrayWithPyListInt2(elt0,tmpp1,tmpp2);
3178 ret->alloc(tmpp1,tmpp2); std::copy(tmp.begin(),tmp.end(),ret->getPointer());
3183 else if(PyInt_Check(elt0))
3185 mcIdType nbOfTuples1=ToIdType(PyInt_AS_LONG(elt0));
3187 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::New : should be a positive set of allocated memory !");
3192 if(PyInt_Check(nbOfTuples))
3193 {//DataArrayAsciiChar.New(5,2)
3194 mcIdType nbOfCompo=ToIdType(PyInt_AS_LONG(nbOfTuples));
3196 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::New : should be a positive number of components !");
3197 MCAuto<DataArrayAsciiChar> ret=DataArrayAsciiChar::New();
3198 ret->alloc(nbOfTuples1,nbOfCompo);
3202 throw INTERP_KERNEL::Exception(msg);
3205 throw INTERP_KERNEL::Exception(msg);
3208 {//DataArrayAsciiChar.New(5)
3209 MCAuto<DataArrayAsciiChar> ret=DataArrayAsciiChar::New();
3210 ret->alloc(nbOfTuples1,1);
3215 throw INTERP_KERNEL::Exception(msg);
3218 DataArrayAsciiChar(PyObject *elt0, PyObject *nbOfTuples=0, PyObject *nbOfComp=0)
3220 return MEDCoupling_DataArrayAsciiChar_New__SWIG_1(elt0,nbOfTuples,nbOfComp);
3223 std::string __repr__() const
3225 std::ostringstream oss;
3226 self->reprQuickOverview(oss);
3230 DataArrayAsciiCharIterator *__iter__()
3232 return self->iterator();
3235 std::string getIJ(mcIdType tupleId, mcIdType compoId) const
3237 char tmp[2]; tmp[1]='\0';
3238 tmp[0]=self->getIJ(tupleId,compoId);
3239 return std::string(tmp);
3242 std::string getIJSafe(mcIdType tupleId, mcIdType compoId) const
3244 char tmp[2]; tmp[1]='\0';
3245 tmp[0]=self->getIJSafe(tupleId,compoId);
3246 return std::string(tmp);
3249 std::string __str__() const
3251 return self->repr();
3254 PyObject *toStrList() const
3256 const char *vals=self->getConstPointer();
3257 std::size_t nbOfComp=self->getNumberOfComponents();
3258 mcIdType nbOfTuples=self->getNumberOfTuples();
3259 return convertCharArrToPyListOfTuple(vals,(int)nbOfComp,nbOfTuples);
3262 bool presenceOfTuple(PyObject *tupl) const
3264 if(PyString_Check(tupl))
3266 Py_ssize_t sz=PyString_Size(tupl);
3267 std::vector<char> vals(sz);
3268 std::copy(PyString_AsString(tupl),PyString_AsString(tupl)+sz,vals.begin());
3269 return self->presenceOfTuple(vals);
3271 %#if PY_VERSION_HEX >= 0x03000000
3272 else if(PyUnicode_Check(tupl))
3274 Py_ssize_t sz=PyUnicode_GET_LENGTH(tupl);
3275 std::vector<char> vals(sz);
3276 std::copy(PyUnicode_AsUTF8(tupl),PyUnicode_AsUTF8(tupl)+sz,vals.begin());
3277 return self->presenceOfTuple(vals);
3281 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::presenceOfTuple : only strings in input supported !");
3284 bool presenceOfValue(PyObject *vals) const
3286 if(PyString_Check(vals))
3288 Py_ssize_t sz=PyString_Size(vals);
3289 std::vector<char> vals2(sz);
3290 std::copy(PyString_AsString(vals),PyString_AsString(vals)+sz,vals2.begin());
3291 return self->presenceOfValue(vals2);
3293 %#if PY_VERSION_HEX >= 0x03000000
3294 if(PyUnicode_Check(vals))
3296 Py_ssize_t sz=PyUnicode_GET_LENGTH(vals);
3297 std::vector<char> vals2(sz);
3298 std::copy(PyUnicode_AsUTF8(vals),PyUnicode_AsUTF8(vals)+sz,vals2.begin());
3299 return self->presenceOfValue(vals2);
3303 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::presenceOfValue : only strings in input supported !");
3306 mcIdType findIdFirstEqual(PyObject *vals) const
3308 if(PyString_Check(vals))
3310 Py_ssize_t sz=PyString_Size(vals);
3311 std::vector<char> vals2(sz);
3312 std::copy(PyString_AsString(vals),PyString_AsString(vals)+sz,vals2.begin());
3313 return self->findIdFirstEqual(vals2);
3315 %#if PY_VERSION_HEX >= 0x03000000
3316 if(PyUnicode_Check(vals))
3318 Py_ssize_t sz=PyUnicode_GET_LENGTH(vals);
3319 std::vector<char> vals2(sz);
3320 std::copy(PyUnicode_AsUTF8(vals),PyUnicode_AsUTF8(vals)+sz,vals2.begin());
3321 return self->findIdFirstEqual(vals2);
3325 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::findIdFirstEqual : only strings in input supported !");
3328 mcIdType findIdFirstEqualTuple(PyObject *tupl) const
3330 if(PyString_Check(tupl))
3332 Py_ssize_t sz=PyString_Size(tupl);
3333 std::vector<char> vals(sz);
3334 std::copy(PyString_AsString(tupl),PyString_AsString(tupl)+sz,vals.begin());
3335 return self->findIdFirstEqualTuple(vals);
3337 %#if PY_VERSION_HEX >= 0x03000000
3338 if(PyUnicode_Check(tupl))
3340 Py_ssize_t sz=PyUnicode_GET_LENGTH(tupl);
3341 std::vector<char> vals(sz);
3342 std::copy(PyUnicode_AsUTF8(tupl),PyUnicode_AsUTF8(tupl)+sz,vals.begin());
3343 return self->findIdFirstEqualTuple(vals);
3347 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::findIdFirstEqualTuple : only strings in input supported !");
3350 mcIdType findIdSequence(PyObject *strOrListOfInt) const
3352 if(PyString_Check(strOrListOfInt))
3354 Py_ssize_t sz=PyString_Size(strOrListOfInt);
3355 std::vector<char> vals(sz);
3356 std::copy(PyString_AsString(strOrListOfInt),PyString_AsString(strOrListOfInt)+sz,vals.begin());
3357 return self->findIdSequence(vals);
3359 %#if PY_VERSION_HEX >= 0x03000000
3360 else if(PyUnicode_Check(strOrListOfInt))
3362 Py_ssize_t sz=PyUnicode_GET_LENGTH(strOrListOfInt);
3363 std::vector<char> vals(sz);
3364 std::copy(PyUnicode_AsUTF8(strOrListOfInt),PyUnicode_AsUTF8(strOrListOfInt)+sz,vals.begin());
3365 return self->findIdSequence(vals);
3369 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::search : only strings in input supported !");
3372 PyObject *getTuple(mcIdType tupleId) const
3374 std::size_t sz=self->getNumberOfComponents();
3375 INTERP_KERNEL::AutoPtr<char> tmp=new char[sz+1]; tmp[sz]='\0';
3376 self->getTuple(tupleId,tmp);
3377 return PyString_FromString(tmp);
3380 PyObject *getMaxValue() const
3383 char tmp2[2]; tmp2[1]='\0';
3384 tmp2[0]=self->getMaxValue(tmp);
3385 PyObject *ret=PyTuple_New(2);
3386 PyTuple_SetItem(ret,0,PyString_FromString(tmp2));
3387 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
3391 PyObject *getMinValue() const
3394 char tmp2[2]; tmp2[1]='\0';
3395 tmp2[0]=self->getMinValue(tmp);
3396 PyObject *ret=PyTuple_New(2);
3397 PyTuple_SetItem(ret,0,PyString_FromString(tmp2));
3398 PyTuple_SetItem(ret,1,PyInt_FromLong(tmp));
3402 mcIdType index(PyObject *obj) const
3404 std::size_t nbOfCompo=self->getNumberOfComponents();
3409 if(PyString_Check(obj))
3411 Py_ssize_t sz=PyString_Size(obj);
3412 char *pt=PyString_AsString(obj);
3414 return self->findIdFirstEqual(pt[0]);
3416 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::index : 'this' contains one component and trying to find a string with size different from 1 !");
3418 %#if PY_VERSION_HEX >= 0x03000000
3419 if(PyUnicode_Check(obj))
3422 const char *pt=PyUnicode_AsUTF8AndSize(obj, &sz);
3424 return self->findIdFirstEqual(pt[0]);
3426 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::index : 'this' contains one component and trying to find a string with size different from 1 !");
3430 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::index : 'this' contains one component and trying to find an element which is not an integer !");
3433 return MEDCoupling_DataArrayAsciiChar_findIdFirstEqualTuple(self,obj);
3437 bool __contains__(PyObject *obj) const
3439 std::size_t nbOfCompo=self->getNumberOfComponents();
3446 if(PyString_Check(obj))
3448 Py_ssize_t sz=PyString_Size(obj);
3449 char *pt=PyString_AsString(obj);
3451 return self->presenceOfValue(pt[0]);
3453 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::__contains__ : 'this' contains one component and trying to find a string with size different from 1 !");
3455 %#if PY_VERSION_HEX >= 0x03000000
3456 if(PyUnicode_Check(obj))
3459 const char *pt=PyUnicode_AsUTF8AndSize(obj, &sz);
3461 return self->presenceOfValue(pt[0]);
3463 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::__contains__ : 'this' contains one component and trying to find a string with size different from 1 !");
3467 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::__contains__ : 'this' contains one component and trying to find an element which is not an integer !");
3470 return MEDCoupling_DataArrayAsciiChar_presenceOfTuple(self,obj);
3474 PyObject *__getitem__(PyObject *obj) const
3476 mcIdType sw,iTypppArr;
3477 std::vector<mcIdType> stdvecTyyppArr;
3478 std::pair<mcIdType, std::pair<mcIdType,mcIdType> > sTyyppArr;
3479 MEDCoupling::DataArrayIdType *daIntTyypp=0;
3480 convertIntStarOrSliceLikePyObjToCppWithNegIntInterp(obj,self->getNumberOfTuples(),sw,iTypppArr,stdvecTyyppArr,sTyyppArr,daIntTyypp);
3484 return MEDCoupling_DataArrayAsciiChar_getTuple(self,iTypppArr);
3486 return convertDataArrayChar(self->selectByTupleIdSafe(&stdvecTyyppArr[0],&stdvecTyyppArr[0]+stdvecTyyppArr.size()), SWIG_POINTER_OWN | 0 );
3488 return convertDataArrayChar(self->selectByTupleIdSafeSlice(sTyyppArr.first,sTyyppArr.second.first,sTyyppArr.second.second), SWIG_POINTER_OWN | 0 );
3490 return convertDataArrayChar(self->selectByTupleIdSafe(daIntTyypp->begin(),daIntTyypp->end()), SWIG_POINTER_OWN | 0 );
3492 throw INTERP_KERNEL::Exception("DataArrayAsciiChar::__getitem__ : supporting int, list of int, tuple of int, DataArrayIdType and slice in input !");
3496 DataArrayAsciiChar *__setitem__(PyObject *obj, PyObject *value)
3498 static const char msg[]="DataArrayAsciiChar::__setitem__ : supporting int, list of int, tuple of int, DataArrayIdType and slice in input, and 4 types accepted in value : string, list or tuple of strings having same size, not null DataArrayChar instance.";
3499 mcIdType sw1,iTypppArr;
3500 std::vector<mcIdType> stdvecTyyppArr;
3501 std::pair<mcIdType, std::pair<mcIdType,mcIdType> > sTyyppArr;
3502 MEDCoupling::DataArrayIdType *daIntTyypp=0;
3503 mcIdType nbOfCompo=ToIdType(self->getNumberOfComponents());
3504 mcIdType nbOfTuples=self->getNumberOfTuples();
3505 convertIntStarOrSliceLikePyObjToCppWithNegIntInterp(obj,nbOfTuples,sw1,iTypppArr,stdvecTyyppArr,sTyyppArr,daIntTyypp);
3507 char vc; std::string sc; std::vector<std::string> vsc; DataArrayChar *dacc=0;
3508 convertObjToPossibleCpp6(value,sw2,vc,sc,vsc,dacc);
3517 self->setPartOfValuesSimple3(vc,&iTypppArr,&iTypppArr+1,0,nbOfCompo,1);
3523 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(sc);
3524 self->setPartOfValues3(tmp,&iTypppArr,&iTypppArr+1,0,nbOfCompo,1,false);
3527 //value vector<string>
3530 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(vsc,' ');
3531 self->setPartOfValues3(tmp,&iTypppArr,&iTypppArr+1,0,nbOfCompo,1,false);
3534 //value DataArrayChar
3537 self->setPartOfValues3(dacc,&iTypppArr,&iTypppArr+1,0,nbOfCompo,1,false);
3541 throw INTERP_KERNEL::Exception(msg);
3545 {//obj list-tuple[int]
3551 self->setPartOfValuesSimple3(vc,&stdvecTyyppArr[0],&stdvecTyyppArr[0]+stdvecTyyppArr.size(),0,nbOfCompo,1);
3557 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(sc);
3558 self->setPartOfValues3(tmp,&stdvecTyyppArr[0],&stdvecTyyppArr[0]+stdvecTyyppArr.size(),0,nbOfCompo,1,false);
3561 //value vector<string>
3564 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(vsc,' ');
3565 self->setPartOfValues3(tmp,&stdvecTyyppArr[0],&stdvecTyyppArr[0]+stdvecTyyppArr.size(),0,nbOfCompo,1,false);
3568 //value DataArrayChar
3571 self->setPartOfValues3(dacc,&stdvecTyyppArr[0],&stdvecTyyppArr[0]+stdvecTyyppArr.size(),0,nbOfCompo,1,false);
3575 throw INTERP_KERNEL::Exception(msg);
3586 self->setPartOfValuesSimple1(vc,sTyyppArr.first,sTyyppArr.second.first,sTyyppArr.second.second,0,nbOfCompo,1);
3592 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(sc);
3593 self->setPartOfValues1(tmp,sTyyppArr.first,sTyyppArr.second.first,sTyyppArr.second.second,0,nbOfCompo,1,false);
3596 //value vector<string>
3599 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(vsc,' ');
3600 self->setPartOfValues1(tmp,sTyyppArr.first,sTyyppArr.second.first,sTyyppArr.second.second,0,nbOfCompo,1,false);
3603 //value DataArrayChar
3606 self->setPartOfValues1(dacc,sTyyppArr.first,sTyyppArr.second.first,sTyyppArr.second.second,0,nbOfCompo,1,false);
3610 throw INTERP_KERNEL::Exception(msg);
3621 self->setPartOfValuesSimple3(vc,daIntTyypp->begin(),daIntTyypp->end(),0,nbOfCompo,1);
3627 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(sc);
3628 self->setPartOfValues3(tmp,daIntTyypp->begin(),daIntTyypp->end(),0,nbOfCompo,1,false);
3631 //value vector<string>
3634 MCAuto<DataArrayAsciiChar> tmp=DataArrayAsciiChar::New(vsc,' ');
3635 self->setPartOfValues3(tmp,daIntTyypp->begin(),daIntTyypp->end(),0,nbOfCompo,1,false);
3638 //value DataArrayChar
3641 self->setPartOfValues3(dacc,daIntTyypp->begin(),daIntTyypp->end(),0,nbOfCompo,1,false);
3645 throw INTERP_KERNEL::Exception(msg);
3650 throw INTERP_KERNEL::Exception(msg);
3656 class DataArrayAsciiCharTuple;
3658 class DataArrayAsciiCharIterator
3661 DataArrayAsciiCharIterator(DataArrayAsciiChar *da);
3662 ~DataArrayAsciiCharIterator();
3667 DataArrayAsciiCharTuple *ret=self->nextt();
3669 return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_MEDCoupling__DataArrayAsciiCharTuple,SWIG_POINTER_OWN | 0);
3672 PyErr_SetString(PyExc_StopIteration,"No more data.");
3679 class DataArrayAsciiCharTuple
3682 std::size_t getNumberOfCompo() const;
3683 DataArrayAsciiChar *buildDAAsciiChar(mcIdType nbOfTuples, mcIdType nbOfCompo) const;
3686 std::string __str__() const
3688 return self->repr();
3691 DataArrayAsciiChar *buildDAAsciiChar()
3693 return self->buildDAAsciiChar(1,self->getNumberOfCompo());
3699 %include "DataArrayInt.i"
3702 def MEDCouplingStdReduceFunct(cls,params):
3704 ret=object.__new__(cls)
3709 def MEDCouplingDataArrayDoubleReduce(self):
3710 if not MEDCouplingHasNumPyBindings():
3711 raise InterpKernelException("PyWrap of DataArrayDouble.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
3712 return MEDCouplingStdReduceFunct,(DataArrayDouble,((self.toNumPyArray(),),(self.__getstate__()),))
3714 def MEDCouplingDataArrayInt32Reduce(self):
3715 if not MEDCouplingHasNumPyBindings():
3716 raise InterpKernelException("PyWrap of DataArrayIdType.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
3717 return MEDCouplingStdReduceFunct,(DataArrayInt32,((self.toNumPyArray(),),(self.__getstate__()),))
3719 def MEDCouplingDataArrayInt64Reduce(self):
3720 if not MEDCouplingHasNumPyBindings():
3721 raise InterpKernelException("PyWrap of DataArrayIdType.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
3722 return MEDCouplingStdReduceFunct,(DataArrayInt64,((self.toNumPyArray(),),(self.__getstate__()),))
3724 def MEDCouplingDataArrayByteReduce(self):
3725 if not MEDCouplingHasNumPyBindings():
3726 raise InterpKernelException("PyWrap of DataArrayByte.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
3727 return MEDCouplingStdReduceFunct,(DataArrayByte,((self.toNumPyArray(),),(self.__getstate__()),))
3729 def MEDCouplingDataArrayFloatReduce(self):
3730 if not MEDCouplingHasNumPyBindings():
3731 raise InterpKernelException("PyWrap of DataArrayFloat.__reduce__ : not implemented because numpy is not active in your configuration ! No serialization/unserialization available without numpy !")
3732 return MEDCouplingStdReduceFunct,(DataArrayFloat,((self.toNumPyArray(),),(self.__getstate__()),))
3734 if MEDCouplingUse64BitIDs():
3735 DataArrayInt=DataArrayInt64
3737 DataArrayInt=DataArrayInt32