Home | History | Annotate | Download | only in parallel
      1 // -*- C++ -*-
      2 
      3 // Copyright (C) 2007-2013 Free Software Foundation, Inc.
      4 //
      5 // This file is part of the GNU ISO C++ Library.  This library is free
      6 // software; you can redistribute it and/or modify it under the terms
      7 // of the GNU General Public License as published by the Free Software
      8 // Foundation; either version 3, or (at your option) any later
      9 // version.
     10 
     11 // This library is distributed in the hope that it will be useful, but
     12 // WITHOUT ANY WARRANTY; without even the implied warranty of
     13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14 // General Public License for more details.
     15 
     16 // Under Section 7 of GPL version 3, you are granted additional
     17 // permissions described in the GCC Runtime Library Exception, version
     18 // 3.1, as published by the Free Software Foundation.
     19 
     20 // You should have received a copy of the GNU General Public License and
     21 // a copy of the GCC Runtime Library Exception along with this program;
     22 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     23 // <http://www.gnu.org/licenses/>.
     24 
     25 /** @file parallel/features.h
     26  *  @brief Defines on whether to include algorithm variants.
     27  *
     28  *  Less variants reduce executable size and compile time.
     29  *  This file is a GNU parallel extension to the Standard C++ Library.
     30  */
     31 
     32 // Written by Johannes Singler.
     33 
     34 #ifndef _GLIBCXX_PARALLEL_FEATURES_H
     35 #define _GLIBCXX_PARALLEL_FEATURES_H 1
     36 
     37 #ifndef _GLIBCXX_MERGESORT
     38 /** @def _GLIBCXX_MERGESORT
     39  *  @brief Include parallel multi-way mergesort.
     40  *  @see __gnu_parallel::_Settings::sort_algorithm */
     41 #define _GLIBCXX_MERGESORT 1
     42 #endif
     43 
     44 #ifndef _GLIBCXX_QUICKSORT
     45 /** @def _GLIBCXX_QUICKSORT
     46  *  @brief Include parallel unbalanced quicksort.
     47  *  @see __gnu_parallel::_Settings::sort_algorithm */
     48 #define _GLIBCXX_QUICKSORT 1
     49 #endif
     50 
     51 #ifndef _GLIBCXX_BAL_QUICKSORT
     52 /** @def _GLIBCXX_BAL_QUICKSORT
     53  *  @brief Include parallel dynamically load-balanced quicksort.
     54  *  @see __gnu_parallel::_Settings::sort_algorithm */
     55 #define _GLIBCXX_BAL_QUICKSORT 1
     56 #endif
     57 
     58 #ifndef _GLIBCXX_FIND_GROWING_BLOCKS
     59 /** @brief Include the growing blocks variant for std::find.
     60  *  @see __gnu_parallel::_Settings::find_algorithm */
     61 #define _GLIBCXX_FIND_GROWING_BLOCKS 1
     62 #endif
     63 
     64 #ifndef _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS
     65 /** @brief Include the equal-sized blocks variant for std::find.
     66  *  @see __gnu_parallel::_Settings::find_algorithm */
     67 #define _GLIBCXX_FIND_CONSTANT_SIZE_BLOCKS 1
     68 #endif
     69 
     70 #ifndef _GLIBCXX_FIND_EQUAL_SPLIT
     71 /** @def _GLIBCXX_FIND_EQUAL_SPLIT
     72  *  @brief Include the equal splitting variant for std::find.
     73  *  @see __gnu_parallel::_Settings::find_algorithm */
     74 #define _GLIBCXX_FIND_EQUAL_SPLIT 1
     75 #endif
     76 
     77 
     78 #ifndef _GLIBCXX_TREE_INITIAL_SPLITTING
     79 /** @def _GLIBCXX_TREE_INITIAL_SPLITTING
     80  *  @brief Include the initial splitting variant for
     81  *  _Rb_tree::insert_unique(_IIter beg, _IIter __end).
     82  *  @see __gnu_parallel::_Rb_tree */
     83 #define _GLIBCXX_TREE_INITIAL_SPLITTING 1
     84 #endif
     85 
     86 #ifndef _GLIBCXX_TREE_DYNAMIC_BALANCING
     87 /** @def _GLIBCXX_TREE_DYNAMIC_BALANCING
     88  *  @brief Include the dynamic balancing variant for
     89  *  _Rb_tree::insert_unique(_IIter beg, _IIter __end).
     90  *  @see __gnu_parallel::_Rb_tree */
     91 #define _GLIBCXX_TREE_DYNAMIC_BALANCING 1
     92 #endif
     93 
     94 #ifndef _GLIBCXX_TREE_FULL_COPY
     95 /** @def _GLIBCXX_TREE_FULL_COPY
     96  *  @brief In order to sort the input sequence of
     97  *  _Rb_tree::insert_unique(_IIter beg, _IIter __end) a
     98  *  full copy of the input elements is done.
     99  *  @see __gnu_parallel::_Rb_tree */
    100 #define _GLIBCXX_TREE_FULL_COPY 1
    101 #endif
    102 
    103 
    104 #endif /* _GLIBCXX_PARALLEL_FEATURES_H */
    105