ML Reference
MeVis/Foundation/Sources/MLLinearAlgebra/mlVector32.h
Go to the documentation of this file.
00001 // **InsertLicense** code 
00002 //=====================================================================================
00004 
00009 //=====================================================================================
00010 
00011 #ifndef __mlVector32_H
00012 #define __mlVector32_H
00013 
00014 // Include system independency file and project settings.
00015 #ifndef __mlLinearAlgebraSystem_H
00016 #include "mlLinearAlgebraSystem.h"
00017 #endif
00018 #ifndef __mlLinearAlgebraDefs_H
00019 #include "mlLinearAlgebraDefs.h"
00020 #endif
00021 #ifndef __mlFloatingPointVector_H
00022 #include "mlFloatingPointVector.h"
00023 #endif
00024 
00025 // All declarations of this header will be in the ML_LA_NAMESPACE namespace.
00026 ML_LA_START_NAMESPACE
00027 
00028 //--------------------------------------------------------------------
00030 //--------------------------------------------------------------------
00032 template <class DT>
00033 class Tvec32 : public FloatingPointVector<DT,32> {
00034 public:
00035   
00037   typedef DT ComponentType;
00038   
00039   //--------------------------------------------------------------------
00041 
00042   //--------------------------------------------------------------------
00045   inline explicit Tvec32(DT value=0) : FloatingPointVector<DT,32>(value)
00046   {
00047     ML_TRACE_IN_TIME_CRITICAL("Tvec32::Tvec32(const DT value=0)");
00048   }
00049   
00051   inline Tvec32(const Tvec32<DT>& v) : FloatingPointVector<DT,32>(v)
00052   {
00053     ML_TRACE_IN_TIME_CRITICAL("Tvec32::Tvec32(const Tvec32<DT>& v)");
00054   }
00055   
00059   inline Tvec32(const FloatingPointVector<DT,32>& v) : FloatingPointVector<DT,32>(v)
00060   {
00061     ML_TRACE_IN_TIME_CRITICAL("Tvec32::Tvec32(const FloatingPointVector<DT,32>& v)");
00062   }
00063   
00065   inline Tvec32(const DT x00, const DT x01, const DT x02, const DT x03,
00066                 const DT x04, const DT x05, const DT x06, const DT x07,
00067                 const DT x08, const DT x09, const DT x10, const DT x11,
00068                 const DT x12, const DT x13, const DT x14, const DT x15,
00069                 const DT x16, const DT x17, const DT x18, const DT x19,
00070                 const DT x20, const DT x21, const DT x22, const DT x23,
00071                 const DT x24, const DT x25, const DT x26, const DT x27,
00072                 const DT x28, const DT x29, const DT x30, const DT x31)
00073   {
00074     ML_TRACE_IN_TIME_CRITICAL("Tvec32::Tvec32(const DT x00, ..., const DT x31)");
00075     
00076     assign(x00, x01, x02, x03, x04, x05, x06, x07,
00077            x08, x09, x10, x11, x12, x13, x14, x15,
00078            x16, x17, x18, x19, x20, x21, x22, x23,
00079            x24, x25, x26, x27, x28, x29, x30, x31);
00080   }
00082   
00083   //--------------------------------------------------------------------
00085 
00086   //--------------------------------------------------------------------
00088   inline void assign(const DT x00, const DT x01, const DT x02, const DT x03,
00089                      const DT x04, const DT x05, const DT x06, const DT x07,
00090                      const DT x08, const DT x09, const DT x10, const DT x11,
00091                      const DT x12, const DT x13, const DT x14, const DT x15,
00092                      const DT x16, const DT x17, const DT x18, const DT x19,
00093                      const DT x20, const DT x21, const DT x22, const DT x23,
00094                      const DT x24, const DT x25, const DT x26, const DT x27,
00095                      const DT x28, const DT x29, const DT x30, const DT x31)
00096   {
00097     ML_TRACE_IN_TIME_CRITICAL("Tvec32::assign(const DT x00, ..., const DT x31)");
00098     
00099     FloatingPointVector<DT,32>::_buffer[ 0]=x00; 
00100     FloatingPointVector<DT,32>::_buffer[ 1]=x01; 
00101     FloatingPointVector<DT,32>::_buffer[ 2]=x02; 
00102     FloatingPointVector<DT,32>::_buffer[ 3]=x03;
00103     FloatingPointVector<DT,32>::_buffer[ 4]=x04; 
00104     FloatingPointVector<DT,32>::_buffer[ 5]=x05; 
00105     FloatingPointVector<DT,32>::_buffer[ 6]=x06; 
00106     FloatingPointVector<DT,32>::_buffer[ 7]=x07;
00107     FloatingPointVector<DT,32>::_buffer[ 8]=x08; 
00108     FloatingPointVector<DT,32>::_buffer[ 9]=x09; 
00109     FloatingPointVector<DT,32>::_buffer[10]=x10; 
00110     FloatingPointVector<DT,32>::_buffer[11]=x11;
00111     FloatingPointVector<DT,32>::_buffer[12]=x12; 
00112     FloatingPointVector<DT,32>::_buffer[13]=x13; 
00113     FloatingPointVector<DT,32>::_buffer[14]=x14; 
00114     FloatingPointVector<DT,32>::_buffer[15]=x15;
00115     FloatingPointVector<DT,32>::_buffer[16]=x16; 
00116     FloatingPointVector<DT,32>::_buffer[17]=x17; 
00117     FloatingPointVector<DT,32>::_buffer[18]=x18; 
00118     FloatingPointVector<DT,32>::_buffer[19]=x19;
00119     FloatingPointVector<DT,32>::_buffer[20]=x20; 
00120     FloatingPointVector<DT,32>::_buffer[21]=x21; 
00121     FloatingPointVector<DT,32>::_buffer[22]=x22; 
00122     FloatingPointVector<DT,32>::_buffer[23]=x23;
00123     FloatingPointVector<DT,32>::_buffer[24]=x24; 
00124     FloatingPointVector<DT,32>::_buffer[25]=x25; 
00125     FloatingPointVector<DT,32>::_buffer[26]=x26; 
00126     FloatingPointVector<DT,32>::_buffer[27]=x27;
00127     FloatingPointVector<DT,32>::_buffer[28]=x28; 
00128     FloatingPointVector<DT,32>::_buffer[29]=x29; 
00129     FloatingPointVector<DT,32>::_buffer[30]=x30; 
00130     FloatingPointVector<DT,32>::_buffer[31]=x31;
00131   }
00133 };
00134 
00135 
00136 //-----------------------------------------------------------------------------------
00138 
00139 //-----------------------------------------------------------------------------------
00141 typedef Tvec32<MLfloat>   Vector32f;
00143 typedef Tvec32<MLdouble>  Vector32d;
00145 typedef Tvec32<MLldouble> Vector32ld;
00147 typedef Tvec32<MLdouble>  Vector32;
00149 
00150 
00151 #ifdef ML_DEPRECATED
00152 
00153 
00154 
00155 
00156 ML_DEPRECATED typedef Tvec32<MLfloat>   vecf32;
00159 ML_DEPRECATED typedef Tvec32<MLdouble>  vecd32;
00162 ML_DEPRECATED typedef Tvec32<MLldouble> vecld32;
00165 ML_DEPRECATED typedef Tvec32<MLdouble> vec32;
00167 
00168 #endif // ML_DEPRECATED
00169 
00170 
00171 ML_LA_END_NAMESPACE
00172 
00173 #endif //of __mlVector32_H
00174 
00175