Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
FixedVector.h
Go to the documentation of this file.
00001 /********************************************************************
00002 **                Image Component Library (ICL)                    **
00003 **                                                                 **
00004 ** Copyright (C) 2006-2013 CITEC, University of Bielefeld          **
00005 **                         Neuroinformatics Group                  **
00006 ** Website: www.iclcv.org and                                      **
00007 **          http://opensource.cit-ec.de/projects/icl               **
00008 **                                                                 **
00009 ** File   : ICLMath/src/ICLMath/FixedVector.h                      **
00010 ** Module : ICLMath                                                **
00011 ** Authors: Christof Elbrechter                                    **
00012 **                                                                 **
00013 **                                                                 **
00014 ** GNU LESSER GENERAL PUBLIC LICENSE                               **
00015 ** This file may be used under the terms of the GNU Lesser General **
00016 ** Public License version 3.0 as published by the                  **
00017 **                                                                 **
00018 ** Free Software Foundation and appearing in the file LICENSE.LGPL **
00019 ** included in the packaging of this file.  Please review the      **
00020 ** following information to ensure the license requirements will   **
00021 ** be met: http://www.gnu.org/licenses/lgpl-3.0.txt                **
00022 **                                                                 **
00023 ** The development of this software was supported by the           **
00024 ** Excellence Cluster EXC 277 Cognitive Interaction Technology.    **
00025 ** The Excellence Cluster EXC 277 is a grant of the Deutsche       **
00026 ** Forschungsgemeinschaft (DFG) in the context of the German       **
00027 ** Excellence Initiative.                                          **
00028 **                                                                 **
00029 ********************************************************************/
00030 
00031 #pragma once
00032 
00033 #include <ICLUtils/CompatMacros.h>
00034 #include <ICLMath/FixedMatrix.h>
00035 
00036 namespace icl{
00037   namespace math{
00038     
00039     template<class T, int DIM>
00040     struct FixedColVector : public FixedMatrix<T, 1, DIM>{
00041       typedef FixedMatrix<T,1,DIM> super;
00042       FixedColVector(){}
00043       FixedColVector(const T &init):super(init){}
00044       FixedColVector(const T *srcData):super(srcData){}
00045       FixedColVector(const FixedMatrix<T,1,DIM> &other):super(other){}
00046       FixedColVector(const T&v0,const T&v1, const T&v2=0, const T&v3=0, const T&v4=0, const T&v5=0, 
00047                      const T&v6=0,const T&v7=0, const T&v8=0, const T&v9=0, const T&v10=0, const T&v11=0):
00048       super(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11){}
00049   
00050       template<class Iterator>
00051       FixedColVector (const FixedMatrixPart<T,DIM,Iterator> &r):super(r){}
00052   
00053       template<class otherT, class Iterator>
00054       FixedColVector(const FixedMatrixPart<otherT,DIM,Iterator> &r):super(r){}
00055   
00056     
00057     };
00058   
00059     
00060     template<class T, int DIM>
00061     struct FixedRowVector : public FixedMatrix<T, DIM, 1>{
00062       typedef FixedMatrix<T,DIM,1> super;
00063       FixedRowVector(){}
00064       FixedRowVector(const T &init):super(init){}
00065       FixedRowVector(const T *srcData):super(srcData){}
00066       FixedRowVector(const FixedMatrix<T,DIM,1> &other):super(other){}
00067       FixedRowVector(const T&v0,const T&v1, const T&v2=0, const T&v3=0, const T&v4=0, const T&v5=0, 
00068                      const T&v6=0,const T&v7=0, const T&v8=0, const T&v9=0, const T&v10=0, const T&v11=0):
00069       super(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11){}
00070   
00071       template<class Iterator>
00072       FixedRowVector (const FixedMatrixPart<T,DIM,Iterator> &r):super(r){}
00073   
00074       template<class otherT, class Iterator>
00075       FixedRowVector(const FixedMatrixPart<otherT,DIM,Iterator> &r):super(r){}
00076   
00077     };
00078     
00079     
00080     
00081   } // namespace math
00082 }
00083 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines