mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
feat(big): add SBigNot
This commit is contained in:
parent
1cad63b7f2
commit
5688b7ec3e
5 changed files with 58 additions and 0 deletions
|
|
@ -103,6 +103,10 @@ void SBigNew(BigData** num) {
|
|||
*num = new (m) BigData();
|
||||
}
|
||||
|
||||
void SBigNot(BigData* a, BigData* b) {
|
||||
Not(a->Primary(), b->Primary());
|
||||
}
|
||||
|
||||
void SBigPowMod(BigData* a, BigData* b, BigData* c, BigData* d) {
|
||||
PowMod(a->Primary(), b->Primary(), c->Primary(), d->Primary(), a->Stack());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ void SBigMul(BigData* a, BigData* b, BigData* c);
|
|||
|
||||
void SBigNew(BigData** num);
|
||||
|
||||
void SBigNot(BigData* a, BigData* b);
|
||||
|
||||
void SBigPowMod(BigData* a, BigData* b, BigData* c, BigData* d);
|
||||
|
||||
void SBigShl(BigData* a, BigData* b, uint32_t shift);
|
||||
|
|
|
|||
|
|
@ -277,6 +277,15 @@ void MulMod(BigBuffer& a, const BigBuffer& b, const BigBuffer& c, const BigBuffe
|
|||
stack.Free(allocCount);
|
||||
}
|
||||
|
||||
void Not(BigBuffer& a, const BigBuffer& b) {
|
||||
uint32_t i = 0;
|
||||
for (; b.IsUsed(i); i++) {
|
||||
a[i] = ~b[i];
|
||||
}
|
||||
|
||||
a.SetCount(i);
|
||||
}
|
||||
|
||||
void PowMod(BigBuffer& a, const BigBuffer& b, const BigBuffer& c, const BigBuffer& d, BigStack& stack) {
|
||||
c.Trim();
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ void Mul(BigBuffer& a, const BigBuffer& b, const BigBuffer& c, BigStack& stack);
|
|||
|
||||
void MulMod(BigBuffer& a, const BigBuffer& b, const BigBuffer& c, const BigBuffer& d, BigStack& stack);
|
||||
|
||||
void Not(BigBuffer& a, const BigBuffer& b);
|
||||
|
||||
void PowMod(BigBuffer& a, const BigBuffer& b, const BigBuffer& c, const BigBuffer& d, BigStack& stack);
|
||||
|
||||
void SetOne(BigBuffer& buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue