website security

Copyright Wolfgang M. Hartmann.

Last revised: January 2014

List of Content

  1. Dates of CMAT Releases
  2. Wolfgang's Coefficient of Usability of a Software
  3. User Software License Agreement
  4. Warranty
  5. Installation of CMAT
  6. Running CMAT
  7. Some known Problems with CMAT
  8. Technical Papers
  9. CMAT Newsletters
  10. Things ToDo
  11. New Developments Since Release 3 in Dec. 2002
  12. "Algorithm" by Paul Boggs

I have been working on this software since 1995 when my wife went for work to New Orleans and I felt lonely in Raleigh NC. Here is a small summary of the history, content, and features of CMAT.

Offering Consulting Service

Dates of CMAT Releases

  1. Release 1: 1996 (Copyright February 1997)
  2. Release 2: December 1999
  3. Release 3: December 2002
  4. Release 4: July 2007
  5. Release 5: January 2009
    1. August 6, 2010: Bug fixes
    2. September 16, 2010: new version uploaded
    3. October 13, 2010: new version uploaded
    4. November 11, 2010: new version uploaded (more stable for pca, factor, irt, sem)
    5. February 20, 2011: new version uploaded (now with new factor and cfa)
    6. March 07, 2011: various bug fixes
    7. April 2011: See below (Technical Reports section) the new Tech Report on the automatic CFA Model Improvement Algorithm
  6. Release 6: November 2011: I'm now developing with MS Visual Studio 2010 (C/C++) and Intel Parallel Studio (Fortran 90)
I'm still looking for some people who want to work with me on this, especially:
  1. Somebody who does some testing of the language and functions. Enters bug reports. Would need to have some Math and Stat background.
  2. Somebody who does some marketing. Would need to know about other software in Math and Stat.

WCU: Wolfgang's Coefficient of Usability of Software

Wolfgang defines WCU as the ratio among the number of people who actually use a software (i.e. would be even willing to pay for the use) and the number of people who developed that software. Now, since CMAT has only one developer, the smallest numbers of WCU are 0 and 1, and compared to the high values of WCU for SPSS and SAS (not even thinking of Google and Facebook) CMAT seems to be rather bad. However, quite a number of packages of R don't do much better than CMAT:-)

User Software License Agreement

Please read this license carefully before using the software. By installing or using this software, you are agreeing to be bound by the terms of this license. If you do not agree to the terms of this license, either contact the author or promptly remove the software.
  1. This software may not be distributed to third parties. The free version may only be used for non-profit research and teaching.
  2. Using the software for commercial applications or for profit needs a specific license agreement.
  3. Supply of any part of this software as part of another software requires the separate prior written agreement of the CMAT managers, which may include financial terms.
  4. This software is copyrighted and may not be modified, decompiled, reverse engineered, or disassembled.
  5. Due acknowledgment shall be made of the use of CMAT in research reports or publications.
"everything free comes without guarantee". Patience is expected. The author is grateful for responses by users such as bug reports or proposals for improvement.
At this time there is only a Windows version. A Linux version would be more appropriate and will be out shortly.


The software and manual of CMAT are offered “AS IS” and without warranties as to performance or merchantability. The seller’s and/or redistributors may have made statements about this software. Any such statements do not constitute warranties and shall not be relied on by the user in deciding whether to use this program. This program is offered without any express or implied warranties whatsoever, because of the diversity of conditions and hardware under which this program may be used, no warranty of fitness for a particular purpose is offered. The users of this software are advised to test the program thoroughly before relying on it. The users must assume the entire risk of using the program; any liability of seller, provider or manufacturer will be limited exclusively to product replacement. In no event shall the maker or distributor of CMAT be liable for any loss of profit or any other commercial damage, including but not limited to special, incidental, consequential or other damages in the use, installation and application of CMAT.

On the Installation of CMAT

There are two ways of installing CMAT: either you copy the most important files from the download site or copy the complete directory structure from a DVD distributed by the developer. The files from this website represent the most recent but not fully tested version whereas the files on DVD correspond to an earlier, but in general more stable release.

For online documentation Adobe Reader must be installed in a directory Reader (containing files AcroRd32.exe, AcroRd32.dll etc.) preferably at the same hierarchy level as the cmat directory. Then the help("string") function can be used to open the reference manual at the specified term. You may move easily between the more than 400 terms (bookmarks) of the CMAT Reference Manual by clicking the many more hyperlinks. The manual can also be opened at a specific page or for searching a specified term. The Tcl/TK GUI can be used also for accessing the reference manual.

