[#Num3072]
= Num3072
:mrdocs:

A 3072&hyphen;bit number in the MuHash prime field, stored as an array of limbs&period;

== Synopsis

Declared in `&lt;crypto&sol;muhash&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class Num3072;
----

== Description

Num3072 holds the running numerator or denominator of a MuHash3072 set and provides the modular multiply, divide, and inverse operations used to combine set elements&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:Num3072/double_limb_t.adoc[`double&lowbar;limb&lowbar;t`] 
| Unsigned integer type twice as wide as a limb, used for carries&period;
| xref:Num3072/limb_t.adoc[`limb&lowbar;t`] 
| Unsigned integer type of a single limb&period;
| xref:Num3072/signed_double_limb_t.adoc[`signed&lowbar;double&lowbar;limb&lowbar;t`] 
| Signed integer type twice as wide as a limb, used for carries&period;
| xref:Num3072/signed_limb_t.adoc[`signed&lowbar;limb&lowbar;t`] 
| Signed integer type of a single limb&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:Num3072/2constructor-08.adoc[`Num3072`]         [.small]#[constructor]#
| Constructors
| xref:Num3072/Divide.adoc[`Divide`] 
| Divide this number by another, modulo the MuHash prime&period;
| xref:Num3072/Multiply.adoc[`Multiply`] 
| Multiply this number by another, modulo the MuHash prime&period;
| xref:Num3072/SetToOne.adoc[`SetToOne`] 
| Set this number to the multiplicative identity (one)&period;
| xref:Num3072/ToBytes.adoc[`ToBytes`] 
| Serialize this number into a fixed&hyphen;size byte buffer&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:Num3072/limbs-02.adoc[`limbs`] 
| The limbs holding the little&hyphen;endian representation of the number&period;
|===


== Static Data Members

[cols="1,4"]
|===
| Name| Description
| xref:Num3072/BYTE_SIZE.adoc[`BYTE&lowbar;SIZE`] 
| Size of the serialized number in bytes (3072 bits)&period;
| xref:Num3072/LIMBS-06.adoc[`LIMBS`] 
| Number of unsigned limbs making up the 3072&hyphen;bit number&period;
| xref:Num3072/LIMB_SIZE.adoc[`LIMB&lowbar;SIZE`] 
| Bit width of a single unsigned limb&period;
| xref:Num3072/SIGNED_LIMBS.adoc[`SIGNED&lowbar;LIMBS`] 
| Number of signed limbs used by the intermediate representation&period;
| xref:Num3072/SIGNED_LIMB_SIZE.adoc[`SIGNED&lowbar;LIMB&lowbar;SIZE`] 
| Bit width of a single signed limb&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
