strctbse.h

Go to the documentation of this file.
00001 //
00002 //******************************************************************************
00003 //                    STRCTBSE.H
00004 //******************************************************************************
00005 //
00006 
00007 #include <iostream.h>
00008 #include "mvalngbase.h"
00009 #include "access.h"
00010 #include "mvaexit.h"
00011 
00012 //
00013 //********************************************************************************
00014 //
00015 //            Chris Anderson (C) UCLA 1995
00016 //
00017 //            Thu Nov 02 13:33:24 1995
00018 //
00019 //********************************************************************************
00020 //
00021 
00022 #ifndef __CAMSTRUCTUREBASE__
00023 #define __CAMSTRUCTUREBASE__
00024 
00025 #include "mvaimpexp.h" // B
00026 //
00027 //
00028 //
00029 //extern CAMrange __IMPEXP__ CAMnullRange;
00030 //
00031 //
00032 //
00033 
00034 class __IMPEXP__ CAMstructureBase
00035 {
00036 //
00037 //  
00038 //
00039     friend class CAMstructureBaseTest;
00040 //
00041 //  
00042 //
00043 
00044 public :
00045 
00046     int          dataDimension;
00047     MVAlongBase      indexBegin;
00048     MVAlongBase      indexEnd;
00049     MVAlongBase      indexStride;
00050     MVAlongBase      indexBeginBase;
00051     MVAlongBase      indexEndBase;
00052 
00053 public :
00054 
00055     CAMstructureBase();
00056     CAMstructureBase( const CAMstructureBase& A);
00057     CAMstructureBase(long dimension);
00058     CAMstructureBase(const CAMrange& R1, const CAMrange& R2 = CAMnullRange,
00059    const CAMrange& R3 = CAMnullRange, const CAMrange&R4 = CAMnullRange,
00060    const CAMrange& R5 = CAMnullRange, const CAMrange&R6 = CAMnullRange,
00061    const CAMrange& R7 = CAMnullRange);
00062 //
00063 //  Destructor 
00064 //
00065     ~CAMstructureBase();
00066 //
00067 //  Output 
00068 //
00069     __IMPEXP__ friend ostream& operator <<(ostream& out_stream, const CAMstructureBase& A);
00070 //
00071 //  Assignment 
00072 //
00073     CAMstructureBase& operator = ( const CAMstructureBase& A);
00074 //
00075 //  Initialization
00076 //
00077     void  initialize();
00078     void  initialize(long dimension);
00079     void  initialize(const CAMstructureBase& A);
00080     void  initialize(const CAMrange& R1, const CAMrange& R2 = CAMnullRange,
00081     const CAMrange& R3 = CAMnullRange, const CAMrange&R4 = CAMnullRange,
00082     const CAMrange& R5 = CAMnullRange, const CAMrange&R6 = CAMnullRange,
00083     const CAMrange& R7 = CAMnullRange);
00084 //
00085 //  
00086 //
00087     int  getDimension()const {return dataDimension;};
00088     const CAMstructureBase&  operator[](long i) const;
00089     CAMstructureBase&  operator[](long i);
00090     long  getIndexBase() const;
00091     long  getIndexBound() const;
00092     long  getIndexStride() const;
00093     long  getIndexCount() const;
00094     long  getIndexBaseBase() const;
00095     void  setIndexBase(long i);
00096     void  setIndexStride(long i);
00097     void  setAllIndexBase(long i);
00098     static long  exchangeReferenceIndex(long i);
00099 //
00100 //  
00101 //
00102     long  getFullDataCount()const;
00103     long  getDataCount()const;
00104     int  isSubset() const;
00105     int  isConformingTo(const CAMstructureBase& A) const;
00106     int  isStrictConformingTo(const CAMstructureBase& A) const;
00107     int  isMatrixOpConformingTo(const CAMstructureBase& A) const;
00108     void  getNormalizedLoops(long& loopDimension, long& Offset, MVAlongBase& Count, MVAlongBase& Stride) const;
00109     void  initializeMinStructure(CAMstructureBase& A) const;
00110     void  setStructureSubset(const CAMrange& R1, const CAMrange& R2 = CAMnullRange,
00111    const CAMrange& R3 = CAMnullRange, const CAMrange&R4 = CAMnullRange,
00112    const CAMrange& R5 = CAMnullRange, const CAMrange&R6 = CAMnullRange,
00113    const CAMrange& R7 = CAMnullRange);
00114 //
00115 //  error handling
00116 //
00117     static void  illegalDimension(long i, long dimension);
00118     static void  needToSelectDimension();
00119 
00120 };
00121 
00122 #endif
00123 //
00124 //********************************************************************************
00125 //                     Header File End 
00126 //********************************************************************************
00127 //
00128 
00129 
00130 
00131 
00132 
00133 
00134   

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