source: git/factory/facAbsBiFact.h @ 9ee586

spielwiese
Last change on this file since 9ee586 was 5cfbda, checked in by Martin Lee <martinlee84@…>, 10 years ago
chg: better docu for absFactorize
  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*****************************************************************************\
2 * Computer Algebra System SINGULAR
3\*****************************************************************************/
4/** @file facAbsBiFact.h
5 *
6 * bivariate absolute factorization over Q described in "Modular Las Vegas
7 * Algorithms for Polynomial Absolute Factorization" by Bertone, ChÚze, Galligo
8 *
9 * @author Martin Lee
10 *
11 **/
12/*****************************************************************************/
13
14#ifndef FAC_ABS_BI_FACT_H
15#define FAC_ABS_BI_FACT_H
16
17#include "canonicalform.h"
18
19#ifdef HAVE_NTL
20/// main absolute factorization routine, expects bivariate poly which is
21/// irreducible over Q
22///
23/// @return absBiFactorizeMain returns a list whose entries contain three
24///         entities:
25///         an absolute irreducible factor, an irreducible univariate polynomial
26///         that defines the minimal field extension over which the irreducible
27///         factor is defined (note: in case the factor is already defined over
28///         Q[t]/(t), 1 is returned as defining poly), and the
29///         multiplicity of the absolute irreducible factor
30CFAFList absBiFactorizeMain (const CanonicalForm& F, ///<[in] s.a.
31                             bool full= false        ///<[in] true if all
32                                                     ///< factors should be
33                                                     ///< returned
34                            );
35#endif
36
37/// normalize factors, i.e. make factors monic
38static inline
39void normalize (CFAFList & L)
40{
41  for (CFAFListIterator i= L; i.hasItem(); i++)
42    i.getItem()= CFAFactor (i.getItem().factor()/Lc (i.getItem().factor()),
43                            i.getItem().minpoly(), i.getItem().exp());
44}
45
46/// univariate absolute factorization over Q
47///
48/// @return uniAbsFactorize returns a list whose entries contain three entities:
49///         an absolute irreducible factor, an irreducible univariate polynomial
50///         that defines the minimal field extension over which the irreducible
51///         factor is defined (note: in case the factor is already defined over
52///         Q[t]/(t), 1 is returned as defining poly), and the multiplicity of
53///         the absolute irreducible factor
54CFAFList uniAbsFactorize (const CanonicalForm& F, ///<[in] univariate poly
55                                                  ///< irreducible over Q
56                          bool full= false        ///<[in] true if all factors
57                                                  ///< should be returned
58                         );
59
60#endif
Note: See TracBrowser for help on using the repository browser.