source: git/factory/fac_util.h @ 5b2d2b

spielwiese
Last change on this file since 5b2d2b was 5b2d2b, checked in by Martin Lee <martinlee84@…>, 11 years ago
fix: gcd_test_one now checks for coprimality over extension chg: gcd_test_one returns degree of gcd used to check for coprimality
  • Property mode set to 100644
File size: 1.8 KB
Line 
1/* emacs edit mode for this file is -*- C++ -*- */
2
3#ifndef INCL_FAC_UTIL_H
4#define INCL_FAC_UTIL_H
5
6// #include "config.h"
7
8#include "canonicalform.h"
9#include "cf_eval.h"
10
11/*BEGINPUBLIC*/
12
13class modpk
14{
15private:
16    CanonicalForm pk;
17    CanonicalForm pkhalf;
18    int p;
19    int k;
20public:
21    modpk();
22    modpk( int q, int l );
23    modpk( const modpk & m );
24    modpk& operator= ( const modpk& m );
25    ~modpk() {}
26    int getp() const { return p; }
27    int getk() const { return k; }
28    CanonicalForm inverse( const CanonicalForm & f, bool symmetric = true ) const;
29    CanonicalForm getpk() const { return pk; }
30    CanonicalForm operator() ( const CanonicalForm & f, bool symmetric = true ) const;
31};
32
33
34CanonicalForm replaceLc( const CanonicalForm & f, const CanonicalForm & c );
35
36CanonicalForm remainder( const CanonicalForm & f, const CanonicalForm & g, const modpk & pk );
37
38void divremainder( const CanonicalForm & f, const CanonicalForm & g, CanonicalForm & quot, CanonicalForm & rem, const modpk & pk );
39
40bool Hensel ( const CanonicalForm & U, CFArray & G, const CFArray & lcG, const Evaluation & A, const modpk & bound, const Variable & x );
41
42/* some special array functions */
43
44CanonicalForm sum ( const CFArray & a, int f, int l );
45
46CanonicalForm prod ( const CFArray & a, int f, int l );
47
48CanonicalForm sum ( const CFArray & a );
49
50CanonicalForm prod ( const CFArray & a );
51
52CanonicalForm crossprod ( const CFArray & a, const CFArray & b );
53
54/*ENDPUBLIC*/
55
56bool gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap, int & d );
57
58CanonicalForm ezgcd ( const CanonicalForm & f, const CanonicalForm & g );
59
60void extgcd ( const CanonicalForm & a, const CanonicalForm & b, CanonicalForm & S, CanonicalForm & T, const modpk & pk );
61
62#endif /* ! INCL_FAC_UTIL_H */
Note: See TracBrowser for help on using the repository browser.