For graphical output (plotting) CMAT has an interface to the gnuplot software. In CMAT you may connect to gnuplot either interactively or in batch mode (running scripts). Most Linux distributions have gnuplot included. For Windows and other OS gnuplot can be downloaded from the internet free of charge, see for example here (There is also a demo gallery.) For some "terminal" output of gnuplot (like SVG, EPSLATEX, and PDF) you may have to download some additional software (SVGViewer, graphixs, etc). An excellent book about gnuplot is: Philip K. Janert, "Gnuplot in Action", Greenwich CT: Manning Publications Co., 2009 Toshihiko Kawano has his "not-so-freqently asked questions" here and here something about gnuplot tricks.

On Running CMAT

CMAT is a scripting language like Matlab or R or SAS/IML. CMAT can be run either in batch mode or interactively with command line input. In MS Windows this can be done either
  1. with one of the two available graphical interfaces, one in Windows and one in Unix style,
  2. or either by calling cmat.exe in a DOS Command window, or using Emacs (and evtl. BASH) in Unix style. See remarks in the CMAT Tutorial document.

It is best to run CMAT (either interactively or in Batch mode) from the mytst, test, tnlp, or tsem directory. The test, tnlp, and tsem directories contain a large number of batch example files all ending with the extension .inp together with the .log and .txt output files. When running those examples, e.g.

cmat tode.inp

you should obtain the same results, but the log file will show the actual date of the execution. Note, that the CMAT input must always be started with a { bracelet for the start of a compound statement. At least one statement (maybe an empty one) must be run before the script is closed by a mstching } bracelet.

You will find more information about downloading and running CMAT in Windows, Linux, and Unix at the download site.

Some known Problems with CMAT

Bugs are usually fixed when they are found. However, patience is expected: If you are aware of any problems with CMAT please contact the developer.

Selected CMAT Documents

The following are .PDF files which are available for download at the download site. Only the Tutorial and the Summary Manual can be downloaded from here. Use the right mouse button for downloading files.

  1. Complete User's Manual (about 18 mb, close to 3000 pages):
    1. User Software License Agreement
    2. Introduction
    3. Installing and Running CMAT
    4. Restrictions and Comparisons
    5. Tutorial: Basic Elements of the CMAT Language
    6. Summary of Operators, Keywords, and Functions
    7. Reference Guide
    8. Some Details
    9. The Bibliography

  2. CMAT Reference Manual(about 14 mb, more than 2000 pages):
    1. Reference Guide
    2. The Bibliography

  3. CMAT Tutorial (about 200 pages):
    1. Introduction
    2. Tutorial: Basic Elements of the CMAT Language
    3. Summary of Operators, Keywords, and Functions
    4. The Bibliography

  4. CMAT Details and Examples:
    1. Details
    2. The Bibliography

  5. CMAT Summary Manual (about 110 pages):
    1. Introduction
    2. Summary of Operators, Keywords, and Functions
    3. The Bibliography
    Here some short guidelines about how to use the hyperref package in LaTeX.


    Please note that the developments reported in the last posted newsletter are not much tested and may not work with the software posted at the site.

    Some Technical Papers

    The download site also contains a number of technical reports illustrating applications of CMAT:
    1. Semiannual Newsletters Starting 2003
      The newsletters report about the progress in the development and illustrate some applications of CMAT.
    2. Data Objects in CMAT:
      This paper sketches some aspects of the data objects implemented in CMAT. Structures are not running at this time but should be at the end of 2010.
    3. Tensor and List Operations in CMAT:
      Many matrix operations have been extended to tensors. However, this paper sketches also some more specific and additional operations for tensors and data lists.
    4. An Important Language Extension:
      This two page paper describes a new form of matrix literal permitting the input of matrices containing string data without quotes.
    5. On the Use of Matrix Language:
      This small paper illustrates the difference between educational and efficient programming. Note, CMAT almost always knows when a matrix is symmetric and takes advantage of this. Also, identity matrices are stored as diagonal matrices. Sparsity in matrices and vectors is detected automatically. Such examples are often found in statistics.
    6. CMAT Code for some Matlab Programs by Olvi Mangasarian and Helen Zhang:
    7. Presentation at DAGStat Conference, Bielefeld, March 2007:
    8. Variable Selection Algorithm for Micro Array Data:
      The analysis of gene expression data is currently a very challenging task. However this paper shows that we can use CMAT to find a very small number of genes from 22283 genes of an Affymetrix chip which yields an exact classification of two kinds of cancer.
    9. On the new CFA model improvement algorithm

    Things ToDo

    CMAT was first written for Unix and later for Windows. We are now working on a 32 bit version for Linux and Unix, and after that on a 64 bit version for Windows, Linux, and Unix. We are also working on an interface to WPS and R.
    1. Dynamic binding of C and Fortran users code.
    2. Extending the language to data structures like in C.

    New Developments Since Release 3 in December 2002