# features.h

Go to the documentation of this file.

    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_LOSER_TREE
    00065 /** @def _GLIBCXX_LOSER_TREE
    00066  *  @brief Include guarded (sequences may run empty) loser tree,
    00067  *  moving objects.
    00068  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00069 #define _GLIBCXX_LOSER_TREE 1
    00070 #endif
    00071
    00072 #ifndef _GLIBCXX_LOSER_TREE_EXPLICIT
    00073 /** @def _GLIBCXX_LOSER_TREE_EXPLICIT
    00074  *  @brief Include standard loser tree, storing two flags for infimum
    00075  *  and supremum.
    00076  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00077 #define _GLIBCXX_LOSER_TREE_EXPLICIT 0
    00078 #endif
    00079
    00080 #ifndef _GLIBCXX_LOSER_TREE_REFERENCE
    00081 /** @def _GLIBCXX_LOSER_TREE_REFERENCE
    00082  *  @brief Include some loser tree variant.
    00083  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00084 #define _GLIBCXX_LOSER_TREE_REFERENCE 0
    00085 #endif
    00086
    00087 #ifndef _GLIBCXX_LOSER_TREE_POINTER
    00088 /** @def _GLIBCXX_LOSER_TREE_POINTER
    00089  *  @brief Include some loser tree variant.
    00090  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00091 #define _GLIBCXX_LOSER_TREE_POINTER 1
    00092 #endif
    00093
    00094 #ifndef _GLIBCXX_LOSER_TREE_UNGUARDED
    00095 /** @def _GLIBCXX_LOSER_TREE_UNGUARDED
    00096  *  @brief Include unguarded (sequences must not run empty) loser
    00097  *  tree, moving objects.
    00098  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00099 #define _GLIBCXX_LOSER_TREE_UNGUARDED 0
    00100 #endif
    00101
    00102 #ifndef _GLIBCXX_LOSER_TREE_POINTER_UNGUARDED
    00103 /** @def _GLIBCXX_LOSER_TREE_POINTER_UNGUARDED
    00104  *  @brief Include some loser tree variant.
    00105  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00106 #define _GLIBCXX_LOSER_TREE_POINTER_UNGUARDED 1
    00107 #endif
    00108
    00109 #ifndef _GLIBCXX_LOSER_TREE_COMBINED
    00110 /** @def _GLIBCXX_LOSER_TREE_COMBINED
    00111  *  @brief Include some loser tree variant.
    00112  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00113 #define _GLIBCXX_LOSER_TREE_COMBINED 0
    00114 #endif
    00115
    00116 #ifndef _GLIBCXX_LOSER_TREE_SENTINEL
    00117 /** @def _GLIBCXX_LOSER_TREE_SENTINEL
    00118  *  @brief Include some loser tree variant.
    00119  *  @see __gnu_parallel::_Settings multiway_merge_algorithm */
    00120 #define _GLIBCXX_LOSER_TREE_SENTINEL 0
    00121 #endif
    00122
    00123
    00124 #ifndef _GLIBCXX_FIND_GROWING_BLOCKS
    00125 /** @brief Include the growing blocks variant for std::find.
    00126  *  @see __gnu_parallel::_Settings::find_algorithm */
    00127 #define _GLIBCXX_FIND_GROWING_BLOCKS 1
    00128 #endif
    00129
    00130 #ifndef _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS
    00131 /** @brief Include the equal-sized blocks variant for std::find.
    00132  *  @see __gnu_parallel::_Settings::find_algorithm */
    00133 #define _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS 1
    00134 #endif
    00135
    00136 #ifndef _GLIBCXX_FIND_EQUAL_SPLIT
    00137 /** @def _GLIBCXX_FIND_EQUAL_SPLIT
    00138  *  @brief Include the equal splitting variant for std::find.
    00139  *  @see __gnu_parallel::_Settings::find_algorithm */
    00140 #define _GLIBCXX_FIND_EQUAL_SPLIT 1
    00141 #endif
    00142
    00143
    00144 #ifndef _GLIBCXX_TREE_INITIAL_SPLITTING
    00145 /** @def _GLIBCXX_TREE_INITIAL_SPLITTING
    00146  *  @brief Include the initial splitting variant for
    00147  *  _Rb_tree::insert_unique(InputIterator beg, InputIterator end).
    00148  *  @see __gnu_parallel::_Rb_tree */
    00149 #define _GLIBCXX_TREE_INITIAL_SPLITTING 1
    00150 #endif
    00151
    00152 #ifndef _GLIBCXX_TREE_DYNAMIC_BALANCING
    00153 /** @def _GLIBCXX_TREE_DYNAMIC_BALANCING
    00154  *  @brief Include the dynamic balancing variant for
    00155  *  _Rb_tree::insert_unique(InputIterator beg, InputIterator end).
    00156  *  @see __gnu_parallel::_Rb_tree */
    00157 #define _GLIBCXX_TREE_DYNAMIC_BALANCING 1
    00158 #endif
    00159
    00160 #ifndef _GLIBCXX_TREE_FULL_COPY
    00161 /** @def _GLIBCXX_TREE_FULL_COPY
    00162  *  @brief In order to sort the input sequence of
    00163  *  _Rb_tree::insert_unique(InputIterator beg, InputIterator end) a
    00164  *  full copy of the input elements is done.
    00165  *  @see __gnu_parallel::_Rb_tree */
    00166 #define _GLIBCXX_TREE_FULL_COPY 1
    00167 #endif
    00168
    00169
    00170 #endif