ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π₯ΡΠΌΠΌΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ:
b = Ea,.
Π³Π΄Π΅ a — Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°; b — Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°; E — ΠΊΠΎΠ΄ΠΈΡΡΡΡΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ°.
ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π°. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π₯ΡΠΌΠΌΠΈΠ½Π³Ρ Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ, ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΏΡΠ½ΠΊΡΠ΅ 2.2.2. ΡΡΠ½ΠΊΡΠΈΠΈ.
haBuildMatrix(r) — ΡΡΡΠΎΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ M Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ
ΡΠ°Π·ΡΡΠ΄ΠΎΠ². Π‘ΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ — ΠΏΠ΅ΡΠ²ΡΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
haGetControlCols(M) — Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠΎΠ»Π±ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ
ΡΠ°Π·ΡΡΠ΄ΠΎΠ² Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π₯ΡΠΌΠΌΠΈΠ½Π³Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΡΡΠΈΡΡ M. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
haMakeE(r) — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ mn Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π₯ΡΠΌΠΌΠΈΠ½Π³Π° Ρ ΡΠΈΡΠ»ΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ
ΡΠ°Π·ΡΡΠ΄ΠΎΠ² r. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
haEncode(b, r) — ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ (ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ b) ΠΊΠΎΠ΄ΠΎΠΌ Π₯ΡΠΌΠΌΠΈΠ½Π³Π° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ r ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ, Π³Π΄Π΅ ΠΊΠΎΠ΄Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠΎΠ»Π±ΡΠ°Ρ
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ExpandBlock (b, r), BuildM(r), AddControlCodes(b, r)). ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
haStrEncode(str, r) — ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ str ΠΊΠΎΠ΄ΠΎΠΌ Π₯ΡΠΌΠΌΠΈΠ½Π³Π° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ r ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ, Π³Π΄Π΅ ΠΊΠΎΠ΄Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠΎΠ»Π±ΡΠ°Ρ
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.