Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
MathLink : network programming with Mathematica
Miyaji C., Abbott P., Cambridge University Press, New York, NY, 2001. 256 pp. Type: Book (9780521645980)
Date Reviewed: Feb 1 2002

The book is an improved English version of a Japanese book by one of the authors. It is a programming tutorial that gives a thorough explanation of MathLink. MathLink is an interface for external programs to communicate with Mathematica (a widely used computer algebra package, with several other capabilities). The book introduces basic concepts of MathLink, and explains its data transfer model and the fundamentals of MathLink templates. The book is intended for a wide audience, from the novice programmer to the MathLink expert. Some prior experience with Mathematica and a working knowledge of the C language is assumed.

Mathematica by itself lacks a convenient interface for certain problems, such as the control of a robot, the analysis of images generated by an electron microscope, the import of digital or analog signals, and so on. MathLink could be of help in these situations. It provides a sophisticated level of network programming.

Since most electronic devices are connected to, or controlled by, a computer, it is straightforward to interface them to Mathematica. Once a device is connected to Mathematica, it is easy to manipulate data within Mathematica. The authors provide source code for a wide range of practical applications, giving readers the opportunity to modify the code for their own practical needs. The book includes a CD-ROM that contains the source code for all the routines used within the book, as well as the electronic text of the book, QuickTime, Metrowerks’ CodeWarrior Lite, and the MathLink developer kit (for the Macintosh, Linux and Windows platforms) from Wolfram Research.

The book itself consists of two parts: Basics and Applications. The fundamentals of MathLink--templates, data transfer model, and transfer time--are explained in Basics. The Applications section demonstrates a wide range of MathLink application programs, including a QuickTime movie interface and an interactive graphics program.

Chapter 1 describes the MathLink developer’s kit, the MathLink library, the use of C compilers with the MathLink library, and instructions for installing the CD-ROM. Chapter 2 reviews network basics, and describes several ways to connect the kernel and the front end. Two basic concepts of MathLink--Create and Connect--are discussed. Using Mathematica functions, simple network programming is described and a basic packet monitor is implemented. Chapter 3 describes a sample program to help the reader become familiar with the general principles of building MathLink programs. The speed of data transfer on a network affects the performance of network programs. When designing a MathLink program, it is important to know how long it takes for data transfer. Chapter 4 introduces MathLink list transfer, builds a tool for measuring transfer time, and includes experiments related to data transfer. Chapter 5 focuses on the debugging process for MathLink programs.

The applications section begins with chapter 6. Mathematica has excellent graphics, however, it does not include real-time graphics. Chapter 6 describes a real-time graphics program created using Macintosh’s QuickDraw toolbox, and also describes a TurtleGraphics application that uses it. In chapter 7, a graphics program that shows cellular automata in real time is described. Chapter 8 describes an interface to QuickTime movies. This makes it possible to use Mathematica as an analysis tool for movies.

Chapter 9 introduces an object-oriented programming style for Mathematica. This is heavily used in later chapters. Chapter 10 discusses the creation of an event-driven mechanism. It describes a Serializer application that enables MathLink template programs to send events to the kernel asynchronously. The Serializer enables events to be sent from multiple MathLink programs to one kernel. Chapter 11 implements an event-driven mechanism. There is a discussion on the creation of a Window object by combining real-time graphics, the event-sending mechanism, and object-oriented programming. A free-hand drawing application is illustrated as an example. In chapter 12, two applications that use the window object are demonstrated. It is shown that it is easy to customize window objects for special purposes.

Chapter 13 introduces point, line, curve, and text objects as window objects. Using the event-driven mechanism introduced in Chapter 11, these objects provide real-time interactive graphics that the current front end does not support. Interactive geometry and interactive curve fitting are demonstrated as applications. The creation of sophisticated graphics applications is made easy by combining Mathematica’s power with interactive graphics. Chapter 14 expands the interactive graphics of chapter 13 to an interactive geometry package. This package enables the user to construct interactively geometrical systems and manipulate geometrical objects by mouse. Chapter 15 discusses communication between Mathematica sessions, and shows how to link multiple Serializer sessions.

The authors could have included additional references. However, the book will be very useful for users of Mathematica.

Reviewer:  S. V. Nagaraj Review #: CR125666 (0202-0072)
Bookmark and Share
  Featured Reviewer  
 
Mathematica (G.4 ... )
 
 
C (D.3.2 ... )
 
 
General (D.3.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Mathematica": Date
Implementing discrete mathematics
Skiena S., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1991. Type: Book (9780201509434)
Jun 1 1992
Mathematica
Blachman N., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780135638262)
Aug 1 1992
Exploring mathematics with Mathematica
Gray T., Glynn J., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1992. Type: Book (9780201582215)
Jul 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy