Changeset 806c18 in git for factory/facFqFactorize.h


Ignore:
Timestamp:
Nov 15, 2010, 4:34:57 PM (13 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
7c3bca08c96331a56864c1d35b8c2e8ff2e0be89
Parents:
c840d97af622b4e4da8761738b540e21144f716b
Message:
format

git-svn-id: file:///usr/local/Singular/svn/trunk@13655 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.h

    rc840d9 r806c18  
    11/*****************************************************************************\
    2  * Computer Algebra System SINGULAR   
     2 * Computer Algebra System SINGULAR
    33\*****************************************************************************/
    44/** @file facFqFactorize.h
    5  * 
     5 *
    66 * This file provides functions for factorizing a multivariate polynomial over
    7  * \f$ F_{p} \f$ , \f$ F_{p}(\alpha ) \f$ or GF.   
     7 * \f$ F_{p} \f$ , \f$ F_{p}(\alpha ) \f$ or GF.
    88 *
    9  * ABSTRACT: So far factor recombination is done naive!       
     9 * ABSTRACT: So far factor recombination is done naive!
    1010 *
    1111 * @author Martin Lee
     
    2929
    3030/// Factorization over a finite field
    31 /// 
     31///
    3232/// @return @a multiFactorize returns a factorization of F
    3333/// @sa biFactorize(), extFactorize()
    34 CFList 
     34CFList
    3535multiFactorize (const CanonicalForm& F,    ///< [in] poly to be factored
    3636                const ExtensionInfo& info  ///< [in] info about extension
     
    3939/// factorize a squarefree multivariate polynomial over \f$ F_{p} \f$
    4040///
    41 /// @return @a FpSqrfFactorize returns a list of monic factors, the first 
    42 ///         element is the leading coefficient.     
     41/// @return @a FpSqrfFactorize returns a list of monic factors, the first
     42///         element is the leading coefficient.
    4343/// @sa FqSqrfFactorize(), GFSqrfFactorize()
    4444inline
    4545CFList FpSqrfFactorize (const CanonicalForm & F ///< [in] a multivariate poly
    46                        ) 
     46                       )
    4747{
    4848  ExtensionInfo info= ExtensionInfo (false);
     
    5454/// factorize a squarefree multivariate polynomial over \f$ F_{p} (\alpha ) \f$
    5555///
    56 /// @return @a FqSqrfFactorize returns a list of monic factors, the first 
    57 ///         element is the leading coefficient.     
    58 /// @sa FpSqrfFactorize(), GFSqrfFactorize() 
     56/// @return @a FqSqrfFactorize returns a list of monic factors, the first
     57///         element is the leading coefficient.
     58/// @sa FpSqrfFactorize(), GFSqrfFactorize()
    5959inline
    6060CFList FqSqrfFactorize (const CanonicalForm & F, ///< [in] a multivariate poly
    6161                        const Variable& alpha    ///< [in] algebraic variable
    62                        ) 
     62                       )
    6363{
    6464  ExtensionInfo info= ExtensionInfo (alpha, false);
     
    6868}
    6969
    70 /// factorize a squarefree multivariate polynomial over GF 
    71 ///
    72 /// @return @a GFSqrfFactorize returns a list of monic factors, the first 
    73 ///         element is the leading coefficient.     
     70/// factorize a squarefree multivariate polynomial over GF
     71///
     72/// @return @a GFSqrfFactorize returns a list of monic factors, the first
     73///         element is the leading coefficient.
    7474/// @sa FpSqrfFactorize(), FqSqrfFactorize()
    7575inline
    7676CFList GFSqrfFactorize (const CanonicalForm & F ///< [in] a multivariate poly
    77                        ) 
     77                       )
    7878{
    79   ASSERT (CFFactory::gettype() == GaloisFieldDomain, 
     79  ASSERT (CFFactory::gettype() == GaloisFieldDomain,
    8080          "GF as base field expected");
    8181  ExtensionInfo info= ExtensionInfo (getGFDegree(), gf_name, false);
     
    8585}
    8686
    87 /// factorize a multivariate polynomial over \f$ F_{p} \f$ 
    88 ///
    89 /// @return @a FpFactorize returns a list of monic factors with 
    90 ///         multiplicity, the first element is the leading coefficient.     
     87/// factorize a multivariate polynomial over \f$ F_{p} \f$
     88///
     89/// @return @a FpFactorize returns a list of monic factors with
     90///         multiplicity, the first element is the leading coefficient.
    9191/// @sa FqFactorize(), GFFactorize()
    9292inline
    9393CFFList FpFactorize (const CanonicalForm& F ///< [in] a multivariate poly
    94                     ) 
     94                    )
    9595{
    9696  ExtensionInfo info= ExtensionInfo (false);
    9797  Variable a= Variable (1);
    98   CanonicalForm LcF= Lc (F); 
     98  CanonicalForm LcF= Lc (F);
    9999  CanonicalForm pthRoot, A;
    100100  CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, a);
     
    114114  }
    115115  else
    116   { 
     116  {
    117117    buf= multiFactorize (sqrfP, info);
    118118    A= F/LcF;
     
    131131/// factorize a multivariate polynomial over \f$ F_{p} (\alpha ) \f$
    132132///
    133 /// @return @a FqFactorize returns a list of monic factors with 
    134 ///         multiplicity, the first element is the leading coefficient.     
     133/// @return @a FqFactorize returns a list of monic factors with
     134///         multiplicity, the first element is the leading coefficient.
    135135/// @sa FpFactorize(), GFFactorize()
    136136inline
    137137CFFList FqFactorize (const CanonicalForm& F, ///< [in] a multivariate poly
    138138                     const Variable& alpha   ///< [in] algebraic variable
    139                     ) 
     139                    )
    140140{
    141   ExtensionInfo info= ExtensionInfo (alpha, false); 
    142   CanonicalForm LcF= Lc (F); 
     141  ExtensionInfo info= ExtensionInfo (alpha, false);
     142  CanonicalForm LcF= Lc (F);
    143143  CanonicalForm pthRoot, A;
    144144  CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, alpha);
     
    159159  }
    160160  else
    161   { 
     161  {
    162162    buf= multiFactorize (sqrfP, info);
    163163    A= F/LcF;
     
    176176/// factorize a multivariate polynomial over GF
    177177///
    178 /// @return @a GFFactorize returns a list of monic factors with 
    179 ///         multiplicity, the first element is the leading coefficient.     
     178/// @return @a GFFactorize returns a list of monic factors with
     179///         multiplicity, the first element is the leading coefficient.
    180180/// @sa FpFactorize(), FqFactorize()
    181181inline
    182182CFFList GFFactorize (const CanonicalForm& F ///< [in] a multivariate poly
    183                     ) 
     183                    )
    184184{
    185   ASSERT (CFFactory::gettype() == GaloisFieldDomain, 
     185  ASSERT (CFFactory::gettype() == GaloisFieldDomain,
    186186          "GF as base field expected");
    187187  Variable a= Variable (1);
    188   ExtensionInfo info= ExtensionInfo (getGFDegree(), gf_name, false); 
     188  ExtensionInfo info= ExtensionInfo (getGFDegree(), gf_name, false);
    189189  CanonicalForm LcF= Lc (F);
    190190  CanonicalForm pthRoot, A;
     
    221221}
    222222
    223 /// compute the content of @a F wrt Variable (1) using routines from 
     223/// compute the content of @a F wrt Variable (1) using routines from
    224224/// @a cf_gcd_smallp.h
    225225///
    226226/// @return @a myContent returns the content of F wrt Variable (1)
    227227static inline
    228 CanonicalForm 
     228CanonicalForm
    229229myContent (const CanonicalForm& F ///< [in] a poly
    230230          );
    231231
    232 /// compute the content of @a F wrt @a x using routines from 
     232/// compute the content of @a F wrt @a x using routines from
    233233/// @a cf_gcd_smallp.h
    234234///
     
    236236static inline
    237237CanonicalForm
    238 myContent (const CanonicalForm& F, ///< [in] a poly 
     238myContent (const CanonicalForm& F, ///< [in] a poly
    239239           const Variable& x       ///< [in] a variable
    240240          );
    241241
    242 /// compute the GCD of all element in @a L using routines from 
     242/// compute the GCD of all element in @a L using routines from
    243243/// @a cf_gcd_smallp.h
    244244///
    245245/// @return @a listGCD returns the GCD of all elements in @a L
    246246static inline
    247 CanonicalForm 
     247CanonicalForm
    248248listGCD (const CFList& L ///< [in] a list of polys
    249249        );
    250250
    251 /// compute the LCM of @a F and @a G using routines from 
     251/// compute the LCM of @a F and @a G using routines from
    252252/// @a cf_gcd_smallp.h
    253253///
     
    262262/// A.
    263263///
    264 /// @return @a lcmContent returns the LCM of the contents of @a A wrt to each 
     264/// @return @a lcmContent returns the LCM of the contents of @a A wrt to each
    265265///         variable occuring in @a A.
    266 static inline 
    267 CanonicalForm 
    268 lcmContent (const CanonicalForm& A, ///< [in] a compressed multivariate poly 
     266static inline
     267CanonicalForm
     268lcmContent (const CanonicalForm& A, ///< [in] a compressed multivariate poly
    269269            CFList& contentAi       ///< [in,out] an empty list, returns a list
    270                                     ///< of the contents of @a A wrt to each 
     270                                    ///< of the contents of @a A wrt to each
    271271                                    ///< variable occuring in @a A starting from
    272272                                    ///< @a A.mvar().
    273273           );
    274274
    275 /// compress a polynomial s.t. \f$ deg_{x_{i}} (F) >= deg_{x_{i+1}} (F) \f$ and 
     275/// compress a polynomial s.t. \f$ deg_{x_{i}} (F) >= deg_{x_{i+1}} (F) \f$ and
    276276/// no gaps between the variables occur
    277277///
     
    279279static inline
    280280CanonicalForm myCompress (const CanonicalForm& F, ///< [in] a poly
    281                           CFMap& N                ///< [in,out] a map to 
     281                          CFMap& N                ///< [in,out] a map to
    282282                                                  ///< decompress
    283283                         );
     
    286286/// Uses precomputed data to exclude combinations that are not possible.
    287287///
    288 /// @return @a monicFactorRecombi returns a list of factors of F, that are 
     288/// @return @a monicFactorRecombi returns a list of factors of F, that are
    289289///         monic wrt Variable (1).
    290290/// @sa extFactorRecombination(), factorRecombination(), biFactorizer()
    291 CFList 
     291CFList
    292292monicFactorRecombi (
    293293                  const CFList& factors,    ///< [in] list of lifted factors
    294294                                            ///< that are monic wrt Variable (1)
    295                   const CanonicalForm& F,   ///< [in] bivariate poly 
     295                  const CanonicalForm& F,   ///< [in] bivariate poly
    296296                  const CanonicalForm& M,   ///< [in] Variable (2)^liftBound
    297297                  const DegreePattern& degs ///< [in] degree pattern
     
    300300/// detects factors of @a F at stage @a deg of Hensel lifting.
    301301/// No combinations of more than one factor are tested. Lift bound and possible
    302 /// degree pattern are updated. 
    303 /// 
    304 /// @return @a earlyMonicFactorDetect returns a list of factors of F (possibly 
     302/// degree pattern are updated.
     303///
     304/// @return @a earlyMonicFactorDetect returns a list of factors of F (possibly
    305305///         incomplete) that are monic wrt Variable (1)
    306306/// @sa monicFactorRecombi(), earlyFactorDetection(), monicFactorDetect(),
    307307///     biFactorizer()
    308 CFList 
     308CFList
    309309earlyMonicFactorDetect (
    310310           CanonicalForm& F,       ///< [in,out] poly to be factored, returns
    311311                                   ///< poly divided by detected factors in case
    312312                                   ///< of success
    313            CFList& factors,        ///< [in,out] list of factors lifted up to 
     313           CFList& factors,        ///< [in,out] list of factors lifted up to
    314314                                   ///< @a deg, returns a list of factors
    315315                                   ///< without detected factors
     
    319319           bool& success,          ///< [in,out] indicating success
    320320           int deg,                ///< [in] stage of Hensel lifting
    321            const int bound         ///< [in] degree (A, 2) + 1 + 
     321           const int bound         ///< [in] degree (A, 2) + 1 +
    322322                                   ///< degree (LC (A, 1), 2), where A is the
    323323                                   ///< multivariate polynomial corresponding to
    324                                    ///< F. 
     324                                   ///< F.
    325325                       );
    326326
    327 /// Bivariate factorization. In contrast to biFactorize() the factors returned 
     327/// Bivariate factorization. In contrast to biFactorize() the factors returned
    328328/// are monic wrt Variable (1), if @a F is not irreducible. And no factorization
    329 /// wrt Variable (2) are performed. However, 
    330 ///
    331 /// @return @a biFactorizer returns a list of factors that are monic wrt 
     329/// wrt Variable (2) are performed. However,
     330///
     331/// @return @a biFactorizer returns a list of factors that are monic wrt
    332332///         Variable (1), if @a F is irreducible @a F is returned
    333 /// @sa multiFactorize(), biFactorize() 
    334 CFList biFactorizer (const CanonicalForm& F,   ///< [in] a bivariate poly 
     333/// @sa multiFactorize(), biFactorize()
     334CFList biFactorizer (const CanonicalForm& F,   ///< [in] a bivariate poly
    335335                     const Variable& alpha,    ///< [in] algebraic variable
    336                      CanonicalForm& bivarEval, ///< [in,out] a valid evaluation 
    337                                                ///< point 
     336                     CanonicalForm& bivarEval, ///< [in,out] a valid evaluation
     337                                               ///< point
    338338                     int& liftBound            ///< [in,out] lift bound, may be
    339                                                ///< adapted during Hensel 
    340                                                ///< lifting 
     339                                               ///< adapted during Hensel
     340                                               ///< lifting
    341341                    );
    342342
    343 /// Naive factor recombination for multivariate factorization over an extension 
    344 /// of the initial field. No precomputed is used to exclude combinations. 
     343/// Naive factor recombination for multivariate factorization over an extension
     344/// of the initial field. No precomputed is used to exclude combinations.
    345345///
    346346/// @return @a extFactorRecombination returns a list of factors of @a F, whose
    347347///         shift to zero is reversed.
    348 /// @sa factorRecombination()   
    349 CFList 
     348/// @sa factorRecombination()
     349CFList
    350350extFactorRecombination (
    351351                 const CFList& factors,     ///< [in] list of lifted factors
    352                                             ///< that are monic wrt Variable (1) 
     352                                            ///< that are monic wrt Variable (1)
    353353                 const CanonicalForm& F,    ///< [in] poly to be factored
    354354                 const CFList& M,           ///< [in] a list of powers of
    355                                             ///< Variables 
    356                  const ExtensionInfo& info, ///< [in] info about extension 
     355                                            ///< Variables
     356                 const ExtensionInfo& info, ///< [in] info about extension
    357357                 const CFList& evaluation   ///< [in] evaluation point
    358358                       );
     
    361361/// No precomputed is used to exclude combinations.
    362362///
    363 /// @return @a factorRecombination returns a list of factors of @a F 
    364 /// @sa extFactorRecombination() 
    365 CFList 
     363/// @return @a factorRecombination returns a list of factors of @a F
     364/// @sa extFactorRecombination()
     365CFList
    366366factorRecombination (const CanonicalForm& F,///< [in] poly to be factored
    367367                     const CFList& factors, ///< [in] list of lifted factors
     
    375375///
    376376/// @return @a liftBoundAdaption returns an adapted lift bound.
    377 /// @sa earlyFactorDetect(), earlyFactorDetection()   
     377/// @sa earlyFactorDetect(), earlyFactorDetection()
    378378int
    379379liftBoundAdaption (const CanonicalForm& F, ///< [in] a poly
    380                    const CFList& factors,  ///< [in] list of list of lifted 
    381                                            ///< factors that are monic wrt 
     380                   const CFList& factors,  ///< [in] list of list of lifted
     381                                           ///< factors that are monic wrt
    382382                                           ///< Variable (1)
    383383                   bool& success,          ///< [in,out] indicates that no
     
    393393///
    394394/// @return @a liftBoundAdaption returns an adapted lift bound.
    395 /// @sa earlyFactorDetect(), earlyFactorDetection() 
    396 int 
     395/// @sa earlyFactorDetect(), earlyFactorDetection()
     396int
    397397extLiftBoundAdaption (
    398             const CanonicalForm& F,    ///< [in] a poly
    399             const CFList& factors,     ///< [in] list of list of lifted
    400                                        ///< factors that are monic wrt 
    401             bool& success,             ///< [in,out] indicates that no further
     398            const CanonicalForm& F,    ///< [in] a poly
     399            const CFList& factors,     ///< [in] list of list of lifted
     400                                       ///< factors that are monic wrt
     401            bool& success,             ///< [in,out] indicates that no further
    402402                                       ///< lifting is necessary
    403             const ExtensionInfo& info, ///< [in] info about extension
    404             const CFList& eval,        ///< [in] evaluation point
    405             const int deg,             ///< [in] stage of Hensel lifting
    406             const CFList& MOD,         ///< [in] a list of powers of
    407                                        ///< Variables 
    408             const int bound            ///< [in] initial lift bound
     403            const ExtensionInfo& info, ///< [in] info about extension
     404            const CFList& eval,        ///< [in] evaluation point
     405            const int deg,             ///< [in] stage of Hensel lifting
     406            const CFList& MOD,         ///< [in] a list of powers of
     407                                       ///< Variables
     408            const int bound            ///< [in] initial lift bound
    409409                     );
    410410
    411411/// detects factors of @a F at stage @a deg of Hensel lifting.
    412 /// No combinations of more than one factor are tested. Lift bound is adapted. 
    413 /// 
    414 /// @return @a earlyFactorDetect returns a list of factors of F (possibly 
     412/// No combinations of more than one factor are tested. Lift bound is adapted.
     413///
     414/// @return @a earlyFactorDetect returns a list of factors of F (possibly
    415415///         incomplete), in case of success. Otherwise an empty list.
    416416/// @sa factorRecombination(), extEarlyFactorDetect()
    417 CFList 
     417CFList
    418418earlyFactorDetect (
    419                 CanonicalForm& F,      ///< [in,out] poly to be factored,
     419                CanonicalForm& F,      ///< [in,out] poly to be factored,
    420420                                       ///< returns poly divided by detected
    421421                                       ///< factors in case of success
    422                 CFList& factors,       ///< [in,out] list of factors lifted up
     422                CFList& factors,       ///< [in,out] list of factors lifted up
    423423                                       ///< to @a deg, returns a list of factors
    424424                                       ///< without detected factors
    425                 int& adaptedLiftBound, ///< [in,out] adapted lift bound
    426                 bool& success,         ///< [in,out] indicating success
    427                 const int deg,         ///< [in] stage of Hensel lifting
    428                 const CFList& MOD,     ///< [in] a list of powers of
     425                int& adaptedLiftBound, ///< [in,out] adapted lift bound
     426                bool& success,         ///< [in,out] indicating success
     427                const int deg,         ///< [in] stage of Hensel lifting
     428                const CFList& MOD,     ///< [in] a list of powers of
    429429                                       ///< Variables
    430                 const int bound        ///< [in] initial lift bound
     430                const int bound        ///< [in] initial lift bound
    431431                  );
    432432
    433433/// detects factors of @a F at stage @a deg of Hensel lifting.
    434 /// No combinations of more than one factor are tested. Lift bound is adapted. 
    435 /// 
    436 /// @return @a extEarlyFactorDetect returns a list of factors of F (possibly 
     434/// No combinations of more than one factor are tested. Lift bound is adapted.
     435///
     436/// @return @a extEarlyFactorDetect returns a list of factors of F (possibly
    437437///         incomplete), whose shift to zero is reversed, in case of success.
    438 ///         Otherwise an empty list. 
     438///         Otherwise an empty list.
    439439/// @sa factorRecombination(), earlyFactorDetection()
    440 CFList 
     440CFList
    441441extEarlyFactorDetect (
    442             CanonicalForm& F,          ///< [in,out] poly to be factored,
     442            CanonicalForm& F,          ///< [in,out] poly to be factored,
    443443                                       ///< returns poly divided by detected
    444444                                       ///< factors in case of success
    445             CFList& factors,           ///< [in,out] list of factors lifted up
     445            CFList& factors,           ///< [in,out] list of factors lifted up
    446446                                       ///< to @a deg, returns a list of factors
    447447                                       ///< without detected factors
    448             int& adaptedLiftBound,     ///< [in,out] adapted lift bound
    449             bool& success,             ///< [in,out] indicating succes
    450             const ExtensionInfo& info, ///< [in] info about extension
    451             const CFList& eval,        ///< [in] evaluation point
    452             const int deg,             ///< [in] stage of Hensel lifting
    453             const CFList& MOD,         ///< [in] a list of powers of Variables
    454             const int bound            ///< [in] initial lift bound
     448            int& adaptedLiftBound,     ///< [in,out] adapted lift bound
     449            bool& success,             ///< [in,out] indicating succes
     450            const ExtensionInfo& info, ///< [in] info about extension
     451            const CFList& eval,        ///< [in] evaluation point
     452            const int deg,             ///< [in] stage of Hensel lifting
     453            const CFList& MOD,         ///< [in] a list of powers of Variables
     454            const int bound            ///< [in] initial lift bound
    455455                     );
    456456
    457 /// evaluation point search for multivariate factorization, 
     457/// evaluation point search for multivariate factorization,
    458458/// looks for a (F.level() - 1)-tuple such that the resulting univariate
    459459/// polynomial has main variable F.mvar(), is squarefree and its degree
    460 /// coincides with degree(F) and the bivariate one is primitive wrt. 
    461 /// Variable(1), fails if there are no valid evaluation points, eval contains 
    462 /// the intermediate evaluated polynomials. 
     460/// coincides with degree(F) and the bivariate one is primitive wrt.
     461/// Variable(1), fails if there are no valid evaluation points, eval contains
     462/// the intermediate evaluated polynomials.
    463463///
    464464/// @return @a evalPoints returns an evaluation point, which is valid if and
    465 ///         only if fail == false. 
    466 CFList 
    467 evalPoints (const CanonicalForm& F,  ///< [in] a compressed poly 
     465///         only if fail == false.
     466CFList
     467evalPoints (const CanonicalForm& F,  ///< [in] a compressed poly
    468468            CFList & eval,           ///< [in,out] an empty list, returns @a F
    469469                                     ///< successive evaluated
     
    472472                                     ///< considered, a point is encoded as a
    473473                                     ///< poly of degree F.level()-1 in
    474                                      ///< Variable(1) 
     474                                     ///< Variable(1)
    475475            const bool& GF,          ///< [in] GF?
    476476            bool& fail               ///< [in,out] indicates failure
     
    482482///
    483483/// @return @a newMainVariableSearch returns the level of the new main variable,
    484 ///         if there no variable which omitts a valid evaluation 0 is returned 
     484///         if there no variable which omitts a valid evaluation 0 is returned
    485485static inline
    486486int newMainVariableSearch (
    487487              CanonicalForm& A,     ///< [in,out] a compressed poly, returns
    488                                     ///< the swapped initial poly or the 
    489                                     ///< initial poly if 0 is returned 
    490               CFList& Aeval,        ///< [in,out] @a A successively evaluated,
     488                                    ///< the swapped initial poly or the
     489                                    ///< initial poly if 0 is returned
     490              CFList& Aeval,        ///< [in,out] @a A successively evaluated,
    491491                                    ///< empty list if 0 is returned
    492               CFList& evaluation,   ///< [in,out] evaluation point, empty list
    493                                     ///< if 0 is returned 
    494               const Variable& alpha,///< [in] algebraic variable
    495               const int lev         ///< [in] some int <= A.level()
     492              CFList& evaluation,   ///< [in,out] evaluation point, empty list
     493                                    ///< if 0 is returned
     494              const Variable& alpha,///< [in] algebraic variable
     495              const int lev         ///< [in] some int <= A.level()
    496496                          );
    497 /// hensel Lifting and early factor detection 
    498 ///
    499 /// @return @a henselLiftAndEarly returns monic (wrt Variable (1)) lifted 
     497/// hensel Lifting and early factor detection
     498///
     499/// @return @a henselLiftAndEarly returns monic (wrt Variable (1)) lifted
    500500///         factors without factors which have been detected at an early stage
    501501///         of Hensel lifting
     
    503503CFList
    504504henselLiftAndEarly (
    505             CanonicalForm& A,         ///< [in,out] poly to be factored, 
     505            CanonicalForm& A,         ///< [in,out] poly to be factored,
    506506                                      ///< returns poly divided by detected
    507                                       ///< factors, in case of success 
    508             CFList& MOD,              ///< [in,out] a list of powers of
     507                                      ///< factors, in case of success
     508            CFList& MOD,              ///< [in,out] a list of powers of
    509509                                      ///< Variables
    510             int*& liftBounds,         ///< [in,out] initial lift bounds, returns
     510            int*& liftBounds,         ///< [in,out] initial lift bounds, returns
    511511                                      ///< adapted lift bounds
    512             bool& earlySuccess,       ///< [in,out] indicating success
    513             CFList& earlyFactors,     ///< [in,out] early factors
    514             const CFList& Aeval,      ///< [in] @a A successively evaluated at
     512            bool& earlySuccess,       ///< [in,out] indicating success
     513            CFList& earlyFactors,     ///< [in,out] early factors
     514            const CFList& Aeval,      ///< [in] @a A successively evaluated at
    515515                                      ///< elements of @a evaluation
    516             const CFList& biFactors,  ///< [in] bivariate factors
    517             const CFList& evaluation, ///< [in] evaluation point
    518             const ExtensionInfo& info ///< [in] info about extension
     516            const CFList& biFactors,  ///< [in] bivariate factors
     517            const CFList& evaluation, ///< [in] evaluation point
     518            const ExtensionInfo& info ///< [in] info about extension
    519519                   );
    520520
     
    523523/// @return @a extFactorize returns factorization of F over initial field
    524524/// @sa extBiFactorize(), multiFactorize()
    525 CFList 
    526 extFactorize (const CanonicalForm& F,   ///< [in] poly to be factored 
    527               const ExtensionInfo& info ///< [in] info about extension 
    528              ); 
     525CFList
     526extFactorize (const CanonicalForm& F,   ///< [in] poly to be factored
     527              const ExtensionInfo& info ///< [in] info about extension
     528             );
    529529
    530530#endif
Note: See TracChangeset for help on using the changeset viewer.