************************* MASTER CODE *************************************** The name of the first file in this disk's directory identifies the volume, issue number and revision of the disk. The format of this filename is: !CDmvvii.rrr where ! = the '!' character m = C for C Users Journal, W for Windows Developer's Journal vv = volume ii = issue rrr = revision (001 for initial release, 002 for next update, etc.) The file UPDATE.DOC contains information about any additions or corrections to material on the disk since the original magazine publication. If you have obtained this code from a floppy diskette or from CompuServe, the headings under the column "FILENAME" represent the names of .ZIP files. All files listed under the filename are archived in the .ZIP file. Keywords: Dec96 C C+ memcpy Pentium Threads Matrix Optimization The code listings for the December 1996 issue of C/C++ Users Journal include source code for Steve Durham's two articles, "A Faster memcpy for the Pentium" and "A Test Jig for Pentium Optimization"; K.B. Williams' programs for testing math functions; Jason Anderson's cross-platform thread library; Keith Crowe's efficient band-matrix calculation technique; Evan Manning's optimization tips for eliminating unnecesary loop calculations; and Anthony Breitzman's high-precision technique using large integers. Also included is source code from our Letters to the Editor (We Have Mail) section. ************************* FILE DESCRIPTION ********************************** The following files are included in the disk: FILENAME AUTHOR-NAME TITLE PAGE (Zip archive/ subdirectory name) ------------------------------------------------------------------------------- durham Steve Durham A Faster memcpy for the Pentium & A Test Jig for Pentium Optimization Full source code for TestJig, includes code for memcpy: testjig.h memcpyf.cpp memcpyi.cpp resource.h stdafx.cpp stdafx.h testjig.cpp testjig.mak testjig.mdp testjig.rc testobj.cpp testobj.h tests.h tjdlg.cpp tjdlg.h testjig.rc2 testjig.ico anderson Jason Anderson Cross-Platform/Embedded Threads athread.h - listing 1, Thread interface abstract base class winthrea.h - listing 2, Win32-specific AThread declaration winthrea.cpp - listing 3, Win32 multithreading implementation unixthre.h - listing 4, UNIX-specific Athread declaration unixthre.cpp - listing 5, UNIX multithreading implementation netthrea.h - listing 6, NetThread.h target.h - listing 7, Target.h main.cpp - listing 8, Test program crowe Keith Crowe Efficient Band Matrix Computations bandstor.h - listing 1, Template class bandStorage spdband.h - listing 2, A class for SPD arrays spdbandf.h - listing 3, A class that supports Cholesky decomposition solvspd.cpp - listing 4, Solving an SPD linear system tridiag.h - listing 5, A class for tridiagonal matrices triexamp.cpp - listing 6, Example using tridiagonal matrices williams K.B. Williams Testing Math Functions Complete source code listings breitzma Anthony High Precision with Imprecise Breitzman Methods atan.cpp - not listed, Simplified atan routine for calculating pi pi.cpp - not listed, A routine to calculate pi using BigNums bignum.h - not listed, BigNum header file addsub.cpp - not listed, Addition and Subtraction routine multiply.cpp - not listed, Multiplication of BigNums divlong.cpp - not listed, Division of BigNum by long integer divide.cpp - not listed, Division of BigNum by another BigNum other.cpp - not listed, Other BigNum routines manning Evan Manning Optimization Tip: Chop Out Needless Roots chopping.c - listing 1, Tests code speed with and without optimizations included letters P.J. Plauger We Have Mail debaca.c - listing 1, de Baca's error handling technique mix.cpp - listing 2, Failed attempt to mix C and C++ perform.cpp - listing 3, Tracking down performance problems using complex numbers ******************************************************************************* If you have questions regarding to the disk, please call or write us. ----------------------------------------------------------------------------- Miller Freeman Inc. 1601 W. 23rd St. Suite 200 Lawrence, KS 66046 1-800-444-4881 or 913-841-1631 -----------------------------------------------------------------------------