This module implements routines to compute modulo-2 polynomials
in P127[N/2]. (Ensemble de polynômes de degré inférieur ou égal à 127
dans l'ensemble quotient N/2 (ensemble des classes d'équivalences
modulo 2 dans ℕ)).
License:
AGPL3
Copyright Pascal J. Bourguignon 1994 - 2012
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program.
If not, see <http://www.gnu.org/licenses/>
|
(add32 poly gg) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). GG: A polynom of degree 32 modulo N/2 (type (unsigned-byte 32)). DO: Adds the polynom GG to POLY. RETURN: The modified POLY.
|
(divide32 poly gg) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). GG: A polynom of degree 32 modulo N/2 (type (unsigned-byte 32)). DO: Divides the polynom POLY by GG. RETURN: POLY; the remainder (unsigned-byte 32)..
|
(even-parity byte) |
function |
RETURN: The BYTE with the parity bit set to even parity.
|
(insert-bit7 poly) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). DO: Inserts into the POLY a 7th bit that is the even parity of the lowest 7 bits. RETURN: POLY
|
(multiply32 poly gg) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). GG: A polynom of degree 32 modulo N/2 (type (unsigned-byte 32)). DO: Multiplies the polynom POLY by GG. RETURN: The modified POLY.
|
(odd-parity byte) |
function |
RETURN: The BYTE with the parity bit set to odd parity.
|
poly |
type |
A polynom of order 127. We represent them as vectors of four 32-bit words.
|
(poly-from-bytes bytes) |
function |
BYTES: A vector of at least 16 octets, in big endian order.
Only the 16 first octets are used.
RETURN: The poly stored in the bytes.
|
(poly-prin1-to-string poly) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY).
RETURN: A string containing a human readable representation of the polynom POLY.
(it is of the form "x^M + … + x^m").
|
(poly-to-bytes poly) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). RETURN: A vector of 16 octets in big endian order encoding the polynom.
|
(remainder32 poly gg) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). GG: A polynom of degree 32 modulo N/2 (type (unsigned-byte 32)). RETURN: the remainder (unsigned-byte 32) of POLY divided by GG. NOTE: Doesn't modify POLY.
|
(remove-bit7 poly) |
function |
POLY: A polynom of degree 127 modulo N/2 (type POLY). DO: Modifies POLY, removing the 7th bit. RETURN: POLY