Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // void Split(const BigInteger& bi, const BigInteger& bi2, BigInteger& x, BigInteger& x2, BigInteger& y, BigInteger& y2, int& n) {
- // ullong size = bi.digits.size();
- // ullong size2 = bi2.digits.size();
- // ullong minSize = size;
- // if(minSize > size2) {
- // minSize = size2;
- // }
- // n = minSize / 2;
- // x.digits.resize(n);
- // x2.digits.resize(size-n);
- // y.digits.resize(n);
- // y2.digits.resize(size2-n);
- // std::copy(bi.digits.begin(),bi.digits.begin()+n,x.digits.begin());
- // std::copy(bi.digits.begin()+n,bi.digits.end(),x2.digits.begin());
- // std::copy(bi2.digits.begin(),bi2.digits.begin()+n,y.digits.begin());
- // std::copy(bi2.digits.begin()+n,bi2.digits.end(),y2.digits.begin());
- // }
- // BigInteger Karatsuba(const BigInteger& bi, const BigInteger& bi2) {
- // BigInteger x, x2, y, y2;
- // BigInteger z, z2, z3;
- // if((bi.digits.size() < 250) || (bi2.digits.size() < 250))
- // return bi*bi2;
- // int n;
- // Split(bi,bi2,x,x2,y,y2,n);
- // z = Karatsuba(x,y);
- // z3 = Karatsuba(x2,y2);
- // z2 = (Karatsuba(x+x2,y+y2)-z3)-z;
- // z.addZeroes(n);
- // z3.addZeroes(2*n);
- // return z+z2+z3;
- // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement