Changeset 86b7c4d in git


Ignore:
Timestamp:
Aug 26, 2014, 11:13:43 AM (10 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
8c5f4b2e320efaafe00bfaf0910c580fa48ffc9d
Parents:
53ccafa3ab03b28186039eb3c8d1c68ee7f8a5db
git-author:
Martin Lee <martinlee84@web.de>2014-08-26 11:13:43+02:00
git-committer:
Martin Lee <martinlee84@web.de>2014-08-26 12:29:11+02:00
Message:
more docu for facMul
Location:
factory
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • factory/facMul.cc

    r53ccafa r86b7c4d  
    55 *
    66 * This file implements functions for fast multiplication and division with
    7  * remainder
     7 * remainder.
     8 *
     9 * Nomenclature rules: kronSub* -> plain Kronecker substitution
     10 *                     reverseSubst* -> reverse Kronecker substitution
     11 *                     kronSubRecipro* -> reciprocal Kronecker substitution as
     12 *                                        described in D. Harvey "Faster
     13 *                                        polynomial multiplication via
     14 *                                        multipoint Kronecker substitution"
    815 *
    916 * @author Martin Lee
     
    3340
    3441#ifdef HAVE_FLINT
    35 void kronSub (fmpz_poly_t result, const CanonicalForm& A, int d)
     42void kronSubQa (fmpz_poly_t result, const CanonicalForm& A, int d)
    3643{
    3744  int degAy= degree (A);
     
    106113
    107114  fmpz_poly_t FLINTA,FLINTB;
    108   kronSub (FLINTA, A, d);
    109   kronSub (FLINTB, B, d);
     115  kronSubQa (FLINTA, A, d);
     116  kronSubQa (FLINTB, B, d);
    110117
    111118  fmpz_poly_mul (FLINTA, FLINTA, FLINTB);
     
    214221
    215222  fmpz_poly_t FLINTA,FLINTB;
    216   kronSub (FLINTA, A, d);
    217   kronSub (FLINTB, B, d);
     223  kronSubQa (FLINTA, A, d);
     224  kronSubQa (FLINTB, B, d);
    218225
    219226  int k= d*m;
     
    21462153
    21472154  fmpz_poly_t FLINTA, FLINTB;
    2148   kronSub (FLINTA, A, d1);
    2149   kronSub (FLINTB, B, d1);
     2155  kronSubQa (FLINTA, A, d1);
     2156  kronSubQa (FLINTB, B, d1);
    21502157  int k= d1*degree (M);
    21512158
  • factory/facMul.h

    r53ccafa r86b7c4d  
    1919
    2020#ifdef HAVE_NTL
    21 /// multiplication of univariate polys over a finite field using NTL, if we are
    22 /// in GF factory's default multiplication is used.
     21/// multiplication of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k,
     22/// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication
     23/// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be
     24/// considered as elements over Z/p^k or Z/p^k[t]/(f).
    2325///
    2426/// @return @a mulNTL returns F*G
     
    2931       );
    3032
    31 /// mod of univariate polys over a finite field using NTL, if we are
    32 /// in GF factory's default mod is used.
     33/// mod of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k,
     34/// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication
     35/// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be
     36/// considered as elements over Z/p^k or Z/p^k[t]/(f); in this case invertiblity
     37/// of Lc(G) is not checked
    3338///
    3439/// @return @a modNTL returns F mod G
     
    3944       );
    4045
    41 /// division of univariate polys over a finite field using NTL, if we are
    42 /// in GF factory's default division is used.
     46/// division of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k,
     47/// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication
     48/// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be
     49/// considered as elements over Z/p^k or Z/p^k[t]/(f); in this case invertiblity
     50/// of Lc(G) is not checked
    4351///
    4452/// @return @a divNTL returns F/G
     
    4957       );
    5058
    51 /// division with remainder of @a F by
    52 /// @a G wrt Variable (1) modulo @a M.
     59/// division with remainder of @a F by @a G wrt Variable (1) modulo @a M.
     60/// Uses an algorithm based on Burnikel, Ziegler "Fast recursive division".
    5361///
    5462/// @return @a Q returns the dividend, @a R returns the remainder.
     
    6270             );
    6371
    64 /// division with remainder of @a F by
    65 /// @a G wrt Variable (1) modulo @a MOD.
     72/// division with remainder of @a F by @a G wrt Variable (1) modulo @a MOD.
     73/// Uses an algorithm based on Burnikel, Ziegler "Fast recursive division".
    6674///
    6775/// @sa divrem2()
Note: See TracChangeset for help on using the changeset viewer.