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