MCPcopy Create free account
hub / github.com/c3d/tao3D / PositiveAdd

Function PositiveAdd

libcryptopp/cryptopp/integer.cpp:3468–3492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3466}
3467
3468void PositiveAdd(Integer &sum, const Integer &a, const Integer& b)
3469{
3470 int carry;
3471 if (a.reg.size() == b.reg.size())
3472 carry = Add(sum.reg, a.reg, b.reg, a.reg.size());
3473 else if (a.reg.size() > b.reg.size())
3474 {
3475 carry = Add(sum.reg, a.reg, b.reg, b.reg.size());
3476 CopyWords(sum.reg+b.reg.size(), a.reg+b.reg.size(), a.reg.size()-b.reg.size());
3477 carry = Increment(sum.reg+b.reg.size(), a.reg.size()-b.reg.size(), carry);
3478 }
3479 else
3480 {
3481 carry = Add(sum.reg, a.reg, b.reg, a.reg.size());
3482 CopyWords(sum.reg+a.reg.size(), b.reg+a.reg.size(), b.reg.size()-a.reg.size());
3483 carry = Increment(sum.reg+a.reg.size(), b.reg.size()-a.reg.size(), carry);
3484 }
3485
3486 if (carry)
3487 {
3488 sum.reg.CleanGrow(2*sum.reg.size());
3489 sum.reg[sum.reg.size()/2] = 1;
3490 }
3491 sum.sign = Integer::POSITIVE;
3492}
3493
3494void PositiveSubtract(Integer &diff, const Integer &a, const Integer& b)
3495{

Callers 3

PlusMethod · 0.85
integer.cppFile · 0.85
MinusMethod · 0.85

Calls 5

AddFunction · 0.85
CopyWordsFunction · 0.85
IncrementFunction · 0.85
CleanGrowMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected