ftmpl_inst.cc
Go to the documentation of this file.
1 /* emacs edit mode for this file is -*- C++ -*- */
2 
3 /**
4  *
5  * @file ftmpl_inst.cc
6  *
7  * Factory's template instantiations.
8  *
9  * For a detailed description how to instantiate Factory's
10  * template classes and functions and how to add new
11  * instantiations see the `README' file.
12  *
13 **/
14 
15 
16 #include "config.h"
17 
18 
19 // #include <factory/factoryconf.h>
20 // #include "factory.h"
21 #include "cf_iter.h"
22 #include "canonicalform.h"
23 #include "cf_assert.h"
24 #include "cf_reval.h"
25 #include "cf_map.h"
26 
27 
28 #include "templates/ftmpl_array.cc"
31 #include "templates/ftmpl_list.cc"
34 
35 
36 /** explicit template class instantiations **/
37 template class Factor<CanonicalForm>;
38 template class List<CFFactor>;
39 template class ListItem<CFFactor>;
40 template class ListIterator<CFFactor>;
41 template class AFactor<CanonicalForm>;
42 template class List<CFAFactor>;
43 template class ListItem<CFAFactor>;
44 template class ListIterator<CFAFactor>;
45 template class List<CanonicalForm>;
46 template class ListItem<CanonicalForm>;
47 template class ListIterator<CanonicalForm>;
48 template class Array<CanonicalForm>;
49 template class List<MapPair>;
50 template class ListItem<MapPair>;
51 template class ListIterator<MapPair>;
52 template class Matrix<CanonicalForm>;
53 template class SubMatrix<CanonicalForm>;
54 template class Array<REvaluation>;
55 // libfac:
56 template class Array<int>;
57 template class Array<Variable>;
58 template class List<Variable>;
59 template class ListItem<Variable>;
60 template class ListIterator<Variable> ;
61 template class List<int>;
62 template class ListItem<int>;
63 template class ListIterator<int>;
64 template class List< List<int> >;
65 template class ListItem< List<int> >;
66 template class ListIterator< List<int> >;
67 template class List< List<CanonicalForm> >;
68 template class ListItem< List<CanonicalForm> >;
69 template class ListIterator< List<CanonicalForm> >;
70 
71 template List<Variable> Union ( const List<Variable>&, const List<Variable>& );
72 template List<Variable> Difference ( const List<Variable>&, const List<Variable>& );
73 
74 // NTL 6
75 #ifdef HAVE_NTL
76 #include<NTL/version.h>
77 #if NTL_MAJOR_VERSION == 6
78 
79 #include<NTL/tools.h>
80 #include<NTL/lzz_pE.h>
81 #include<NTL/lzz_pEX.h>
82 #include<NTL/lzz_p.h>
83 #include<NTL/vector.h>
84 #include<NTL/pair.h>
85 #include<NTL/GF2X.h>
86 #include<NTL/GF2EX.h>
87 #include<NTL/ZZ.h>
88 #include<NTL/ZZX.h>
89 #include<NTL/ZZ_pX.h>
90 #include<NTL/vector.h>
91 #ifdef NTL_CLIENT // in <NTL/tools.h>: using of name space NTL
92 NTL_CLIENT
93 #endif
94 template void BlockDestroy<zz_pE> (zz_pE*, long);
95 template void BlockConstruct<zz_pE> (zz_pE*, long);
96 template void BlockDestroy<Pair<zz_pEX, long> > (Pair<zz_pEX, long>*, long);
97 template void BlockDestroy<Pair<GF2EX, long> > (Pair<GF2EX, long>*, long);
98 template void BlockDestroy<Pair<ZZX, long> > (Pair<ZZX, long>*, long);
99 template void BlockDestroy<Pair<ZZ_pX, long> > (Pair<ZZ_pX, long>*, long);
100 template void BlockDestroy<Pair<GF2X, long> > (Pair<GF2X, long>*, long);
101 template void BlockDestroy<Vec<zz_pE> > (Vec<zz_pE>*, long);
102 template class Vec<zz_p>;
103 template class Vec<Vec<zz_p> >;
104 template class Vec<zz_pE>;
105 template class Vec<ZZ>;
106 template class Vec<Vec<ZZ> >;
107 template class Mat<zz_p>;
108 template class Mat<zz_pE>;
109 template class Mat<ZZ>;
110 template class Vec<Pair<zz_pEX, long> >;
111 template class Vec<Pair<GF2EX, long> >;
112 template class Vec<Pair<ZZX, long> >;
113 template class Vec<Pair<ZZ_pX, long> >;
114 template class Vec<Pair<GF2X, long> >;
115 template class Vec<Vec<zz_pE> >;
116 template void swap<zz_pE>(Vec<zz_pE>&, Vec<zz_pE>&);
117 template long operator==<zz_p>(Vec<zz_p> const&, Vec<zz_p> const&);
118 #endif
119 #endif
120 
121 
122 /** explicit template function instantiations **/
123 #ifndef NOSTREAMIO
124 template OSTREAM & operator << ( OSTREAM &, const List<CanonicalForm> & );
125 template OSTREAM & operator << ( OSTREAM &, const List<CFFactor> & );
126 template OSTREAM & operator << ( OSTREAM &, const List<MapPair> & );
127 template OSTREAM & operator << ( OSTREAM &, const Array<CanonicalForm> & );
128 template OSTREAM & operator << ( OSTREAM &, const Factor<CanonicalForm> & );
129 template OSTREAM & operator << ( OSTREAM &, const Matrix<CanonicalForm> & );
130 template OSTREAM & operator << ( OSTREAM &, const Array<REvaluation> & );
131 //template OSTREAM & operator << ( OSTREAM &, const AFactor<CanonicalForm> & );
132 #endif /* NOSTREAMIO */
133 
134 template int operator == ( const Factor<CanonicalForm> &, const Factor<CanonicalForm> & );
135 template int operator == ( const AFactor<CanonicalForm> &, const AFactor<CanonicalForm> & );
136 
137 template List<CFFactor> Union ( const List<CFFactor> &, const List<CFFactor> & );
138 template List<CFAFactor> Union ( const List<CFAFactor> &, const List<CFAFactor> & );
139 
140 #if ! defined(WINNT) || defined(__GNUC__)
141 template CanonicalForm tmax ( const CanonicalForm &, const CanonicalForm & );
142 template CanonicalForm tmin ( const CanonicalForm &, const CanonicalForm & );
143 
144 template Variable tmax ( const Variable &, const Variable & );
145 template Variable tmin ( const Variable &, const Variable & );
146 
147 template int tmax ( const int &, const int & );
148 template int tmin ( const int &, const int & );
149 template int tabs ( const int & );
150 #endif
151 
152 //
153 template int operator== (const List<CanonicalForm> &, const List<CanonicalForm> &);
155 template List<CFList> Union ( const List<CFList>&, const List<CFList>&);
159 
160 template CanonicalForm prod ( const List<CanonicalForm> & );
161 template bool find ( const List<CanonicalForm> &, const CanonicalForm&);
162 template bool find ( const List<List<CanonicalForm> >&, const List<CanonicalForm>&);
163 // place here your own template stuff, not yet instantiated by factory
164 //
some useful template functions.
template CanonicalForm tmax(const CanonicalForm &, const CanonicalForm &)
factory's class for variables
Definition: variable.h:32
generate random evaluation points
factory's main class
Definition: canonicalform.h:75
assertions for Factory
template int operator==(const Factor< CanonicalForm > &, const Factor< CanonicalForm > &)
template bool find(const List< CanonicalForm > &, const CanonicalForm &)
map polynomials
template List< Variable > Union(const List< Variable > &, const List< Variable > &)
Iterators for CanonicalForm's.
template int tabs(const int &)
template CanonicalForm prod(const List< CanonicalForm > &)
#define OSTREAM
Definition: canonicalform.h:16
template List< Variable > Difference(const List< Variable > &, const List< Variable > &)
Header for factory's main class CanonicalForm.
template CanonicalForm tmin(const CanonicalForm &, const CanonicalForm &)