ftmpl_afactor.h
Go to the documentation of this file.
1 /* emacs edit mode for this file is -*- C++ -*- */
2 
3 #ifndef INCL_AFACTOR_H
4 #define INCL_AFACTOR_H
5 
6 #ifndef NOSTREAMIO
7 #ifdef HAVE_IOSTREAM
8 #include <iostream>
9 #define OSTREAM std::ostream
10 #elif defined(HAVE_IOSTREAM_H)
11 #include <iostream.h>
12 #define OSTREAM ostream
13 #endif
14 #endif /* NOSTREAMIO */
15 
16 template <class T>
17 class AFactor {
18 private:
21  int _exp;
22 public:
23  AFactor() : _factor(1), _minpoly (1), _exp(0) {}
24  AFactor( const AFactor<T> & f ) : _factor(f._factor), _minpoly (f._minpoly), _exp(f._exp) {}
25  AFactor( const T & f, const T & m, int e ) : _factor(f), _minpoly (m), _exp(e) {}
26  AFactor( const T & f, const T & m ) : _factor(f), _minpoly (m), _exp(1) {}
27  ~AFactor() {}
28  AFactor<T>& operator= ( const AFactor<T>& );
29  T factor() const { return _factor; }
30  T minpoly() const { return _minpoly; }
31  int exp() const { return _exp; }
32  T value() const { return power( _factor, _exp ); }
33 #ifndef NOSTREAMIO
34  void print ( OSTREAM& ) const;
35 #endif /* NOSTREAMIO */
36 };
37 
38 template <class T> int
39 operator== ( const AFactor<T>&, const AFactor<T>& );
40 
41 #ifndef NOSTREAMIO
42 template <class T>
43 OSTREAM& operator<< ( OSTREAM & os, const AFactor<T> & f );
44 #endif /* NOSTREAMIO */
45 
46 #endif /* ! INCL_AFACTOR_H */
T value() const
Definition: ftmpl_afactor.h:32
CanonicalForm power(const CanonicalForm &f, int n)
exponentiation
AFactor(const T &f, const T &m, int e)
Definition: ftmpl_afactor.h:25
AFactor(const AFactor< T > &f)
Definition: ftmpl_afactor.h:24
int operator==(const AFactor< T > &, const AFactor< T > &)
T factor() const
Definition: ftmpl_afactor.h:29
int exp() const
Definition: ftmpl_afactor.h:31
#define OSTREAM
Definition: ftmpl_afactor.h:9
AFactor(const T &f, const T &m)
Definition: ftmpl_afactor.h:26
T minpoly() const
Definition: ftmpl_afactor.h:30
int m
Definition: cfEzgcd.cc:121
FILE * f
Definition: checklibs.c:9
void print(OSTREAM &) const
static jList * T
Definition: janet.cc:31
AFactor< T > & operator=(const AFactor< T > &)
Definition: ftmpl_afactor.cc:6