00001 // This file is part of Eigen, a lightweight C++ template library 00002 // for linear algebra. 00003 // 00004 // Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr> 00005 // Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com> 00006 // 00007 // Eigen 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 3 of the License, or (at your option) any later version. 00011 // 00012 // Alternatively, you can redistribute it and/or 00013 // modify it under the terms of the GNU General Public License as 00014 // published by the Free Software Foundation; either version 2 of 00015 // the License, or (at your option) any later version. 00016 // 00017 // Eigen is distributed in the hope that it will be useful, but WITHOUT ANY 00018 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00019 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the 00020 // GNU General Public License for more details. 00021 // 00022 // You should have received a copy of the GNU Lesser General Public 00023 // License and a copy of the GNU General Public License along with 00024 // Eigen. If not, see <http://www.gnu.org/licenses/>. 00025 00026 00027 /* All the parameters defined in this file can be specialized in the 00028 * architecture specific files, and/or by the user. 00029 * More to come... */ 00030 00031 #ifndef EIGEN_DEFAULT_SETTINGS_H 00032 #define EIGEN_DEFAULT_SETTINGS_H 00033 00034 /** Defines the maximal loop size to enable meta unrolling of loops. 00035 * Note that the value here is expressed in Eigen's own notion of "number of FLOPS", 00036 * it does not correspond to the number of iterations or the number of instructions 00037 */ 00038 #ifndef EIGEN_UNROLLING_LIMIT 00039 #define EIGEN_UNROLLING_LIMIT 100 00040 #endif 00041 00042 /** Defines the threshold between a "small" and a "large" matrix. 00043 * This threshold is mainly used to select the proper product implementation. 00044 */ 00045 #ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 00046 #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8 00047 #endif 00048 00049 /** Defines the maximal size in Bytes of blocks fitting in CPU cache. 00050 * The current value is set to generate blocks of 256x256 for float 00051 * 00052 * Typically for a single-threaded application you would set that to 25% of the size of your CPU caches in bytes 00053 */ 00054 #ifndef EIGEN_TUNE_FOR_CPU_CACHE_SIZE 00055 #define EIGEN_TUNE_FOR_CPU_CACHE_SIZE (sizeof(float)*512*512) 00056 #endif 00057 00058 /** Defines the maximal width of the blocks used in the triangular product and solver 00059 * for vectors (level 2 blas xTRMV and xTRSV). The default is 8. 00060 */ 00061 #ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 00062 #define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8 00063 #endif 00064 00065 00066 /** Defines the default number of registers available for that architecture. 00067 * Currently it must be 8 or 16. Other values will fail. 00068 */ 00069 #ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 00070 #define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8 00071 #endif 00072 00073 #endif // EIGEN_DEFAULT_SETTINGS_H
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011 |