Changeset f876a66 in git for factory/facFqBivarUtil.h


Ignore:
Timestamp:
May 24, 2011, 5:48:25 PM (13 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38077648e7239f98078663eb941c3c979511150a')
Children:
11bf82dfd2d328940589f0fb6131155b53e10f7a
Parents:
0415f923fdb78a69504a400113e65cd371cb2150
Message:
added convex dense factorization to bivariate factorization
added logarithmic derivative computation to facFqBivarUtil
changes to in extension test


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

Legend:

Unmodified
Added
Removed
  • factory/facFqBivarUtil.h

    r0415f9 rf876a66  
    2121#include "ExtensionInfo.h"
    2222
     23#ifdef HAVE_NTL
     24#include "NTLconvert.h"
     25#endif
     26
    2327/// append @a factors2 on @a factors1
    2428void append (CFList& factors1,       ///< [in,out] a list of polys
     
    2933void decompress (CFList& factors, ///< [in,out] a list of polys
    3034                 const CFMap& N   ///< [in] a map
     35                );
     36
     37/// as above
     38void decompress (CFFList& factors, ///< [in,out] a list of factors
     39                 const CFMap& N    ///< [in] a map
    3140                );
    3241
     
    6170                                                 ///< Fq if we are not over some
    6271                                                 ///< GF
    63                     const int k                  ///< some int k such that k
     72                    const int k,                 ///< some int k such that k
    6473                                                 ///< divides l if we are not
    6574                                                 ///< over some Fq
     75                    const CanonicalForm& delta,  ///< [in] image of gamma
     76                    CFList& source,              ///< [in,out] list of preimages
     77                    CFList& dest                 ///< [in,out] list of images
    6678                   );
    6779
     
    111123               );
    112124
     125/// as above
     126void normalize (CFFList& factors ///< [in,out] a list of factors
     127               );
     128
    113129/// extract a subset given by @a index of size @a s from @a elements, if there
    114130/// is no subset we have not yet considered noSubset is set to true. @a index
     
    158174                     );
    159175
     176/// compute the coefficients of the logarithmic derivative of G mod
     177/// Variable (2)^l over Fq
     178///
     179/// @return an array of coefficients of the logarithmic derivative of G mod
     180///         Variable (2)^l
     181CFArray logarithmicDerivative (const CanonicalForm& F,///<[in] a bivariate poly
     182                              const CanonicalForm& G, ///<[in] a factor of F
     183                              int l,                  ///<[in] lifting precision
     184                              CanonicalForm& Q        ///<[in,out] F/G
     185                              );
     186
     187/// compute the coefficients of the logarithmic derivative of G mod
     188/// Variable (2)^l over Fq with oldQ= F/G mod Variable (2)^oldL
     189///
     190/// @return an array of coefficients of the logarithmic derivative of G mod
     191///         Variable (2)^l
     192CFArray
     193logarithmicDerivative (const CanonicalForm& F,   ///< [in] bivariate poly
     194                       const CanonicalForm& G,   ///< [in] a factor of F
     195                       int l,                    ///< [in] lifting precision
     196                       int oldL,                 ///< [in] old precision
     197                       const CanonicalForm& oldQ,///< [in] F/G mod
     198                                                 ///< Variable(2)^oldL
     199                       CanonicalForm& Q          ///< [in, out] F/G
     200                      );
     201
     202/// compute bounds for logarithmic derivative as described in K. Belabas,
     203/// M. van Hoeij, J. KlÃŒners, and A. Steel, Factoring polynomials over global
     204/// fields
     205///
     206/// @return @a computeBounds returns bounds as described above
     207int *
     208computeBounds (const CanonicalForm& F,///< [in] compressed bivariate polynomial
     209               int& n                 ///< [in,out] length of output
     210              );
     211
     212/// extract coefficients of \f$ x^i \f$ for \f$i\geq k\f$ where \f$ x \f$ is
     213/// a variable of level 1
     214///
     215/// @return coefficients of \f$ x^i \f$ for \f$i\geq k\f$
     216/// @sa {getCoeffs (const CanonicalForm&, const int, const Variable&),
     217/// getCoeffs (const CanonicalForm&, const int, const int, const int,
     218/// const Variable&, const CanonicalForm&, const mat_zz_p&)}
     219CFArray
     220getCoeffs (const CanonicalForm& F,///< [in] compressed bivariate poly over F_p
     221           const int k            ///< [in] some int
     222          );
     223
     224/// extract coefficients of \f$ x^i \f$ for \f$i\geq k\f$ where \f$ x \f$ is
     225/// a variable of level 1
     226///
     227/// @return coefficients of \f$ x^i \f$ for \f$i\geq k\f$
     228/// @sa {getCoeffs (const CanonicalForm&, const int),
     229/// getCoeffs (const CanonicalForm&, const int, const int, const int,
     230/// const Variable&, const CanonicalForm&, const mat_zz_p&)}
     231CFArray
     232getCoeffs (const CanonicalForm& F,///< [in] compressed bivariate poly over
     233                                  ///< F_p(alpha)
     234           const int k,           ///< [in] some int
     235           const Variable& alpha  ///< [in] algebraic variable
     236          );
     237
     238#ifdef HAVE_NTL
     239/// extract coefficients of \f$ x^i \f$ for \f$i\geq k\f$ where \f$ x \f$ is
     240/// a variable of level 1
     241///
     242/// @return coefficients of \f$ x^i \f$ for \f$i\geq k\f$
     243/// @sa {getCoeffs (const CanonicalForm&, const int, const Variable& alpha),
     244/// getCoeffs (const CanonicalForm&, const int)}
     245CFArray
     246getCoeffs (const CanonicalForm& F,         ///< [in] compressed bivariate poly
     247           const int k,                    ///< [in] some int
     248           const int l,                    ///< [in] precision
     249           const int degMipo,              ///< [in] degree of minimal poly
     250           const Variable& alpha,          ///< [in] algebraic variable
     251           const CanonicalForm& evaluation,///< [in] evaluation point
     252           const mat_zz_p& M               ///< [in] bases change matrix
     253          );
     254#endif
     255
     256/// write A into M starting at row startIndex
     257void
     258writeInMatrix (CFMatrix& M,        ///< [in,out] some matrix
     259               const CFArray& A,   ///< [in] array of polys
     260               const int column,   ///< [in] column in which A is written
     261               const int startIndex///< [in] row in which to start
     262              );
     263
    160264/// checks if a substitution x^n->x is possible
    161265///
Note: See TracChangeset for help on using the changeset viewer.