darray.h

Go to the documentation of this file.
00001 //
00002 //******************************************************************************
00003 //                    DARRAY.H
00004 //******************************************************************************
00005 //
00006 
00007 #include "strctbse.h"
00008 #include "datahndl.h"
00009 #include "arraybse.h"
00010 #include "range.h"
00011 #include "camtype.h"
00012 #include "under.h"
00013 
00014 //
00015 //  
00016 //
00017 //
00018 //********************************************************************************
00019 //
00020 //            Chris Anderson  (C) UCLA
00021 //
00022 //            Thu Nov 02 13:42:45 1995
00023 //
00024 //********************************************************************************
00025 //
00026 
00027 #ifndef _CAMDOUBLEARRAY_
00028 #define _CAMDOUBLEARRAY_
00029 
00030 #include "mvaimpexp.h"
00031 
00032 class __IMPEXP__ CAMdoubleArray : public CAMarrayBase
00033 {
00034 
00035 public :
00036 
00037 //
00038 //  Constructors
00039 //
00040     CAMdoubleArray():CAMarrayBase(CAMType::typeDouble){};
00041     CAMdoubleArray(const CAMdoubleArray& A):CAMarrayBase(*((CAMarrayBase*)&A)){};
00042     CAMdoubleArray(const CAMarrayBase& A):CAMarrayBase(A){};
00043     CAMdoubleArray(long n):CAMarrayBase(CAMType::typeDouble, n){};
00044     CAMdoubleArray(const CAMrange& R1, const CAMrange& R2 = CAMnullRange,
00045     const CAMrange& R3 = CAMnullRange, const CAMrange&R4 = CAMnullRange,
00046     const CAMrange& R5 = CAMnullRange, const CAMrange&R6 = CAMnullRange,
00047     const CAMrange& R7 = CAMnullRange) :
00048     CAMarrayBase(CAMType::typeDouble,R1, R2, R3, R4, R5, R6, R7){ };
00049 //
00050 //  Assignment
00051 //
00052     void  operator = (const CAMdoubleArray& A)
00053     {CAMarrayBase* basePtr = this; const CAMarrayBase* AbasePtr =
00054     (CAMarrayBase*)&A; basePtr->operator=(*AbasePtr);};
00055     void  operator =( const CAMarrayBase& A)
00056     {CAMarrayBase* basePtr = this; basePtr->operator=(A);};
00057     void  operator = (double value)
00058     {CAMarrayBase* basePtr = this; basePtr->operator=(value);};
00059 //
00060 //  initialization
00061 //
00062     void  initialize()
00063     {CAMarrayBase* basePtr = this; basePtr->initialize(CAMType::typeDouble);};
00064     void  initialize(const CAMdoubleArray& A)
00065     {CAMarrayBase* basePtr = this; basePtr->initialize(A);};
00066     void  initialize(const CAMarrayBase& A)
00067     {CAMarrayBase* basePtr = this; basePtr->initialize(A);};
00068     void  initialize(long n)
00069     {CAMarrayBase* basePtr = this; basePtr->initialize(CAMType::typeDouble, n);};
00070     void  initialize(const CAMrange& R1, const CAMrange& R2 = CAMnullRange,
00071     const CAMrange& R3 = CAMnullRange, const CAMrange&R4 = CAMnullRange,
00072     const CAMrange& R5 = CAMnullRange, const CAMrange&R6 = CAMnullRange,
00073     const CAMrange& R7 = CAMnullRange){CAMarrayBase* basePtr = this;
00074     basePtr->initialize(CAMType::typeDouble,R1, R2, R3, R4, R5, R6, R7);};
00075 //
00076 //  Access Functions
00077 //
00078     inline double&  operator()(long i1)
00079 {
00080 #ifndef _NO_BOUNDS_CHECK_
00081     CAMarrayBase::indexCheck(Structure,i1);
00082 #endif
00083     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00084 
00085     double* dataPtr =  (double*)DataP->dataPointer;
00086     long offset = (i1 - *(beginPtr));
00087     return *(dataPtr + offset);
00088 };
00089     inline double&  operator()(long i1, long i2)
00090 {
00091 #ifndef _NO_BOUNDS_CHECK_
00092     CAMarrayBase::indexCheck(Structure,i1,i2);
00093 #endif
00094     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00095     long* endPtr   = Structure.indexEndBase.getDataPointer();
00096     
00097     double* dataPtr =  (double*)DataP->dataPointer; 
00098     
00099     long offset = 
00100     (i1 - *(beginPtr)) + 
00101     ((*endPtr - *beginPtr) + 1)*(i2 - *(beginPtr +1)); 
00102 
00103     return (*(dataPtr + offset));
00104 };
00105     inline double&  operator()(long i1, long i2, long i3)
00106 {
00107 #ifndef _NO_BOUNDS_CHECK_
00108     CAMarrayBase::indexCheck(Structure,i1,i2,i3);
00109 #endif
00110     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00111     long* endPtr   = Structure.indexEndBase.getDataPointer();
00112     
00113     double* dataPtr =  (double*)DataP->dataPointer;
00114     long offset    =  (i1 - *(beginPtr)) + 
00115     ((*endPtr - *beginPtr) + 1)*
00116     ((i2 - *(beginPtr +1)) + 
00117     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00118     (i3 - *(beginPtr + 2)));    
00119     return (*(dataPtr + offset));
00120 };
00121     inline double&  operator()(long i1, long i2, long i3, long i4)
00122 { 
00123 #ifndef _NO_BOUNDS_CHECK_
00124     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4);
00125 #endif
00126     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00127     long* endPtr   = Structure.indexEndBase.getDataPointer();
00128     
00129     double* dataPtr =  (double*)DataP->dataPointer;
00130     long offset    =  (i1 - *(beginPtr)) + 
00131     ((*endPtr - *beginPtr) + 1)*
00132     ( (i2 - *(beginPtr +1)) + 
00133       ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00134     ( (i3 - *(beginPtr + 2)) +
00135       ((*(endPtr +2) - *(beginPtr +2)) + 1)*(i4 - *(beginPtr + 3))));  
00136     return (*(dataPtr + offset));
00137 };
00138     inline double&  operator()(long i1, long i2, long i3, long i4, long i5)
00139 {  
00140 #ifndef _NO_BOUNDS_CHECK_
00141     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5);
00142 #endif
00143     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00144     long* endPtr   = Structure.indexEndBase.getDataPointer();
00145     
00146     double* dataPtr =  (double*)DataP->dataPointer;
00147     long offset    =  (i1 - *(beginPtr)) + 
00148     ((*endPtr - *beginPtr) + 1)*
00149     ((i2 - *(beginPtr +1)) + 
00150     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00151     ((i3 - *(beginPtr + 2)) + 
00152     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00153     ((i4 - *(beginPtr + 3)) +
00154     ((*(endPtr +3) - *(beginPtr +3)) + 1)*(i5 - *(beginPtr + 4)))));   
00155     return (*(dataPtr + offset));
00156 };
00157     inline double&  operator()(long i1, long i2, long i3, long i4, long i5, long i6)
00158 { 
00159 #ifndef _NO_BOUNDS_CHECK_
00160     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5,i6);
00161 #endif
00162     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00163     long* endPtr   = Structure.indexEndBase.getDataPointer();
00164     
00165     double* dataPtr =  (double*)DataP->dataPointer;
00166     long offset    =  (i1 - *(beginPtr)) + 
00167     ((*endPtr - *beginPtr) + 1)*
00168     ((i2 - *(beginPtr +1)) + 
00169     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00170     ((i3 - *(beginPtr + 2)) + 
00171     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00172     ((i4 - *(beginPtr + 3)) +
00173     ((*(endPtr +3) - *(beginPtr +3)) + 1)*
00174     ((i5 - *(beginPtr + 4)) +
00175     ((*(endPtr +4) - *(beginPtr +4)) + 1)*(i6 - *(beginPtr + 5)))))); 
00176     return (*(dataPtr + offset));
00177 };
00178     inline double&  operator()(long i1, long i2, long i3, long i4, long i5, long i6, long i7)
00179 {   
00180 #ifndef _NO_BOUNDS_CHECK_
00181     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5,i6,i7);
00182 #endif
00183     long* beginPtr = Structure.indexBeginBase.getDataPointer();
00184     long* endPtr   = Structure.indexEndBase.getDataPointer();
00185     
00186     double* dataPtr =  (double*)DataP->dataPointer;
00187     long offset    =  (i1 - *(beginPtr)) + 
00188     ((*endPtr - *beginPtr) + 1)*
00189     ((i2 - *(beginPtr +1)) + 
00190     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00191     ((i3 - *(beginPtr + 2)) + 
00192     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00193     ((i4 - *(beginPtr + 3)) +
00194     ((*(endPtr +3) - *(beginPtr +3)) + 1)*
00195     ((i5 - *(beginPtr + 4)) + 
00196     ((*(endPtr +4) - *(beginPtr +4)) + 1)*
00197     ((i6 - *(beginPtr + 5)) +
00198     ((*(endPtr +5) - *(beginPtr +5)) + 1)*(i7 - *(beginPtr + 6)))))));   
00199     return (*(dataPtr + offset));
00200 };
00201     inline const double&  operator()(long i1) const
00202 {
00203 #ifndef _NO_BOUNDS_CHECK_
00204     CAMarrayBase::indexCheck(Structure,i1);
00205 #endif
00206     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00207     double* dataPtr =  (double*)DataP->dataPointer;
00208     long offset = (i1 - *(beginPtr));
00209     return (*(dataPtr + offset));
00210 };
00211     inline const double&  operator()(long i1, long i2) const
00212 { 
00213 #ifndef _NO_BOUNDS_CHECK_
00214     CAMarrayBase::indexCheck(Structure,i1,i2);
00215 #endif
00216     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00217     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00218     
00219     double* dataPtr =  (double*)DataP->dataPointer; 
00220     
00221     long offset = 
00222     (i1 - *(beginPtr)) + 
00223     ((*endPtr - *beginPtr) + 1)*(i2 - *(beginPtr +1)); 
00224     
00225     return (*(dataPtr + offset));
00226 };
00227     inline const double&  operator()(long i1, long i2, long i3) const
00228 {
00229 #ifndef _NO_BOUNDS_CHECK_
00230     CAMarrayBase::indexCheck(Structure,i1,i2,i3);
00231 #endif
00232     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00233     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00234     
00235     double* dataPtr =  (double*)DataP->dataPointer;
00236     long offset    =  (i1 - *(beginPtr)) + 
00237     ((*endPtr - *beginPtr) + 1)*
00238     ((i2 - *(beginPtr +1)) + 
00239     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00240     (i3 - *(beginPtr + 2)));      
00241     return (*(dataPtr + offset));
00242 };
00243     inline const double&  operator()(long i1, long i2, long i3, long i4) const
00244 { 
00245 #ifndef _NO_BOUNDS_CHECK_
00246     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4);
00247 #endif
00248     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00249     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00250     
00251     double* dataPtr =  (double*)DataP->dataPointer;
00252     long offset    =  (i1 - *(beginPtr)) + 
00253     ((*endPtr - *beginPtr) + 1)*
00254     ( (i2 - *(beginPtr +1)) + 
00255       ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00256     ( (i3 - *(beginPtr + 2)) +
00257       ((*(endPtr +2) - *(beginPtr +2)) + 1)*(i4 - *(beginPtr + 3))));   
00258     return (*(dataPtr + offset));
00259 };
00260     inline const double&  operator()(long i1, long i2, long i3, long i4, long i5) const
00261 { 
00262 #ifndef _NO_BOUNDS_CHECK_
00263     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5);
00264 #endif
00265     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00266     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00267     
00268     double* dataPtr =  (double*)DataP->dataPointer;
00269     long offset    =  (i1 - *(beginPtr)) + 
00270     ((*endPtr - *beginPtr) + 1)*
00271     ((i2 - *(beginPtr +1)) + 
00272     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00273     ((i3 - *(beginPtr + 2)) + 
00274     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00275     ((i4 - *(beginPtr + 3)) +
00276     ((*(endPtr +3) - *(beginPtr +3)) + 1)*(i5 - *(beginPtr + 4)))));   
00277     return (*(dataPtr + offset));
00278 };
00279     inline const double&  operator()(long i1, long i2, long i3, long i4, long i5, long i6) const
00280 {
00281 #ifndef _NO_BOUNDS_CHECK_
00282     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5,i6);
00283 #endif
00284     const long* beginPtr = Structure.indexBeginBase.getDataPointer();
00285     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00286     
00287     double* dataPtr =  (double*)DataP->dataPointer;
00288     long offset    =  (i1 - *(beginPtr)) + 
00289     ((*endPtr - *beginPtr) + 1)*
00290     ((i2 - *(beginPtr +1)) + 
00291     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00292     ((i3 - *(beginPtr + 2)) + 
00293     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00294     ((i4 - *(beginPtr + 3)) +
00295     ((*(endPtr +3) - *(beginPtr +3)) + 1)*
00296     ((i5 - *(beginPtr + 4)) +
00297     ((*(endPtr +4) - *(beginPtr +4)) + 1)*(i6 - *(beginPtr + 5))))));   
00298     return (*(dataPtr + offset));
00299 };
00300     inline const double&  operator()(long i1, long i2, long i3, long i4, long i5, long i6, long i7) const
00301 {
00302 #ifndef _NO_BOUNDS_CHECK_
00303     CAMarrayBase::indexCheck(Structure,i1,i2,i3,i4,i5,i6,i7);
00304 #endif   
00305     const long* beginPtr  = Structure.indexBeginBase.getDataPointer();
00306     const long* endPtr   = Structure.indexEndBase.getDataPointer();
00307     
00308     double* dataPtr =  (double*)DataP->dataPointer;
00309     long offset    =  (i1 - *(beginPtr)) + 
00310     ((*endPtr - *beginPtr) + 1)*
00311     ((i2 - *(beginPtr +1)) +
00312     ((*(endPtr +1) - *(beginPtr +1)) + 1)*
00313     ((i3 - *(beginPtr + 2)) +
00314     ((*(endPtr +2) - *(beginPtr +2)) + 1)*
00315     ((i4 - *(beginPtr + 3)) +
00316     ((*(endPtr +3) - *(beginPtr +3)) + 1)*
00317     ((i5 - *(beginPtr + 4)) +
00318     ((*(endPtr +4) - *(beginPtr +4)) + 1)*
00319     ((i6 - *(beginPtr + 5)) +
00320     ((*(endPtr +5) - *(beginPtr +5)) + 1)*(i7 - *(beginPtr + 6)))))));
00321     return (*(dataPtr + offset));
00322 };
00323     CAMdoubleArray  operator() (const CAMrange& R1)
00324 {
00325     CAMstructureBase Rstructure(Structure);
00326     Rstructure.setStructureSubset(R1);
00327     CAMdoubleArray A;
00328     A.Structure.initialize(Rstructure);
00329     A.DataP = DataP;
00330     A.DataP->incrementReferenceCount();
00331     A.DataP->incrementReferenceCount();
00332     A.referenceFlag = 1;
00333     return A;
00334 };
00335     const CAMdoubleArray  operator()(const CAMrange& R1) const
00336 {
00337     CAMstructureBase Rstructure(Structure);
00338     Rstructure.setStructureSubset(R1);
00339     CAMdoubleArray A;
00340     A.Structure.initialize(Rstructure);
00341     A.DataP = DataP;
00342     A.DataP->incrementReferenceCount();
00343     A.DataP->incrementReferenceCount();
00344     A.referenceFlag = 1;
00345     return A;
00346 };
00347     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2) const
00348 {
00349     CAMstructureBase Rstructure(Structure);
00350     Rstructure.setStructureSubset(R1,R2);
00351     CAMdoubleArray A;
00352     A.Structure.initialize(Rstructure);
00353     A.DataP = DataP;
00354     A.DataP->incrementReferenceCount();
00355     A.DataP->incrementReferenceCount();
00356     A.referenceFlag = 1;
00357     return A;
00358 };
00359     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2)
00360 {
00361     CAMstructureBase Rstructure(Structure);
00362     Rstructure.setStructureSubset(R1,R2);
00363     CAMdoubleArray A;
00364     A.Structure.initialize(Rstructure);
00365     A.DataP = DataP;
00366     A.DataP->incrementReferenceCount();
00367     A.DataP->incrementReferenceCount();
00368     A.referenceFlag = 1;
00369     return A;
00370 };
00371     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2,
00372 const CAMrange& R3) const
00373 {
00374     CAMstructureBase Rstructure(Structure);
00375     Rstructure.setStructureSubset(R1,R2,R3);
00376     CAMdoubleArray A;
00377     A.Structure.initialize(Rstructure);
00378     A.DataP = DataP;
00379     A.DataP->incrementReferenceCount();
00380     A.DataP->incrementReferenceCount();
00381     A.referenceFlag = 1;
00382     return A;
00383 };
00384     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2,
00385 const CAMrange& R3)
00386 {
00387     CAMstructureBase Rstructure(Structure);
00388     Rstructure.setStructureSubset(R1,R2, R3);
00389     CAMdoubleArray A;
00390     A.Structure.initialize(Rstructure);
00391     A.DataP = DataP;
00392     A.DataP->incrementReferenceCount();
00393     A.DataP->incrementReferenceCount();
00394     A.referenceFlag = 1;
00395     return A;
00396 };
00397     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2,
00398 const CAMrange& R3, const CAMrange& R4) const
00399 {
00400     CAMstructureBase Rstructure(Structure);
00401     Rstructure.setStructureSubset(R1,R2,R3,R4);
00402     CAMdoubleArray A;
00403     A.Structure.initialize(Rstructure);
00404     A.DataP = DataP;
00405     A.DataP->incrementReferenceCount();
00406     A.DataP->incrementReferenceCount();
00407     A.referenceFlag = 1;
00408     return A;
00409 };
00410     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2,
00411 const CAMrange& R3, const CAMrange& R4)
00412 {
00413     CAMstructureBase Rstructure(Structure);
00414     Rstructure.setStructureSubset(R1,R2, R3, R4);
00415     CAMdoubleArray A;
00416     A.Structure.initialize(Rstructure);
00417     A.DataP = DataP;
00418     A.DataP->incrementReferenceCount();
00419     A.DataP->incrementReferenceCount();
00420     A.referenceFlag = 1;
00421     return A;
00422 };
00423     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2,
00424 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5) const
00425 {
00426     CAMstructureBase Rstructure(Structure);
00427     Rstructure.setStructureSubset(R1,R2,R3,R4, R5);
00428     CAMdoubleArray A;
00429     A.Structure.initialize(Rstructure);
00430     A.DataP = DataP;
00431     A.DataP->incrementReferenceCount();
00432     A.DataP->incrementReferenceCount();
00433     A.referenceFlag = 1;
00434     return A;
00435 };
00436     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2,
00437 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5)
00438 {
00439     CAMstructureBase Rstructure(Structure);
00440     Rstructure.setStructureSubset(R1,R2, R3, R4, R5);
00441     CAMdoubleArray A;
00442     A.Structure.initialize(Rstructure);
00443     A.DataP = DataP;
00444     A.DataP->incrementReferenceCount();
00445     A.DataP->incrementReferenceCount();
00446     A.referenceFlag = 1;
00447     return A;
00448 };
00449     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2,
00450 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5,
00451 const CAMrange& R6)
00452 {
00453     CAMstructureBase Rstructure(Structure);
00454     Rstructure.setStructureSubset(R1,R2, R3, R4, R5, R6);
00455     CAMdoubleArray A;
00456     A.Structure.initialize(Rstructure);
00457     A.DataP = DataP;
00458     A.DataP->incrementReferenceCount();
00459     A.DataP->incrementReferenceCount();
00460     A.referenceFlag = 1;
00461     return A;
00462 };
00463     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2,
00464 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5, const CAMrange& R6) const
00465 {
00466     CAMstructureBase Rstructure(Structure);
00467     Rstructure.setStructureSubset(R1,R2,R3,R4, R5, R6);
00468     CAMdoubleArray A;
00469     A.Structure.initialize(Rstructure);
00470     A.DataP = DataP;
00471     A.DataP->incrementReferenceCount();
00472     A.DataP->incrementReferenceCount();
00473     A.referenceFlag = 1;
00474     return A;
00475 };
00476     CAMdoubleArray  operator() (const CAMrange& R1, const CAMrange& R2,
00477 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5,
00478 const CAMrange& R6, const CAMrange& R7)
00479 {
00480     CAMstructureBase Rstructure(Structure);
00481     Rstructure.setStructureSubset(R1,R2, R3, R4, R5, R6, R7);
00482     CAMdoubleArray A;
00483     A.Structure.initialize(Rstructure);
00484     A.DataP = DataP;
00485     A.DataP->incrementReferenceCount();
00486     A.DataP->incrementReferenceCount();
00487     A.referenceFlag = 1;
00488     return A;
00489 };
00490     const CAMdoubleArray  operator()(const CAMrange& R1, const CAMrange& R2,
00491 const CAMrange& R3, const CAMrange& R4, const CAMrange& R5, const CAMrange& R6,
00492 const CAMrange& R7) const
00493 {
00494     CAMstructureBase Rstructure(Structure);
00495     Rstructure.setStructureSubset(R1,R2,R3,R4, R5, R6, R7);
00496     CAMdoubleArray A;
00497     A.Structure.initialize(Rstructure);
00498     A.DataP = DataP;
00499     A.DataP->incrementReferenceCount();
00500     A.DataP->incrementReferenceCount();
00501     A.referenceFlag = 1;
00502     return A;
00503 };
00504 //
00505 //  data pointer access
00506 //
00507     double*  getDataPointer() const {return (double*)DataP->getDataPointer();};
00508 
00509 };
00510 
00511 #endif
00512 //
00513 //********************************************************************************
00514 //                     Header File End 
00515 //********************************************************************************
00516 //
00517 
00518 
00519 
00520 
00521 
00522 
00523   

Generated on Wed Aug 6 12:58:44 2003 for Open-Sessame Framework by doxygen1.3