Page 249 - Strategies and Applications in Quantum Chemistry From Molecular Astrophysics to Molecular Engineer
P. 249
232 R. CARBÓ AND E. BESALÚ
NSS symbolism constitutes a link between mathematical formalism and
program implementation techniques, because successive generation of j index vector
elements can be programmed in a general but simple way under any high level language.
This can be achieved using a unique do or for loop statement construct, which is general
and independent of the dimension of the involved nested sums. This kind of programming
structure constitutes the GNDL algorithm.
NSS have not a direct translation to the usual high level languages. Present
day compilers or standard language rules ignore such an interesting feature, see for
example the practical final form of the standard Fortran 90 language [5]. Even high level
language compilers have no capacity of processing more than a limited number of
classical do loops in a nest, for example VAX Fortran and NDP Fortran compilers [6]
have a limit of 20 nested do loops. Thus, the GNDL structure is a good candidate to
circumvent these limitations in any compiler.
It looks simple to introduce GNDL in the family of repetitive sentences found
in high level languages. So we feel that a claim in this direction to language and compiler
builders can be made here. Some immediate computational benefits in order to construct
really general programs may be obtained.
3.2 A SCHEMATIC GNDL PROGRAM EXAMPLE
In order to show
in a practical manner the
computational implementation
of a NSS, Program 1
represents a Fortran source
code corresponding to the
NSS structure. The NSS
implementation using a
GNDL algorithm generates
all the possible forms of
vector j. According to this,
Program 1 generates the
indices of the n-dimensional
NSS The
dimension n and the initial,
final and step index values
collected in the vectors i, f,
and s have not been specified
and the question mark
symbol stands for their
possible values. These values
depend on the concrete
application given to the
algorithm. Here it is assumed
that the step vector s has all its components positive definite.