Contents

Introduction
What is the Problem?
Who Owns the Code?

A String Class
The String type: strtype
Example: Making a Matrix Name

Virtual Memory System
vmem and hdr
vopen() and vclose()
vmalloc() and vfree()
vread() and vwrite()

Virtual Vector of Doubles
vdoub
Protected Part of a vdoub
Public Parts of a vdoub
Assignment in vdoub

Virtual Matrices
The Declaration of the VMatrix Class
Protected Parts of VMatrix
The Public Part of VMatrix
Error Detection
Indexing and Assigning Elements
Assignment of Matrices
Constructors and Destructors
The Naming Functions
Other Service Functions
Arithmetic Friend Functions

The Matrix Stack
How Does the Stack Work?
Garbage Collection using the Stack
The Stack
The Private Parts of MStack
The Public Parts of MStack

Matrix Functions
The Functions
Display Control
Matrix IO
Sorting, Subsetting, and Concatenation
Elementwise Operators
Math Functions
Tran()
Trace()
Ident(), Helm(), Fill(), Index()
Sweep() and Inv()
Kron()
Det()
Cholesky(), QR()
Svd() and Ginv()
An Almost Fft()
Reshaping functions: Vec(), Vecdiag(), Diag(), and Shape()
Summation Functions: Sum(), Sumsq(), Cusum()
Mmin(), Mmax()
Elementary Row and Column Operations

Distribution Functions
Header and Description

An X–Y Plot: GMatrix
The GMatrix Class
The Private parts of GMatrix
The Public Part of GMatrix
Show()

Conclusion
Using YAMP
virt.h
virt.cpp and virtop.cpp
Selecting a Memory Model
Selecting Graphics
Using An Environment Variable
Making a LIB
Using YAMP under Windows
Microsoft C/C++ 7.0 and 7.01
NO_CHECKING option

test.cpp
testreg.cpp
testgraf.cpp
Revision History
Version 1.1
Version 1.2
Version 1.3
Version 1.4
Version 1.5
Version 1.6

Bibliography
Index