Changeset 2ed1c7 in git for factory


Ignore:
Timestamp:
Oct 14, 2020, 10:51:16 PM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
b7566c040bb4dee9a542a5848fa7e26d4c5b2d76
Parents:
608ba440d855427b06a81f15d70157aee3a835d2
Message:
const for chineseRemainder*
Location:
factory
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_algorithm.h

    r608ba4 r2ed1c7  
    5555void chineseRemainder ( const CFArray & x, const CFArray & q, CanonicalForm & xnew, CanonicalForm & qnew );
    5656
    57 void chineseRemainderCached(CFArray &a, CFArray &n, CanonicalForm &xnew, CanonicalForm &prod, CFArray &inv);
     57void chineseRemainderCached ( const CanonicalForm & x1, const CanonicalForm & q1, const CanonicalForm & x2, const CanonicalForm & q2, CanonicalForm & xnew, CanonicalForm & qnew, CFArray &inv );
     58void chineseRemainderCached(const CFArray &a, const CFArray &n, CanonicalForm &xnew, CanonicalForm &prod, CFArray &inv);
    5859
    5960
  • factory/cf_chinese.cc

    r608ba4 r2ed1c7  
    274274
    275275// returns x where (a * x) % b == 1, inv is a cache
    276 static inline CanonicalForm chin_mul_inv(CanonicalForm a, CanonicalForm b, int ind, CFArray &inv)
     276static inline CanonicalForm chin_mul_inv(const CanonicalForm a, const CanonicalForm b, int ind, CFArray &inv)
    277277{
    278278  if (inv[ind].isZero())
     
    288288
    289289void out_cf(const char *s1,const CanonicalForm &f,const char *s2);
    290 void chineseRemainderCached(CFArray &a, CFArray &n, CanonicalForm &xnew, CanonicalForm &prod, CFArray &inv)
     290void chineseRemainderCached(const CFArray &a, const CFArray &n, CanonicalForm &xnew, CanonicalForm &prod, CFArray &inv)
    291291{
    292292  CanonicalForm p, sum=0L; prod=1L;
     
    306306// http://rosettacode.org/wiki/Chinese_remainder_theorem#C
    307307
     308void chineseRemainderCached ( const CanonicalForm & a, const CanonicalForm &q1, const CanonicalForm & b, const CanonicalForm & q2, CanonicalForm & xnew, CanonicalForm & qnew,CFArray &inv )
     309{
     310  qnew=q1*q2;
     311  CanonicalForm sum=a * chin_mul_inv(q2,q1,0,inv);
     312  sum+=b * chin_mul_inv(q1,q2,1,inv);
     313  xnew = mod(sum , qnew);
     314}
Note: See TracChangeset for help on using the changeset viewer.