ML Reference
MeVis/Foundation/Sources/MLLinearAlgebra/mlVector16.h
Go to the documentation of this file.
00001 // **InsertLicense** code 
00002 //=====================================================================================
00004 
00009 //=====================================================================================
00010 
00011 #ifndef __mlVector16_H
00012 #define __mlVector16_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 Tvec16 : public FloatingPointVector<DT,16> {
00034 public:
00035   
00037   typedef FloatingPointVector<DT,16> Superclass;
00038 
00040   typedef DT ComponentType;
00041   
00042   //--------------------------------------------------------------------
00044 
00045   //--------------------------------------------------------------------
00048   inline explicit Tvec16(const DT value=0) : Superclass(value)
00049   {
00050     ML_TRACE_IN_TIME_CRITICAL("Tvec16::Tvec16(DT value=0)");
00051   }
00052   
00054   inline Tvec16(const Tvec16<DT>& v) : Superclass(v)
00055   {
00056     ML_TRACE_IN_TIME_CRITICAL("Tvec16::Tvec16(const Tvec16<DT>& v)");
00057   }
00058   
00062   inline Tvec16(const Superclass &v) : Superclass(v)
00063   {
00064     ML_TRACE_IN_TIME_CRITICAL("Tvec16::Tvec16(const Superclass &v)");
00065   }
00066   
00068   inline Tvec16(const DT x00, const DT x01, const DT x02, const DT x03,
00069                 const DT x04, const DT x05, const DT x06, const DT x07,
00070                 const DT x08, const DT x09, const DT x10, const DT x11,
00071                 const DT x12, const DT x13, const DT x14, const DT x15)
00072   {
00073     ML_TRACE_IN_TIME_CRITICAL("Tvec16::Tvec16(DT x00, ... , DT x15)");
00074     
00075     assign(x00, x01, x02, x03, x04, x05, x06, x07,
00076            x08, x09, x10, x11, x12, x13, x14, x15);
00077   }
00079   
00080   //--------------------------------------------------------------------
00082 
00083   //--------------------------------------------------------------------
00085   inline void assign(const DT x00, const DT x01, const DT x02, const DT x03,
00086                      const DT x04, const DT x05, const DT x06, const DT x07,
00087                      const DT x08, const DT x09, const DT x10, const DT x11,
00088                      const DT x12, const DT x13, const DT x14, const DT x15)
00089   {
00090     ML_TRACE_IN_TIME_CRITICAL("Tvec16::assign(DT x00, ... , DT x15)");
00091     
00092     Superclass::_buffer[ 0]=x00; 
00093     Superclass::_buffer[ 1]=x01; 
00094     Superclass::_buffer[ 2]=x02; 
00095     Superclass::_buffer[ 3]=x03;
00096     Superclass::_buffer[ 4]=x04; 
00097     Superclass::_buffer[ 5]=x05; 
00098     Superclass::_buffer[ 6]=x06; 
00099     Superclass::_buffer[ 7]=x07;
00100     Superclass::_buffer[ 8]=x08; 
00101     Superclass::_buffer[ 9]=x09; 
00102     Superclass::_buffer[10]=x10; 
00103     Superclass::_buffer[11]=x11;
00104     Superclass::_buffer[12]=x12; 
00105     Superclass::_buffer[13]=x13; 
00106     Superclass::_buffer[14]=x14; 
00107     Superclass::_buffer[15]=x15;
00108   }
00109 };
00110 
00111 
00112 //-----------------------------------------------------------------------------------
00114 
00115 //-----------------------------------------------------------------------------------
00117 typedef Tvec16<MLfloat>   Vector16f;
00119 typedef Tvec16<MLdouble>  Vector16d;
00121 typedef Tvec16<MLldouble> Vector16ld;
00123 typedef Tvec16<MLdouble>  Vector16;
00125 
00126 
00127 #ifdef ML_DEPRECATED
00128 
00129 
00130 
00131 
00132 ML_DEPRECATED typedef Tvec16<MLfloat>   vecf16;
00135 ML_DEPRECATED typedef Tvec16<MLdouble>  vecd16;
00138 ML_DEPRECATED typedef Tvec16<MLldouble> vecld16;
00141 ML_DEPRECATED typedef Tvec16<MLdouble> vec16;
00143 
00144 #endif // ML_DEPRECATED
00145 
00146 
00147 ML_LA_END_NAMESPACE
00148 
00149 #endif //of __mlVector16_H
00150 
00151