ZEN

A toolbox for fast computation in finite extension over finite rings

BACK
Acknowledgements
Authors
Links
PIPS
documentation
example
license
sourceforge
sources
zen
zenfact

Obsolete page

Please use SourceForge.net Logo to get latests releases.

Source files

  • ZMAKE: A C tool that should be able to compile ZEN and ZENFACT on every computer with a POSIX compliant ANSI-C compiler.
  • ZEN: The complete library. Includes all of the modules below.
    • ZEN engine (sys, Zbn, Zeg, Zed, Zer, Zext, Zep, prgm): The engine of the library. Contains the big integers routines, the extensions routines, and the modular operations for unlimited sized integers. Also, contains compilation tools and some test programs.
    • Zeps: The modular operations for small integers fitting in a computer word.
    • Ze2: The characteristic 2 operations. Provides fast operations in finite fields GF(2m).
    • Zetab: Tabulated rings. Allows tabulation of the operations in small rings (cardinality less than 256).
    • Zelog: Tabulated fields. Allows tabulation of the operations in small finite fields (cardinality less than 65536), using a generator of the field.
    • Zem: Montgomery representation of modular finite fields. Can be used with every odd modulus.
    • Zec: Chinese remainder representation of a composed extension. Can be used as soon as a factorisation of the modulus (integer or polynomial) is known.
    • Zef: Provides basic operations on fractions. All the other operations (polynomials, matrices, etc...) can be used over Q but without any warranty of efficiency. Can be used with unset denominators in order to perform operations on relative integers.
  • ZENFACT: A library built on top of ZEN that provides operations on integers and polynomials such as pseudo-prime tests and factorization of polynomials.
Since version 3.0, we no more provide separate packages.
Version File Date and size
3.0r4 .TGZ 06/11/2004 11:49
647339 octets (environ 4 mn avec un modem 56K)
3.0r0 .TGZ 06/11/2004 11:49
654391 octets (environ 4 mn avec un modem 56K)

Patches

Beginning with version 3.0, we will now provide patches for zen between major releases. These patches may introduce (but also hopefully correct) some bugs. This will allow us to introduce new functionnalities more rapidly.
Original version Patched version Patch file Change log Date and size
3.0r0 3.0r1 PATCH.GZ Apply this patch using the following command:
gzip -d < ZEN-3.0patch0-1.gz | patch -p0 -E

Changelog:
Comments in zmake files to be more explicit.
Including __FILE__ and __LINE__ in malloc functions call when DebuggingMalloc is enabled.
Modifying ZBNReadFromString and ZBNPrintToString so as to be able to deal with basis from 2 to 36 (instead of 16) and new test for this feature in zbntest.
A few compilation warnings fixed
Fixing compilation bug in zenfact : flag ZEN_NO_TEST was not set in optimized mode.
Left TODO: Bibliography should be updated in zenfact.
Left TODO: we must find a way to see in zmake if bounds-checking is enabled or not. Feature disabled in defines.h because bounds-checking is not part of a standard gcc distribution.
Added patch files generation tool using CVS (zen/makepatch) and suppressed zenfact/VERSION and zmake/VERSION files to avoid confusion between patch files.
Nov 06th, 2004 11:49
9315 bytes
3.0r1 3.0r2 PATCH.GZ Apply this patch using the following command:
gzip -d < ZEN-3.0patch1-2.gz | patch -p0 -E

Changelog:
Patching a small problem of compilation when optimizing and profiling features were enabled.
Nov 06th, 2004 11:49
863 bytes
3.0r2 3.0r3 PATCH.GZ Apply this patch using the following command:
gzip -d < ZEN-3.0patch2-3.gz | patch -p0 -E

Changelog:
Patching a small problem of documentation compilation under Debian linux distribution (thanks to...).
Fixing bugs in documentation of multiplication and division functions of zbn.
Nov 06th, 2004 11:49
1435 bytes
3.0r3 3.0r4 PATCH.GZ Apply this patch using the following command:
gzip -d < ZEN-3.0patch3-4.gz | patch -p1 -E

Changelog:
Gather all three directories zen zenfact and zmake in a ZEN directory with VERSION and makepatch.
Change makepatch accordingly
Include typos and bugfixes by Reynald Lercier
Include improvements by Reynald Lercier in general multiplication of polynomials
Nov 06th, 2004 11:49
6339 bytes
We assume that you have detarred the initial source file in a directory ZEN, so that your directory looks like the following:
> ls -1 ZEN
zen
zenfact
zmake
In order to use the patch file ZENpatchY-Z.gz, place yourself in your directory ZEN and type the command that is adviced. All patches have to be applied sequentially. If the version doesn't match, a message similar to the following one will appear
This file doesn't appear to be the 3.0 version -- patch anyway? [n] n
Answer no! Then, have a look at zen/VERSION file to check your current version.

Old versions

For compatibility purpose, one can find old distributed versions below.
Version 2.1 2.0
ZEN .TGZ .TGZ
ZENFACT .TGZ .TGZ
BACK
Acknowledgements
Authors
Links
PIPS
documentation
example
license
sourceforge
sources
zen
zenfact

Florent Chabaud
E-mail: florent.chabaud@m4x.org
GPG key: KEY