Main MRPT website > C++ reference
MRPT logo

Settings.h

Go to the documentation of this file.
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