This is the Tiny Vector Matrix Expression Templates library found at http://tvmet.sourceforge.net. It is the fastest and most compact matrix lib out there (for < 10x10 matricies). I have done some minor tweaks to make it compile for mbed. For examples and hints on how to use, see: http://tvmet.sourceforge.net/usage.html
Dependents: Eurobot_2012_Secondary
Functional.h
00001 /* 00002 * Tiny Vector Matrix Library 00003 * Dense Vector Matrix Libary of Tiny size using Expression Templates 00004 * 00005 * Copyright (C) 2001 - 2007 Olaf Petzold <opetzold@users.sourceforge.net> 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 * 00021 * $Id: Functional.h,v 1.11 2007-06-23 15:58:58 opetzold Exp $ 00022 */ 00023 00024 #ifndef TVMET_FUNCTIONAL_H 00025 #define TVMET_FUNCTIONAL_H 00026 00027 #include <tvmet/TypePromotion.h> 00028 00029 namespace tvmet { 00030 00031 00032 /** 00033 * \class Functional Functional.h "tvmet/Functional.h" 00034 * \brief Base class for all binary und unary functionals. 00035 * 00036 * All functional operators and functions have a static apply 00037 * member function for evaluating the expressions inside. 00038 */ 00039 struct Functional { }; 00040 00041 00042 /** 00043 * \class BinaryFunctional Functional.h "tvmet/Functional.h" 00044 * \brief Base class for all binary functions. 00045 * \note Used for collecting classes for doxygen. 00046 */ 00047 struct BinaryFunctional : public Functional { }; 00048 00049 00050 /** 00051 * \class UnaryFunctional Functional.h "tvmet/Functional.h" 00052 * \brief Base class for all unary functions. 00053 * \note Used for collecting classes for doxygen. 00054 */ 00055 struct UnaryFunctional : public Functional { }; 00056 00057 00058 /* 00059 * some macro magic need below 00060 */ 00061 00062 /** 00063 * \def TVMET_STD_SCOPE(x) 00064 * \brief Simple macro to allow using macros for namespace std functions. 00065 */ 00066 #define TVMET_STD_SCOPE(x) std::x 00067 00068 00069 /** 00070 * \def TVMET_GLOBAL_SCOPE(x) 00071 * \brief Simple macro to allow using macros for global namespace functions. 00072 */ 00073 #define TVMET_GLOBAL_SCOPE(x) ::x 00074 00075 00076 } // namespace tvmet 00077 00078 00079 #include <tvmet/BinaryFunctionals.h> 00080 #include <tvmet/UnaryFunctionals.h> 00081 00082 00083 #endif // TVMET_FUNCTIONAL_H 00084 00085 // Local Variables: 00086 // mode:C++ 00087 // tab-width:8 00088 // End:
Generated on Tue Jul 12 2022 19:00:11 by 1.7.2