April 1995 - ALGORITHMS


FEATURES

IMAGE AUTHENTICATION FOR A SLIPPERY NEW AGE

by Steve Walton

Is seeing really believing anymore? Can we trust images as evidence of true events? The answer is generally "no," although image-authentication algorithms do make it possible to tell whether or not an image has been modified. Steve describes and implements a class of algorithms that makes it possible to authenticate digital images.

THE DETRIMENTAL WIRE-EXCLUSION HEURISTIC

by Paul J. Martino

Combinatorial optimization involves finding the optimal solution to problems such as computer wiring and the now-familiar traveling-salesman problem. Paul presents a heuristic that's efficient and portable.

THE BMP FILE FORMAT, PART 2

by David Charlap

In last month's installment of this two-part article, David examined how the "standard" BMP file format has been implemented differently on different platforms. This month, he explains how to use the structures to read and interpret bits.

DIRECTED ACYCLIC GRAPH UNIFICATION

by David Perelman-Hall

David describes and implements an object-oriented method of enacting a constraint system, which has been adapted from directed acyclic graph unification. Although he implements this approach for a natural-language parsing system, it can be used in applications as well.

EMBEDDED SYSTEMS

ABOVE-REAL-TIME TRAINING AND THE HYPER-TIME ALGORITHM

by Dutch Guckenberger, Liz Guckenberger, Frank Luongo, Kay Stanney and Jose Sepulveda.

The hyper-time algorithm lets you alter the flow of "simulated time" to benefit users--slower than real time can be used for novice users, while faster than real time can be used for experts or persons "time surfing" over uninteresting portions of information. Applying the algorithm to "Above-Real-Time Training" also improves human performance, increases retention and training-device effectiveness, and decreases stress.

NETWORKED SYSTEMS

A POP3 MAIL CLIENT USING WINSOCK

by Robert A. Duffy

Robert presents a C++ foundation for Internet client applications running on Windows. In doing so, he implements a mail client that understands the Post Office Protocol (POP), a powerful Internet protocol for processing e-mail.

EXAMINING ROOM

BORLAND C++ 4.5 AND OLE 2.0 PROGRAMMING

by Ted Faison

In examining the recently released Borland C++ 4.5, Ted focuses on its OLE 2.0 support, using it to create an OLE server that he then embeds into a Word for Windows 6.0 document.

PROGRAMMER'S WORKBENCH

SERIALIZATION AND MFC

by Chane Cullens

Serialization is the process of writing or reading one or more objects to or from a persistent-storage medium, such as a disk file. Chane examines MFC's serialization mechanism and what it offers cross-platform developers.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Michael takes a look-see at what's new with visual programming.

C PROGRAMMING

by Al Stevens

Al analyzes the C++ Standard Template Library (STL), then wraps up his text-search project by discussing the C source-code module of the interface between the Visual Basic front end and the Windows DLL that implements the search engine.

ALGORITHM ALLEY

edited by Bruce Schneier

In this month's "Algorithm Alley," Kim Larsen presents a simple yet clever approach for computing the correct day of the week.

UNDOCUMENTED CORNER

edited by Andrew Schulman

Tim unravels the floating-point-division algorithm that Intel didn't quite implement correctly with its Pentium processor.

PROGRAMMER'S BOOKSHELF

by Al Stevens

In last month's "Programmer's Bookshelf," Al examined Adrian King's Inside Windows 95. This month, he dives further into Windows 95 when he looks at Andrew Schulman's Unauthorized Windows 95.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

SWAINE'S FLAMES

by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST

by Monica E. Berg


Copyright © 1995, Dr. Dobb's Journal