ML Reference
|
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