FORM Factsheet
Why use Symbolic Manipulation?
The use of computerized formula manipulation greatly simplifies the work
of scientists and engineers. Not only is it faster than work by hand, it
is usually also more reliable. It is also much easier to obtain a nice
printout of the results.
What is FORM?
FORM is a Symbolic Manipulation system that is designed for the processing
of exceptionally large formulae in as little time as possible. There are
many criteria by which to judge what is the best Symbolic Manipulation
system; by this criterion FORM wins the prize.
What distinguishes FORM from the rest?
Computer Algebra (CA) systems are designed to provide the user with a
mathematicians workbench. They contain an enormous library of mathematical
knowledge and try to react to input in almost the same way as a human would.
For most common problems this is ideal. However, this design forces some
limitations on the internal structure of such a CA system. It results mostly
in a restriction of the size of the expression that can be manipulated
(determined by the size of the physical memory of the computer). When this
size is surpassed, either the problem will be abandoned, or execution becomes
intolerably slow. In FORM the allowable types of operations have been
restricted to some degree to remove these limits. Hence the maximum size of
expressions is determined by the amount of free disk space. The execution
time is effected little by the disk accesses. FORM has a smaller instruction
set than most CA-systems and needs some more care in programming, but it will
allow the solution of a very large class of problems that are too big for
CA-systems. For this reason FORM is called a Symbolic Manipulation system
rather than a CA-system.
The optimization for speed and expression size has a spinoff: it turns out
that the structure of FORM is very well suited for parallel processing.
It may be possible to gain a few extra orders of magnitude in symbolic
power in the future.
What kind of problems will FORM solve?
FORM is a language like C or Fortran. By itself it will not solve anything,
but when programmed properly, one can do very much with it. It is rapidly
becoming the premier symbolic language in particle physics. In general it
will be useful in deep perturbation expansions. These occur in many fields
of science and engineering. It is very good with multivariate polynomials.
It has tools to manipulate the argument fields of functions in abstract ways.
It can deal with non-commuting objects in a natural way. The basic rule is
that if you have a problem that is too big for your favorite system, have a
good look at FORM.
Is FORM hard to learn?
Whether FORM is experienced as easy or as hard depends often on the prior
experience of the user with CA-systems. This is caused by a completely
different operational philosophy. This again is at least partially caused
by the two basic requirements: speed and large formulae. Once this
philosophy is understood things are very easy. The user is aided in this
with a large tutorial section in the manual. The largest part of the 259
page manual is taken by a description of all features and commands. A big
section is taken by some explicit examples, some of which are rather
complicated, but everything is explained. The tutorial introduction
FORM for Pedestrians of André Heck (CAN)
makes the learning curve for FORM users less steep.
Should you sell your CA-system?
Of course not! The knowledge base of a good CA-system is very valuable.
It is often very nice to solve a problem by giving parts of it to the
CA-system, then do the big part of it with FORM and then prepare a
beautiful output with the CA-system again. This is just like Fortran:
because a CA-system can do some calculations, it does not mean that one
has no further need for a calculational language. Actually the hybrid of
FORM and a CA-system can surpass the usefulness of either system alone
manifold.
On which computers is FORM available?
FORM is a system that runs in batch mode. This makes it rather easy to get
it to run on nearly any computer, provided this computer has a decent C
compiler. Especially the performance on the high end workstations is very
good when compared to mainframes. It will run on computers with MS-DOS
(1 Mbyte and hard disk needed); Atari-ST/TT; Apple Macintosh; VAX/VMS,
VAX/Ultrix, DEC-stations; Apollo DN3500, DN10000; NeXT; IBM RS-6000;
SUN 3, 4 and SPARC; Silicon Graphics, and many others.
Is FORM well supported?
FORM is very much alive. Version 1 came out in 1989 and is available by
anonymous ftp from ftp.nikhef.nl.
Version 2 came out in 1991. In the future the language is expected to become even better. Often users suggest
improvements that would make the solution of their individual problems much
easier. These then are often properly "abstracted" so that they may work
for many types of problems and worked into the language. Bugs (yes, they all
have them) are usually eliminated quickly, if they are properly repeatable.
How to obtain more information about FORM?
The easiest way to ask questions about FORM is to send e-mail to form@can.nl.
If this path is not available to you, you can try snail mail to:
CAN Diensten, Kruislaan 419, 1098 VA, Amsterdam, The Netherlands.
(CAN stands for Computer Algebra Nederland)
Some facts about FORM
- Size
- The executable takes about 200-400 Kbytes, depending on the type of computer.
Libraries (when available) can be obtained by means of anonymous ftp from
ftp.nikhef.nl (connect with ftp to
this computer, give the user name
anonymous and your network or mail
address as the password. The directory form will contain a readme file to help you further).
- Origins
- FORM was written by J.A.M. Vermaseren at NIKHEF-H (the Dutch national
institute for nuclear and high energy physics). Work started in 1984.
It has been written in C. The source code is close to 1 Mbyte and exceeds
40,000 lines. This code is kept manageable with a folding editor.
- Data types
- Symbols, Vectors, Indices, Functions (commuting and non-commuting), Sets,
Tensors, Tables, Expressions.
- Operations
- Id, multiply, (anti)symmetrize, discard, trace, contract, collect, sum,
ratio, count.
- Available functions
- d_(Kronecker delta), delta_, distrib_, e_(Levi Civita tensor),
fac_(factorial), g_(Dirac gamma matrix), nargs_, order_, replace_,
reverse_, sum_, sump_, theta_.
- Modes
- Brackets, antibrackets, format, modulus, (n)write, (n)print, fixindex,
dimension, compress, keep, propercount.
- Flow control
- If/elseif/else/endif, while/endwhile, repeat/endrepeat, goto/label.
- Preprocessor
- Include, call, procedure/endprocedure, if/else/endif, ifdef, ifndef,
define, undefine, do/enddo, message, commentchar.
- Modules
- .global, .sort, .store, .clear, .end. With special option.
- And more...
- Argument/endargument, delete, fill, skip, drop, load, save.
- Most powerful statement
- The
id statement allows "regular expression like" pattern matching to
initiate substitutions. There are several options.
- Some very big problems solved
- Some three loop QCD calculations (FORM program described in S.A.Larin,
F.V. Tkachov and J.A.M. Vermaseren, NIKHEF-H preprint 91-17, to be
published). They took together more than 600 hours on a fast computer
(Apollo DN10000). One integral needed about 180 Mbytes of intermediate
disk space! Considering the speed and efficiency of FORM this may be a
new world record in large scale symbolic manipulation.
- The fact that the two loop corrections in pure gravity are not finite
was first calculated in 1985 with a dedicated C program (it was claimed
that no Symbolic Manipulation system could handle a problem this size)
that ran for several days. Because there were some doubts about the
results it was recalculated with a FORM program that ran for several
hours (A. van de Ven, to be published).
- A full calculation of two loop Drell-Yan cross sections (R. Hamberg and
W.L. van Neerven). For this calculation an enormous library for the solution
of special integrals was constructed.
- CAN Address
- CAN Diensten
Kruislaan 419
1098 VA Amsterdam
The Netherlands
email: form@can.nl
fax: +31 20 5608448
tel: +31 20 5608400
FORM Home Page.
webmaster@can.nl
Last updated: April 15, 1998