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" |
---|
29 | #include "templates/ftmpl_afactor.cc" |
---|
30 | #include "templates/ftmpl_factor.cc" |
---|
31 | #include "templates/ftmpl_list.cc" |
---|
32 | #include "templates/ftmpl_functions.h" |
---|
33 | #include "templates/ftmpl_matrix.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 List<CanonicalForm> Union ( const List<CanonicalForm> &, const List<CanonicalForm> & ); |
---|
154 | template List<CanonicalForm> Difference ( const List<CanonicalForm> &, const List<CanonicalForm> & ); |
---|
155 | template CanonicalForm prod ( const List<CanonicalForm> & ); |
---|
156 | template bool find ( const List<CanonicalForm> &, const CanonicalForm&); |
---|
157 | // place here your own template stuff, not yet instantiated by factory |
---|
158 | // |
---|