MC_INST.cpp
Go to the documentation of this file.
1 // Copyright (C) 2000, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #include "BCP_os.hpp"
4 
5 //#############################################################################
6 #ifdef NEED_EXPLICIT_INSTANTIATION
7 
8 #include <algorithm>
9 #include <numeric>
10 
11 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
12 template const int *
13 std::find(int const *, int const *, int const &, random_access_iterator_tag);
14 
15 template double
16 std::inner_product(double const *, double const *, double const *, double);
17 #endif
18 
19 //#############################################################################
20 
21 #include "MC_cut.hpp"
22 
23 //#############################################################################
24 
25 #include "MC.hpp"
26 #include "BCP_vector.hpp"
27 #include "templates/BCP_vector_general.cpp"
28 
29 template class BCP_vec<MC_graph_edge>;
30 template class BCP_vec<MC_graph_node>;
31 
32 //#############################################################################
33 
34 template double
35 inner_product(double *, double *, double *, double);
36 
37 template double *
38 rotate(double *, double *, double *);
39 template double *
40 __rotate(double *, double *, double *,
41  BCP_PtrDiff *, bidirectional_iterator_tag);
42 
43 //#############################################################################
44 
45 // beats me why is this needed...
46 
47 template void
48 __reverse(double *, double *, bidirectional_iterator_tag);
49 template void
50 __reverse(double *, double *, random_access_iterator_tag);
51 
52 //#############################################################################
53 
54 class BCP_cut;
55 template void std::sort(BCP_cut **, BCP_cut **,
56  bool(*)(BCP_cut const *, BCP_cut const *));
57 
58 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
59 template void
60 __final_insertion_sort(BCP_cut **, BCP_cut **,
61  bool(*)(BCP_cut const *, BCP_cut const *));
62 template void
63 __introsort_loop(BCP_cut **, BCP_cut **, BCP_cut **,
64  BCP_PtrDiff,
65  bool(*)(BCP_cut const *, BCP_cut const *));
66 #endif
67 
68 //#############################################################################
69 
70 class BCP_cut;
71 class BCP_row;
72 typedef std::pair<BCP_cut*, BCP_row*> cut_row_pair;
73 
74 template void
75 std::sort(cut_row_pair *, cut_row_pair *,
76  bool (*)(cut_row_pair const &, cut_row_pair const &));
77 
78 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
79 template void
80 __final_insertion_sort(cut_row_pair *, cut_row_pair *,
81  bool(*)(cut_row_pair const &, cut_row_pair const &));
82 template void
83 __introsort_loop(cut_row_pair *, cut_row_pair *, cut_row_pair *,
84  BCP_PtrDiff,
85  bool(*)(cut_row_pair const &, cut_row_pair const &));
86 #endif
87 
88 //#############################################################################
89 
90 #include <vector>
91 #include <queue>
92 #include "MC.hpp"
93 template class
94 std::priority_queue<MC_path_node*,
95  std::vector<MC_path_node*>,
97 
98 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
99 template class
100 std::vector<MC_path_node*>;
101 #endif
102 
103 #ifdef NEED_IMPLICIT_TEMPLATE_FUNCTIONS
104 template void
105 __push_heap(MC_path_node **, BCP_PtrDiff, BCP_PtrDiff,
106  MC_path_node *, MC_path_node_ptr_compare);
107 template void
108 __adjust_heap(MC_path_node **, BCP_PtrDiff, BCP_PtrDiff,
109  MC_path_node *, MC_path_node_ptr_compare);
110 #endif
111 
112 //#############################################################################
113 
114 #include <map>
115 typedef std::pair<int,int> intpair;
116 template class
117 std::map<intpair, int>;
118 
119 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
120 template class
121 std::_Rb_tree<intpair,
122  std::pair<const intpair, int>,
123  std::_Select1st<std::pair<const intpair, int> >,
124  std::less<intpair>,
125  std::allocator<int> >;
126 #endif
127 
128 
129 //#############################################################################
130 
131 #include <set>
132 
133 template class std::set<int>;
134 
135 #ifdef NEED_IMPLICIT_TEMPLATE_CLASSES
136 template class
137 std::_Rb_tree<int, int,
138  std::_Identity<int>, std::less<int>, std::allocator<int> >;
139 #endif
140 
141 #endif
Abstract base class that defines members common to all types of cuts.
Definition: BCP_cut.hpp:29
static int
Definition: OSdtoa.cpp:2173
std::pair< int, int > intpair
Definition: MC_init.cpp:197
The class BCP_vec serves the same purpose as the vector class in the standard template library...
Definition: BCP_vector.hpp:24
This class holds a row in a compressed form.
Definition: BCP_matrix.hpp:152