My Project  debian-1:4.1.2-p1+ds-2
cfNTLzzpEXGCD.h
Go to the documentation of this file.
1 /*****************************************************************************\
2  * Computer Algebra System SINGULAR
3 \*****************************************************************************/
4 /** @file cfNTLzzpEXGCD.h
5  *
6  * This file defines functions for univariate GCD and extended GCD
7  * over Z/p[t]/(f)[x] for reducible f
8  *
9  * @note the following code is slightly modified code out of
10  * lzz_pEX.h from Victor Shoup's NTL. Below is NTL's copyright notice.
11  *
12  * ABSTRACT: Langemyr, McCallum "The Computation of Polynomial Greatest Common
13  * Divisors over an algebraic number fields"
14  *
15  * @author Martin Lee
16  *
17 
18 
19  COPYRIGHT NOTICE
20  for NTL 5.5
21  (modified for Singular 2-0-6 - 3-1)
22 
23 NTL -- A Library for Doing Number Theory
24 Copyright (C) 1996-2009 Victor Shoup
25 
26 The most recent version of NTL is available at http://www.shoup.net
27 
28 This program is free software; you can redistribute it and/or
29 modify it under the terms of the GNU General Public License
30 as published by the Free Software Foundation; either version 2
31 of the License, or (at your option) any later version.
32 
33 This program is distributed in the hope that it will be useful,
34 but WITHOUT ANY WARRANTY; without even the implied warranty of
35 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36 GNU General Public License for more details.
37 
38 You should have received a copy of the GNU General Public License
39 along with this program; if not, write to the Free Software
40 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
41 
42 This entire copyright notice should be placed in an appropriately
43 conspicuous place accompanying all distributions of software that
44 make use of NTL.
45 
46 The above terms apply to all of the software modules distributed with NTL,
47 i.e., all source files in either the ntl-xxx.tar.gz or WinNTL-xxx.zip
48 distributions. In general, the individual files do not contain
49 copyright notices.
50 
51 Note that the quad_float package is derived from the doubledouble package,
52 originally developed by Keith Briggs, and also licensed unger the GNU GPL.
53 The files quad_float.c and quad_float.h contain more detailed copyright
54 notices.
55 
56 Note that the traditional long integer package used by NTL, lip.c, is derived
57 from---and represents an extensive modification of---
58 a package originally developed and copyrighted by Arjen Lenstra,
59 who has agreed to renounce any copyright claims on the particular
60 version of the long integer package appearing in NTL, so that the
61 this package now is covered by the GNU GPL as well.
62 
63 Note that the alternative long integer package used by NTL is GMP,
64 which is written by Torbjorn Granlund <tege@swox.com>.
65 GMP is licensed under the terms of the GNU Lesser General Public License.
66 
67 Note that NTL makes use of the RSA Data Security, Inc. MD5 Message
68 Digest Algorithm.
69 
70 Note that prior to version 4.0, NTL was distributed under the following terms:
71  NTL is freely available for research and educational purposes.
72  I don't want to attach any legalistic licensing restrictions on
73  users of NTL.
74  However, NTL should not be linked in a commercial program
75  (although using data in a commercial
76  product produced by a program that used NTL is fine).
77 
78 The hope is that the GNU GPL is actually less restrictive than these
79 older terms; however, in any circumstances such that GNU GPL is more
80 restrictive, then the following rule is in force:
81 versions prior to 4.0 may continue to be used under the old terms,
82 but users of versions 4.0 or later should adhere to the terms of the GNU GPL.
83 **/
84 
85 
86 #ifndef CF_NTL_ZZ_PEX_GCD_H
87 #define CF_NTL_ZZ_PEX_GCD_H
88 
89 // #include "config.h"
90 
91 #ifdef HAVE_NTL
92 #include "NTLconvert.h"
93 #endif
94 
95 #ifdef HAVE_NTL
96 /// compute the GCD x of a and b, fail is set to true if a zero divisor is
97 /// encountered
98 void tryNTLGCD(zz_pEX& x, ///<[in,out] GCD of a and b
99  const zz_pEX& a,///<[in] s.a.
100  const zz_pEX& b,///<[in] s.a.
101  bool& fail ///<[in,out] s.a.
102  );
103 
104 /// compute the extended GCD d=s*a+t*b, fail is set to true if a zero divisor is
105 /// encountered
106 void tryNTLXGCD(zz_pEX& d, ///<[in,out] GCD of a and b
107  zz_pEX& s, ///<[in,out] s. a.
108  zz_pEX& t, ///<[in,out] s. a.
109  const zz_pEX& a,///<[in] s. a.
110  const zz_pEX& b,///<[in] s. a.
111  bool& fail ///<[in,out] s. a.
112  );
113 #endif
114 
115 #endif
x
Variable x
Definition: cfModGcd.cc:4023
tryNTLGCD
void tryNTLGCD(zz_pEX &x, const zz_pEX &a, const zz_pEX &b, bool &fail)
compute the GCD x of a and b, fail is set to true if a zero divisor is encountered
Definition: cfNTLzzpEXGCD.cc:242
tryNTLXGCD
void tryNTLXGCD(zz_pEX &d, zz_pEX &s, zz_pEX &t, const zz_pEX &a, const zz_pEX &b, bool &fail)
compute the extended GCD d=s*a+t*b, fail is set to true if a zero divisor is encountered
Definition: cfNTLzzpEXGCD.cc:281
b
CanonicalForm b
Definition: cfModGcd.cc:4044
NTLconvert.h
s
const CanonicalForm int s
Definition: facAbsFact.cc:55