00001
00002
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
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