Changeset 65148c4 in git for factory/facFqFactorize.h


Ignore:
Timestamp:
Feb 18, 2013, 5:54:37 PM (11 years ago)
Author:
Oleksandr Motsak <malex984@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
77ed18101c07cdbb767d8703e5ea1d0f7c8b05f6
Parents:
71a4d7b8fea297969227779896a8ec8fc63aaedaa1da6f6fa3cfce502fec23270a8a572c1290577d
Message:
Merge pull request #265 from mohamed-barakat/spielwiese

clang fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqFactorize.h

    ra1da6f r65148c4  
    608608/// normalize precomputed leading coefficients such that leading coefficients
    609609/// evaluated at @a evaluation in K^(n-2) equal the leading coeffs wrt
    610 /// Variable(1) of bivariate factors
    611 void
    612 prepareLeadingCoeffs (CFList*& LCs,               ///<[in,out]
     610/// Variable(1) of bivariate factors and change @a A and @a Aeval accordingly
     611void
     612prepareLeadingCoeffs (CFList*& LCs,               ///<[in,out]
     613                      CanonicalForm& A,           ///<[in,out]
     614                      CFList& Aeval,              ///<[in,out]
    613615                      int n,                      ///<[in] level of poly to be
    614616                                                  ///< factored
     
    684686                       );
    685687
     688/// changes the second variable to be @a w and updates all relevant data
     689void
     690changeSecondVariable (CanonicalForm& A,        ///<[in,out] a multivariate poly
     691                      CFList& biFactors,       ///<[in,out] bivariate factors
     692                      CFList& evaluation,      ///<[in,out] evaluation point
     693                      CFList*& oldAeval,       ///<[in,out] old bivariate factors
     694                                               ///< wrt. different second vars
     695                      int lengthAeval2,        ///<[in] length of oldAeval
     696                      const CFList& uniFactors,///<[in] univariate factors
     697                      const Variable& w        ///<[in] some variable
     698                     );
     699
     700/// distributes a divisor LCmultiplier of LC(A,1) on the bivariate factors and
     701/// the precomputed leading coefficients
     702void
     703distributeLCmultiplier (CanonicalForm& A,               ///<[in,out] some poly
     704                        CFList& leadingCoeffs,          ///<[in,out] leading
     705                                                        ///< coefficients
     706                        CFList& biFactors,              ///<[in,out] bivariate
     707                                                        ///< factors
     708                        const CFList& evaluation,       ///<[in] eval. point
     709                        const CanonicalForm& LCmultipler///<[in] multiplier
     710                       );
     711
     712/// heuristic to distribute @a LCmultiplier onto factors based on the variables
     713/// that occur in @a LCmultiplier and in the leading coeffs of bivariate factors
     714void
     715LCHeuristic (CanonicalForm& A,                 ///<[in,out] a poly
     716             const CanonicalForm& LCmultiplier,///<[in,out] divisor of LC (A,1)
     717             CFList& biFactors,                ///<[in,out] bivariate factors
     718             CFList*& leadingCoeffs,           ///<[in,out] leading coeffs
     719             const CFList* oldAeval,           ///<[in] bivariate factors wrt.
     720                                               ///< different second vars
     721             int lengthAeval,                  ///<[in] length of oldAeval
     722             const CFList& evaluation,         ///<[in] evaluation point
     723             const CFList& oldBiFactors        ///<[in] bivariate factors
     724                                               ///< without LCmultiplier
     725                                               ///< distributed on them
     726            );
     727
     728/// checks if prod(LCs)==LC (oldA,1) and if so divides elements of leadingCoeffs
     729/// by elements in contents, sets A to oldA and sets foundTrueMultiplier to true
     730void
     731LCHeuristicCheck (const CFList& LCs,        ///<[in] leading coeffs computed
     732                  const CFList& contents,   ///<[in] content of factors
     733                  CanonicalForm& A,         ///<[in,out] oldA*LCmultiplier^m
     734                  const CanonicalForm& oldA,///<[in] some poly
     735                  CFList& leadingCoeffs,    ///<[in,out] leading coefficients
     736                  bool& foundTrueMultiplier ///<[in,out] success?
     737                 );
     738
     739/// heuristic to distribute @a LCmultiplier onto factors based on the contents
     740/// of @a factors. @a factors are assumed to come from LucksWangSparseHeuristic.
     741/// If not successful @a contents will contain the content of each element of @a
     742/// factors and @a LCs will contain the LC of each element of @a factors divided
     743/// by its content
     744void
     745LCHeuristic2 (const CanonicalForm& LCmultiplier,///<[in] divisor of LC (A,1)
     746              const CFList& factors,            ///<[in] result of
     747                                                ///< LucksWangSparseHeuristic
     748              CFList& leadingCoeffs,            ///<[in,out] leading coeffs
     749              CFList& contents,                 ///<[in,out] content of factors
     750              CFList& LCs,                      ///<[in,out] LC of factors
     751                                                ///< divided by content of
     752                                                ///< factors
     753              bool& foundTrueMultiplier         ///<[in,out] success?
     754             );
     755
     756/// heuristic to remove @a LCmultiplier from a factor based on the contents
     757/// of @a factors. @a factors are assumed to come from LucksWangSparseHeuristic.
     758void
     759LCHeuristic3 (const CanonicalForm& LCmultiplier,///<[in] divisor of LC (A,1)
     760              const CFList& factors,            ///<[in] result of
     761                                                ///< LucksWangSparseHeuristic
     762              const CFList& oldBiFactors,       ///<[in] bivariate factors
     763                                                ///< without LCmultiplier
     764                                                ///< distributed on them
     765              const CFList& contents,           ///<[in] content of factors
     766              const CFList* oldAeval,           ///<[in] bivariate factors wrt.
     767                                                ///< different second vars
     768              CanonicalForm& A,                 ///<[in,out] poly
     769              CFList*& leadingCoeffs,           ///<[in,out] leading coeffs
     770              int lengthAeval,                  ///<[in] length of oldAeval
     771              bool& foundMultiplier             ///<[in,out] success?
     772             );
     773
     774/// heuristic to remove factors of @a LCmultiplier from @a factors.
     775/// More precisely checks if elements of @a contents divide @a LCmultiplier.
     776/// Assumes LCHeuristic3 is run before it and was successful.
     777void
     778LCHeuristic4 (const CFList& oldBiFactors,   ///<[in] bivariate factors
     779                                            ///< without LCmultiplier
     780                                            ///< distributed on them
     781              const CFList* oldAeval,       ///<[in] bivariate factors wrt.
     782                                            ///< different second vars
     783              const CFList& contents,       ///<[in] content of factors
     784              const CFList& factors,        ///<[in] result of
     785                                            ///< LucksWangSparseHeuristic
     786              const CanonicalForm& testVars,///<[in] product of second vars that
     787                                            ///< occur among oldAeval
     788              int lengthAeval,              ///<[in] length of oldAeval
     789              CFList*& leadingCoeffs,       ///<[in,out] leading coeffs
     790              CanonicalForm& A,             ///<[in,out] poly
     791              CanonicalForm& LCmultiplier,  ///<[in,out] divisor of LC (A,1)
     792              bool& foundMultiplier         ///<[in] success?
     793             );
     794
    686795#endif
    687796/* FAC_FQ_FACTORIZE_H */
Note: See TracChangeset for help on using the changeset viewer.