Skip to content

Commit 58da5bd

Browse files
committed
doc: Fix upper bounds + cleanup in field_5x52_impl.h comment
1 parent 486205a commit 58da5bd

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/field_5x52_impl.h

+12-5
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,18 @@
2222
#endif
2323

2424
/** Implements arithmetic modulo FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F,
25-
* represented as 5 uint64_t's in base 2^52. The values are allowed to contain >52 each. In particular,
26-
* each FieldElem has a 'magnitude' associated with it. Internally, a magnitude M means each element
27-
* is at most M*(2^53-1), except the most significant one, which is limited to M*(2^49-1). All operations
28-
* accept any input with magnitude at most M, and have different rules for propagating magnitude to their
29-
* output.
25+
* represented as 5 uint64_t's in base 2^52, least significant first. Note that the limbs are allowed to
26+
* contain >52 bits each.
27+
*
28+
* Each field element has a 'magnitude' associated with it. Internally, a magnitude M means:
29+
* - 2*M*(2^48-1) is the max (inclusive) of the most significant limb
30+
* - 2*M*(2^52-1) is the max (inclusive) of the remaining limbs
31+
*
32+
* Operations have different rules for propagating magnitude to their outputs. If an operation takes a
33+
* magnitude M as a parameter, that means the magnitude of input field elements can be at most M (inclusive).
34+
*
35+
* Each field element also has a 'normalized' flag. A field element is normalized if its magnitude is either
36+
* 0 or 1, and its value is already reduced modulo the order of the field.
3037
*/
3138

3239
#ifdef VERIFY

0 commit comments

Comments
 (0)