[f8179c] | 1 | /* emacs edit mode for this file is -*- C++ -*- */ |
---|
[e8e516] | 2 | |
---|
| 3 | //{{{ docu |
---|
| 4 | // |
---|
| 5 | // ftmpl_inst.cc - Factory's template instantiations. |
---|
| 6 | // |
---|
| 7 | // For a detailed description how to instantiate Factory's |
---|
| 8 | // template classes and functions and how to add new |
---|
| 9 | // instantiations see the `README' file. |
---|
| 10 | // |
---|
| 11 | //}}} |
---|
[f8179c] | 12 | |
---|
[16f511] | 13 | #ifdef HAVE_CONFIG_H |
---|
[e4fe2b] | 14 | #include "config.h" |
---|
[16f511] | 15 | #endif /* HAVE_CONFIG_H */ |
---|
[f8179c] | 16 | |
---|
[32248f] | 17 | // #include <factory/factoryconf.h> |
---|
| 18 | // #include "factory.h" |
---|
| 19 | #include "cf_iter.h" |
---|
| 20 | #include "canonicalform.h" |
---|
| 21 | #include "cf_assert.h" |
---|
| 22 | #include "cf_reval.h" |
---|
| 23 | #include "cf_map.h" |
---|
[f8179c] | 24 | |
---|
[1450c9] | 25 | |
---|
[e4fe2b] | 26 | #include "templates/ftmpl_array.cc" |
---|
[f224fda] | 27 | #include "templates/ftmpl_afactor.cc" |
---|
[e4fe2b] | 28 | #include "templates/ftmpl_factor.cc" |
---|
| 29 | #include "templates/ftmpl_list.cc" |
---|
| 30 | #include "templates/ftmpl_functions.h" |
---|
| 31 | #include "templates/ftmpl_matrix.cc" |
---|
| 32 | |
---|
[31a2be7] | 33 | |
---|
[e8e516] | 34 | //{{{ explicit template class instantiations |
---|
[f8179c] | 35 | template class Factor<CanonicalForm>; |
---|
| 36 | template class List<CFFactor>; |
---|
[e8e516] | 37 | template class ListItem<CFFactor>; |
---|
[f8179c] | 38 | template class ListIterator<CFFactor>; |
---|
[f224fda] | 39 | template class AFactor<CanonicalForm>; |
---|
| 40 | template class List<CFAFactor>; |
---|
| 41 | template class ListItem<CFAFactor>; |
---|
| 42 | template class ListIterator<CFAFactor>; |
---|
[f8179c] | 43 | template class List<CanonicalForm>; |
---|
[e8e516] | 44 | template class ListItem<CanonicalForm>; |
---|
[f8179c] | 45 | template class ListIterator<CanonicalForm>; |
---|
| 46 | template class Array<CanonicalForm>; |
---|
| 47 | template class List<MapPair>; |
---|
[e8e516] | 48 | template class ListItem<MapPair>; |
---|
[f8179c] | 49 | template class ListIterator<MapPair>; |
---|
| 50 | template class Matrix<CanonicalForm>; |
---|
| 51 | template class SubMatrix<CanonicalForm>; |
---|
| 52 | template class Array<REvaluation>; |
---|
[f40e20] | 53 | // libfac: |
---|
[1d277d] | 54 | template class Array<int>; |
---|
| 55 | template class Array<Variable>; |
---|
[f40e20] | 56 | template class List<Variable>; |
---|
[4447a0] | 57 | template class ListItem<Variable>; |
---|
[f40e20] | 58 | template class ListIterator<Variable> ; |
---|
[1d277d] | 59 | template class List<int>; |
---|
[4447a0] | 60 | template class ListItem<int>; |
---|
[1d277d] | 61 | template class ListIterator<int>; |
---|
| 62 | template class List< List<int> >; |
---|
[4447a0] | 63 | template class ListItem< List<int> >; |
---|
[1d277d] | 64 | template class ListIterator< List<int> >; |
---|
| 65 | template class List< List<CanonicalForm> >; |
---|
[35564a5] | 66 | template class ListItem< List<CanonicalForm> >; |
---|
[1d277d] | 67 | template class ListIterator< List<CanonicalForm> >; |
---|
| 68 | |
---|
[f40e20] | 69 | template List<Variable> Union ( const List<Variable>&, const List<Variable>& ); |
---|
| 70 | template List<Variable> Difference ( const List<Variable>&, const List<Variable>& ); |
---|
| 71 | |
---|
[9af5e1f] | 72 | // NTL 6 |
---|
| 73 | #ifdef HAVE_NTL |
---|
| 74 | #include<NTL/version.h> |
---|
| 75 | #if NTL_MAJOR_VERSION == 6 |
---|
| 76 | |
---|
| 77 | #include<NTL/tools.h> |
---|
| 78 | #include<NTL/lzz_pE.h> |
---|
| 79 | #include<NTL/lzz_pEX.h> |
---|
| 80 | #include<NTL/lzz_p.h> |
---|
| 81 | #include<NTL/vector.h> |
---|
| 82 | #include<NTL/pair.h> |
---|
| 83 | #include<NTL/GF2X.h> |
---|
| 84 | #include<NTL/GF2EX.h> |
---|
| 85 | #include<NTL/ZZ.h> |
---|
| 86 | #include<NTL/ZZX.h> |
---|
| 87 | #include<NTL/ZZ_pX.h> |
---|
| 88 | #include<NTL/vector.h> |
---|
| 89 | #ifdef NTL_CLIENT // in <NTL/tools.h>: using of name space NTL |
---|
| 90 | NTL_CLIENT |
---|
| 91 | #endif |
---|
| 92 | template void BlockDestroy<zz_pE> (zz_pE*, long); |
---|
| 93 | template void BlockConstruct<zz_pE> (zz_pE*, long); |
---|
| 94 | template void BlockDestroy<Pair<zz_pEX, long> > (Pair<zz_pEX, long>*, long); |
---|
| 95 | template void BlockDestroy<Pair<GF2EX, long> > (Pair<GF2EX, long>*, long); |
---|
| 96 | template void BlockDestroy<Pair<ZZX, long> > (Pair<ZZX, long>*, long); |
---|
| 97 | template void BlockDestroy<Pair<ZZ_pX, long> > (Pair<ZZ_pX, long>*, long); |
---|
| 98 | template void BlockDestroy<Pair<GF2X, long> > (Pair<GF2X, long>*, long); |
---|
| 99 | template void BlockDestroy<Vec<zz_pE> > (Vec<zz_pE>*, long); |
---|
| 100 | template class Vec<zz_p>; |
---|
| 101 | template class Vec<Vec<zz_p> >; |
---|
| 102 | template class Vec<zz_pE>; |
---|
| 103 | template class Vec<ZZ>; |
---|
| 104 | template class Vec<Vec<ZZ> >; |
---|
| 105 | template class Mat<zz_p>; |
---|
| 106 | template class Mat<zz_pE>; |
---|
| 107 | template class Mat<ZZ>; |
---|
| 108 | template class Vec<Pair<zz_pEX, long> >; |
---|
| 109 | template class Vec<Pair<GF2EX, long> >; |
---|
| 110 | template class Vec<Pair<ZZX, long> >; |
---|
| 111 | template class Vec<Pair<ZZ_pX, long> >; |
---|
| 112 | template class Vec<Pair<GF2X, long> >; |
---|
| 113 | template class Vec<Vec<zz_pE> >; |
---|
| 114 | template void swap<zz_pE>(Vec<zz_pE>&, Vec<zz_pE>&); |
---|
| 115 | template long operator==<zz_p>(Vec<zz_p> const&, Vec<zz_p> const&); |
---|
| 116 | #endif |
---|
| 117 | #endif |
---|
| 118 | |
---|
[e8e516] | 119 | //}}} |
---|
[f8179c] | 120 | |
---|
[e8e516] | 121 | //{{{ explicit template function instantiations |
---|
[f8179c] | 122 | #ifndef NOSTREAMIO |
---|
[181148] | 123 | template OSTREAM & operator << ( OSTREAM &, const List<CanonicalForm> & ); |
---|
| 124 | template OSTREAM & operator << ( OSTREAM &, const List<CFFactor> & ); |
---|
| 125 | template OSTREAM & operator << ( OSTREAM &, const List<MapPair> & ); |
---|
| 126 | template OSTREAM & operator << ( OSTREAM &, const Array<CanonicalForm> & ); |
---|
| 127 | template OSTREAM & operator << ( OSTREAM &, const Factor<CanonicalForm> & ); |
---|
| 128 | template OSTREAM & operator << ( OSTREAM &, const Matrix<CanonicalForm> & ); |
---|
| 129 | template OSTREAM & operator << ( OSTREAM &, const Array<REvaluation> & ); |
---|
[9af5e1f] | 130 | //template OSTREAM & operator << ( OSTREAM &, const AFactor<CanonicalForm> & ); |
---|
[f8179c] | 131 | #endif /* NOSTREAMIO */ |
---|
| 132 | |
---|
[e8e516] | 133 | template int operator == ( const Factor<CanonicalForm> &, const Factor<CanonicalForm> & ); |
---|
[102a88e] | 134 | template int operator == ( const AFactor<CanonicalForm> &, const AFactor<CanonicalForm> & ); |
---|
[f8179c] | 135 | |
---|
[e8e516] | 136 | template List<CFFactor> Union ( const List<CFFactor> &, const List<CFFactor> & ); |
---|
[102a88e] | 137 | template List<CFAFactor> Union ( const List<CFAFactor> &, const List<CFAFactor> & ); |
---|
[f8179c] | 138 | |
---|
[dd19ed] | 139 | #if ! defined(WINNT) || defined(__GNUC__) |
---|
[e8e516] | 140 | template CanonicalForm tmax ( const CanonicalForm &, const CanonicalForm & ); |
---|
| 141 | template CanonicalForm tmin ( const CanonicalForm &, const CanonicalForm & ); |
---|
[f8179c] | 142 | |
---|
[b240ff] | 143 | template Variable tmax ( const Variable &, const Variable & ); |
---|
| 144 | template Variable tmin ( const Variable &, const Variable & ); |
---|
| 145 | |
---|
[e8e516] | 146 | template int tmax ( const int &, const int & ); |
---|
| 147 | template int tmin ( const int &, const int & ); |
---|
[dac412] | 148 | template int tabs ( const int & ); |
---|
[31a2be7] | 149 | #endif |
---|
[e8e516] | 150 | //}}} |
---|
[f8179c] | 151 | |
---|
[e8e516] | 152 | // |
---|
[c48e80] | 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&); |
---|
[e8e516] | 157 | // place here your own template stuff, not yet instantiated by factory |
---|
| 158 | // |
---|