Home | History | Annotate | Download | only in math

Lines Matching defs:BigNum

33   \defgroup BigNumPrimitives bignum
37 Each BigNum variable represents a number of a byte-size set when the variable
38 was created. BigNum variables cannot be re-sized after they are created.
46 typedef struct BigNum BigNum;
48 /// Constructs a new BigNum.
50 Allocates memory and creates a new BigNum.
56 \param[out] bignum
57 The BigNum.
63 EpidStatus NewBigNum(size_t data_size_bytes, BigNum** bignum);
65 /// Deletes a previously allocated BigNum.
67 Frees memory pointed to by bignum. Nulls the pointer.
69 \param[in] bignum
70 The BigNum. Can be NULL.
74 void DeleteBigNum(BigNum** bignum);
76 /// Deserializes a BigNum from a string.
83 The target BigNum.
87 EpidStatus ReadBigNum(ConstOctStr bn_str, size_t strlen, BigNum* bn);
89 /// Serializes a BigNum to a string.
92 The BigNum to be serialized.
100 EpidStatus WriteBigNum(BigNum const* bn, size_t strlen, OctStr bn_str);
102 /// Adds two BigNum values.
113 EpidStatus BigNumAdd(BigNum const* a, BigNum const* b, BigNum* r);
115 /// Subtracts two BigNum values.
126 EpidStatus BigNumSub(BigNum const* a, BigNum const* b, BigNum* r);
128 /// Multiplies two BigNum values.
139 EpidStatus BigNumMul(BigNum const* a, BigNum const* b, BigNum* r);
141 /// Divides two BigNum values.
156 EpidStatus BigNumDiv(BigNum const* a, BigNum const* b, BigNum* q, BigNum* r);
158 /// Computes modular reduction for BigNum value by specified modulus.
161 The BigNum value.
169 EpidStatus BigNumMod(BigNum const* a, BigNum const* b, BigNum* r);
171 /// Checks if a BigNum is even.
174 The BigNum to check.
180 EpidStatus BigNumIsEven(BigNum const* a, bool* is_even);
182 /// Checks if a BigNum is zero.
185 The BigNum to check.
191 EpidStatus BigNumIsZero(BigNum const* a, bool* is_zero);
202 EpidStatus BigNumPow2N(unsigned int n, BigNum* r);