00001 // -*- C++ -*- 00002 00003 // Copyright (C) 2007 Free Software Foundation, Inc. 00004 // 00005 // This file is part of the GNU ISO C++ Library. This library is free 00006 // software; you can redistribute it and/or modify it under the terms 00007 // of the GNU General Public License as published by the Free Software 00008 // Foundation; either version 2, or (at your option) any later 00009 // version. 00010 00011 // This library is distributed in the hope that it will be useful, but 00012 // WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // General Public License for more details. 00015 00016 // You should have received a copy of the GNU General Public License 00017 // along with this library; see the file COPYING. If not, write to 00018 // the Free Software Foundation, 59 Temple Place - Suite 330, Boston, 00019 // MA 02111-1307, USA. 00020 00021 // As a special exception, you may use this file as part of a free 00022 // software library without restriction. Specifically, if other files 00023 // instantiate templates or use macros or inline functions from this 00024 // file, or you compile this file and link it with other files to 00025 // produce an executable, this file does not by itself cause the 00026 // resulting executable to be covered by the GNU General Public 00027 // License. This exception does not however invalidate any other 00028 // reasons why the executable file might be covered by the GNU General 00029 // Public License. 00030 00031 /** @file parallel/features.h 00032 * @brief Defines on whether to include algorithm variants. 00033 * 00034 * Less variants reduce executable size and compile time. 00035 * This file is a GNU parallel extension to the Standard C++ Library. 00036 */ 00037 00038 // Written by Johannes Singler. 00039 00040 #ifndef _GLIBCXX_PARALLEL_FEATURES_H 00041 #define _GLIBCXX_PARALLEL_FEATURES_H 1 00042 00043 #ifndef _GLIBCXX_MERGESORT 00044 /** @def _GLIBCXX_MERGESORT 00045 * @brief Include parallel multi-way mergesort. 00046 * @see __gnu_parallel::_Settings::sort_algorithm */ 00047 #define _GLIBCXX_MERGESORT 1 00048 #endif 00049 00050 #ifndef _GLIBCXX_QUICKSORT 00051 /** @def _GLIBCXX_QUICKSORT 00052 * @brief Include parallel unbalanced quicksort. 00053 * @see __gnu_parallel::_Settings::sort_algorithm */ 00054 #define _GLIBCXX_QUICKSORT 1 00055 #endif 00056 00057 #ifndef _GLIBCXX_BAL_QUICKSORT 00058 /** @def _GLIBCXX_BAL_QUICKSORT 00059 * @brief Include parallel dynamically load-balanced quicksort. 00060 * @see __gnu_parallel::_Settings::sort_algorithm */ 00061 #define _GLIBCXX_BAL_QUICKSORT 1 00062 #endif 00063 00064 #ifndef _GLIBCXX_FIND_GROWING_BLOCKS 00065 /** @brief Include the growing blocks variant for std::find. 00066 * @see __gnu_parallel::_Settings::find_algorithm */ 00067 #define _GLIBCXX_FIND_GROWING_BLOCKS 1 00068 #endif 00069 00070 #ifndef _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS 00071 /** @brief Include the equal-sized blocks variant for std::find. 00072 * @see __gnu_parallel::_Settings::find_algorithm */ 00073 #define _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS 1 00074 #endif 00075 00076 #ifndef _GLIBCXX_FIND_EQUAL_SPLIT 00077 /** @def _GLIBCXX_FIND_EQUAL_SPLIT 00078 * @brief Include the equal splitting variant for std::find. 00079 * @see __gnu_parallel::_Settings::find_algorithm */ 00080 #define _GLIBCXX_FIND_EQUAL_SPLIT 1 00081 #endif 00082 00083 00084 #ifndef _GLIBCXX_TREE_INITIAL_SPLITTING 00085 /** @def _GLIBCXX_TREE_INITIAL_SPLITTING 00086 * @brief Include the initial splitting variant for 00087 * _Rb_tree::insert_unique(InputIterator beg, InputIterator end). 00088 * @see __gnu_parallel::_Rb_tree */ 00089 #define _GLIBCXX_TREE_INITIAL_SPLITTING 1 00090 #endif 00091 00092 #ifndef _GLIBCXX_TREE_DYNAMIC_BALANCING 00093 /** @def _GLIBCXX_TREE_DYNAMIC_BALANCING 00094 * @brief Include the dynamic balancing variant for 00095 * _Rb_tree::insert_unique(InputIterator beg, InputIterator end). 00096 * @see __gnu_parallel::_Rb_tree */ 00097 #define _GLIBCXX_TREE_DYNAMIC_BALANCING 1 00098 #endif 00099 00100 #ifndef _GLIBCXX_TREE_FULL_COPY 00101 /** @def _GLIBCXX_TREE_FULL_COPY 00102 * @brief In order to sort the input sequence of 00103 * _Rb_tree::insert_unique(InputIterator beg, InputIterator end) a 00104 * full copy of the input elements is done. 00105 * @see __gnu_parallel::_Rb_tree */ 00106 #define _GLIBCXX_TREE_FULL_COPY 1 00107 #endif 00108 00109 00110 #endif