DESCRIPTION | CORE SOURCE CODE | IEEE COMPRESSION SOURCE CODE | SAMPLE PROGRAMS
DOCUMENTATION | DOWNLOAD | VERSION HISTORY | DISCLAIMER

twist : a compression utility


This utility was developed as a part of the work conducted under "Task 1" in the project "Semiglobal Oceanic Teleconnections", sponsored by the Research Council of Norway (Norges Forskningsråd) under contract 122230/720.



DESCRIPTION

  • twist (formerly called squeeze) is a compression tool tailored for fields where node-to-node variations are small, and where undefined (dry) nodes are abundant
  • twist stores data using two byte integers, hence, there's generally a loss of accuracy
  • squeeze contains the subroutines that make up the "heart" of twist
  • the decompression tool is release
  • scipts are included for compression (twist.sh), and decompression (release.sh), of binary dump files; the loss of accuracy may be checked (accrcy_loss.sh)
One important feature of twist is that it handles one field at a time, so individual fields may be decompressed separately. However, this has not been implemented in the present version of release.sh. The software (code, "make-files", scripts etc.) that are listed below, resides in various directories, see the "README" file for details.


CORE SOURCE CODE

Fortran source code:
  • squeeze.f
  • speedsqueeze.f
  • release.f
  • twist.f

SOURCE CODE FOR COMPRESSION OF IEEE FILES

Fortran source code:
  • accrcy_loss.f
  • checkname.f
  • releaseIEEE.f
  • release_dims.f
  • strings.f
  • twistIEEEi2.f
  • twistIEEEi4.f
  • twistIEEEr4.f
  • twist_info.f
"Make-files":
  • accrcy_loss.make
  • checkname.make
  • releaseIEEE.make
  • release_dims.make
  • twistIEEEi2.make
  • twistIEEEi4.make
  • twistIEEEr4.make
  • twist_info.make
shell scripts:
  • accrcy_loss.sh
  • release.sh
  • twist.sh

SAMPLE PROGRAMS

Fortran source code:
  • L_rndm.f77 ("LINUX" version)
  • S_rndm.f77 ("SGI" version)
  • Tmultitest.f
  • Tsqueeze.f
  • Ttwist.f
  • random_seq.f
  • release_seq.f
  • twist_seq.f
"Make-files":
  • Tmultitest.make
  • Tsqueeze.make
  • Ttwist.make
  • linux.head ("head" include file for make files; LINUX version)
  • linux.tail ("tail" include file for make files; LINUX version)
  • random_seq.make
  • release_seq.make
  • sgi.head ("head" include file for make files; SGI version)
  • sgi.tail ("tail" include file for make files; SGI version)
  • twist_seq.make

DOCUMENTATION


DOWNLOAD

Download compressed archive file:

VERSION HISTORY

  • Version 1.0: Original version released June 24, 1998
  • Version 1.1: New version released March 2, 1999.
    New features:
    1. Included documentation in HTML-format
    2. Included compression algorithm no. 6
    3. Eliminated one minor bug
    4. Decompression tool renamed; to 'release'
  • Version 2.0: New version released April 12, 1999
    New features:
    1. Included 'twist' for optimal compression
    2. Included compression algorithm no. 9
    3. Included compression algorithm no. 1
    4. Several bugs eliminated
    This is the first version which has been made publicly available.
  • Version 2.1: New version released May 18, 1999
    New features:
    1. Rewritten 'twist' for faster and less memory intensive compression (using 'speedsqueeze')
    2. One bug eliminated
  • Version 2.1.1: Modified version released July 12, 1999
    1. Serious bug during compression using algorithm no. 1 eliminated
  • Version 2.2: New version released January 5, 2000
    1. Included the test program "multitest"
    2. Eliminated bug in case of differences exceeding 32768 in the subroutines 'get_valueXY' on squeeze.f and 'speed_valueXY' on speedsqueeze.f
    3. Rewritten 'twist'; modification of tests for successful compression
  • Version 3.0: New version released July 5, 2001
    1. Modified make-files to work properly on LINUX
    2. Reorganized structure of files/ directory tree, included more flexibility in the processes of installation
    3. Introduced "install_twist.sh" as a user-friendly installation interface.
    4. Adopted the use of "twist" as a term that defines this library
  • Version 3.1: New version released August 27, 2001
    1. Included software for testing from in-house version, used by "random_seq.sh"
    2. Introduced software for compression ("twist.sh") and decompression ("release.sh") of binary dump files, accuracy loss determination ("accrcy_loss.sh"), and additional related software (e.g., "twist_info" which writes a summary of the contents of compressed binary dump files)
    3. Included brief on-line descriptions of some scripts

DISCLAIMER

I TAKE NO RESPONSIBILITY OF THE USE OF THE COMPRESSION AND DECOMPRESSION TOOLS. THE USER SHOULD KEEP A BACK-UP OF THE ORIGINAL RESULTS AS A SAFEGUARD AGAINST ANY PROGRAMMING ERRORS.

... however, if a problem occurs, please do not hesitate to inform me, and I'll do my best to help you out!

Inventor of twist: Dr. Arne Melsom
Send your comments to: arne.melsom@dnmi.no

DESCRIPTION | CORE SOURCE CODE | IEEE COMPRESSION SOURCE CODE | SAMPLE PROGRAMS
DOCUMENTATION | DOWNLOAD | VERSION HISTORY | DISCLAIMER