source: git/Singular/claptmpl.cc @ f88e07

spielwiese
Last change on this file since f88e07 was f88e07, checked in by Oleksandr Motsak <motsak@…>, 11 years ago
Explicit template instantiation
  • Property mode set to 100644
File size: 4.6 KB
Line 
1// emacs edit mode for this file is -*- C++ -*-
2/****************************************
3*  Computer Algebra System SINGULAR     *
4****************************************/
5/*
6* ABSTRACT - instantiation of all templates
7*/
8
9#ifdef HAVE_CONFIG_H
10#include "config.h"
11#endif /* HAVE_CONFIG_H */
12#include <kernel/mod2.h>
13//#include <vector>
14//using namespace std;
15#ifdef HAVE_FACTORY
16  #define SINGULAR 1
17  #include <factory/factory.h>
18  #include <factory/templates/ftmpl_list.cc>
19  #include <kernel/fglm.h>
20
21// templates for fglm:
22
23  template class List<fglmSelem>;
24  template class ListIterator<fglmSelem>;
25
26  template class List<fglmDelem>;
27  template class ListIterator<fglmDelem>;
28#endif
29
30// ----------------------------------------------------------------------------
31//  kmatrix.cc
32//  begin of file
33//  Stephan Endrass, endrass@mathematik.uni-mainz.de
34//  23.7.99
35// ----------------------------------------------------------------------------
36
37#ifdef HAVE_SPECTRUM
38
39#ifdef   KMATRIX_PRINT
40#include <iostream.h>
41#ifndef   KMATRIX_IOSTREAM
42#include <stdio.h>
43#endif
44#endif
45
46#include <kernel/GMPrat.h>
47#include <kernel/kmatrix.h>
48
49template    class   KMatrix<Rational>;
50
51#ifdef   KMATRIX_PRINT
52template    OSTREAM &   operator << ( OSTREAM&,const KMatrix<Rational>& );
53template    static  void    print_rational( OSTREAM&,int,const Rational& );
54#endif
55
56#endif /* HAVE_SPECTRUM */
57// ----------------------------------------------------------------------------
58//  kmatrix.cc
59//  end of file
60// ----------------------------------------------------------------------------
61
62#ifdef HAVE_PLURAL
63
64#include <polys/nc/ncSAMult.h> // for CMultiplier etc classes
65
66template class CMultiplier<int>;
67template class CMultiplier<poly>;
68template class CMultiplier<CPower>;
69
70// #include <kernel/ncSACache.h> // for CCacheHash etc classes
71// template class CCacheHash<poly>;
72// template class CCacheHash<int>;
73
74#endif
75
76#include <kernel/tgb_internal.h>
77#ifdef HAVE_BOOST
78#include <boost/dynamic_bitset.hpp>
79#include <vector>
80using std::vector;
81using boost::dynamic_bitset;
82template class dynamic_bitset<>;
83template class vector<dynamic_bitset<> >;
84#elif defined(USE_STDVECBOOL)
85#include <vector>
86using std::vector;
87template class vector<bool>;
88template class vector<vector<bool> >;
89#endif
90
91template int pos_helper(kStrategy strat, poly p, int len, intset  setL, polyset set);
92template int pos_helper(kStrategy strat, poly p, wlen_type len, wlen_set setL, polyset set);
93#ifdef NORO_CACHE
94//template class std::map<PolySimple,std::pair<PolySimple,int> >;
95//#include <queue>
96template class std::vector<PolySimple>;
97//template class std::priority_queue<MonRedRes>;
98//template class std::vector<NoroPlaceHolder>;
99//template class std::vector<std::vector<NoroPlaceHolder> >;
100//template class std::vector<DataNoroCacheNode<tgb_uint16>* >;
101//template class std::vector<DataNoroCacheNode<tgb_uint8>* >;
102template class std::vector<DataNoroCacheNode<tgb_uint32>* >;
103//template SparseRow<tgb_uint16> * noro_red_to_non_poly_t<tgb_uint16>(poly p, int &len, NoroCache<tgb_uint16>* cache,slimgb_alg* c);
104template SparseRow<tgb_uint32>* noro_red_to_non_poly_t<tgb_uint32>(poly p, int &len, NoroCache<tgb_uint32>* cache,slimgb_alg* c);
105//template SparseRow<tgb_uint8>* noro_red_to_non_poly_t<tgb_uint8>(poly p, int &len, NoroCache<tgb_uint8>* cache,slimgb_alg* c);
106//template void simplest_gauss_modp<tgb_uint16> (tgb_uint16* a, int nrows,int ncols);
107template void simplest_gauss_modp<tgb_uint32> (tgb_uint32* a, int nrows,int ncols);
108//template void simplest_gauss_modp<tgb_uint8> (tgb_uint8* a, int nrows,int ncols);
109//template poly row_to_poly<tgb_uint8>(tgb_uint8* row, poly* terms, int tn, ring r);
110template poly row_to_poly<tgb_uint32>(tgb_uint32* row, poly* terms, int tn, ring r);
111//template poly row_to_poly<tgb_uint16>(tgb_uint16* row, poly* terms, int tn, ring r);
112template void noro_step<tgb_uint8>(poly*p,int &pn,slimgb_alg* c);
113template void noro_step<tgb_uint16>(poly*p,int &pn,slimgb_alg* c);
114template void noro_step<tgb_uint32>(poly*p,int &pn,slimgb_alg* c);
115//std::priority_queue<MonRedRes>
116//
117#endif
118
119/* next lines are templates used in new minor code */
120#include <list>
121#include <Singular/Minor.h>
122#include <Singular/Cache.h>
123
124template class std::list<int>;
125template class std::list<MinorKey>;
126template class std::list<IntMinorValue>;
127template class std::list<PolyMinorValue>;
128
129
130/*
131template class std::_List_base<IntMinorValue, std::allocator<IntMinorValue> >;
132template class std::_List_base<int, std::allocator<int> >;
133template class std::_List_base<MinorKey, std::allocator<MinorKey> >;
134template class std::_List_base<PolyMinorValue, std::allocator<PolyMinorValue> >;
135*/
136
137template class Cache<MinorKey, IntMinorValue>;
138template class Cache<MinorKey, PolyMinorValue>;
139
Note: See TracBrowser for help on using the repository browser.