/home/coin/SVN-release/OS-2.4.1/Bcp/examples/MaxCut/Member/MC_INST.cpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #include "BCP_os.hpp"
00004 
00005 //#############################################################################
00006 #ifdef NEED_EXPLICIT_INSTANTIATION
00007 
00008 #include <algorithm>
00009 #include <numeric>
00010 
00011 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
00012 template const int *
00013 std::find(int const *, int const *, int const &, random_access_iterator_tag);
00014 
00015 template double
00016 std::inner_product(double const *, double const *, double const *, double);
00017 #endif
00018 
00019 //#############################################################################
00020 
00021 #include "MC_cut.hpp"
00022 
00023 //#############################################################################
00024 
00025 #include "MC.hpp"
00026 #include "BCP_vector.hpp"
00027 #include "templates/BCP_vector_general.cpp"
00028 
00029 template class BCP_vec<MC_graph_edge>;
00030 template class BCP_vec<MC_graph_node>;
00031 
00032 //#############################################################################
00033 
00034 template double 
00035 inner_product(double *, double *, double *, double);
00036 
00037 template double *
00038 rotate(double *, double *, double *);
00039 template double *
00040 __rotate(double *, double *, double *,
00041          BCP_PtrDiff *, bidirectional_iterator_tag);
00042 
00043 //#############################################################################
00044 
00045 // beats me why is this needed...
00046 
00047 template void
00048 __reverse(double *, double *, bidirectional_iterator_tag);
00049 template void
00050 __reverse(double *, double *, random_access_iterator_tag);
00051 
00052 //#############################################################################
00053 
00054 class BCP_cut;
00055 template void std::sort(BCP_cut **, BCP_cut **,
00056                         bool(*)(BCP_cut const *, BCP_cut const *));
00057 
00058 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
00059 template void
00060 __final_insertion_sort(BCP_cut **, BCP_cut **,
00061                        bool(*)(BCP_cut const *, BCP_cut const *));
00062 template void
00063 __introsort_loop(BCP_cut **, BCP_cut **, BCP_cut **,
00064                  BCP_PtrDiff,
00065                  bool(*)(BCP_cut const *, BCP_cut const *));
00066 #endif
00067 
00068 //#############################################################################
00069 
00070 class BCP_cut;
00071 class BCP_row;
00072 typedef std::pair<BCP_cut*, BCP_row*> cut_row_pair;
00073 
00074 template void
00075 std::sort(cut_row_pair *, cut_row_pair *,
00076           bool (*)(cut_row_pair const &, cut_row_pair const &));
00077 
00078 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
00079 template void
00080 __final_insertion_sort(cut_row_pair *, cut_row_pair *,
00081                        bool(*)(cut_row_pair const &, cut_row_pair const &));
00082 template void
00083 __introsort_loop(cut_row_pair *, cut_row_pair *, cut_row_pair *,
00084                  BCP_PtrDiff,
00085                  bool(*)(cut_row_pair const &, cut_row_pair const &));
00086 #endif
00087 
00088 //#############################################################################
00089 
00090 #include <vector>
00091 #include <queue>
00092 #include "MC.hpp"
00093 template class
00094 std::priority_queue<MC_path_node*,
00095                     std::vector<MC_path_node*>,
00096                     MC_path_node_ptr_compare>;
00097 
00098 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
00099 template class 
00100 std::vector<MC_path_node*>;
00101 #endif
00102 
00103 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
00104 template void
00105 __push_heap(MC_path_node **, BCP_PtrDiff, BCP_PtrDiff,
00106             MC_path_node *, MC_path_node_ptr_compare);
00107 template void
00108 __adjust_heap(MC_path_node **, BCP_PtrDiff, BCP_PtrDiff,
00109               MC_path_node *, MC_path_node_ptr_compare);
00110 #endif
00111 
00112 //#############################################################################
00113 
00114 #include <map>
00115 typedef std::pair<int,int> intpair;
00116 template class
00117 std::map<intpair, int>;
00118 
00119 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
00120 template class
00121 std::_Rb_tree<intpair, 
00122               std::pair<const intpair, int>, 
00123               std::_Select1st<std::pair<const intpair, int> >, 
00124               std::less<intpair>, 
00125               std::allocator<int> >;
00126 #endif
00127 
00128 
00129 //#############################################################################
00130 
00131 #include <set>
00132 
00133 template class std::set<int>;
00134 
00135 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
00136 template class
00137 std::_Rb_tree<int, int,
00138               std::_Identity<int>, std::less<int>, std::allocator<int> >;
00139 #endif
00140 
00141 #endif

Generated on Thu Nov 10 03:05:37 2011 by  doxygen 1.4.7