Page 250 - Strategies and Applications in Quantum Chemistry From Molecular Astrophysics to Molecular Engineer
P. 250
APPLICATIONS OF NESTED SUMMATION SYMBOLS TO QUANTUM CHEMISTRY 233
There, Application is a called procedure where the n nested loops converge
and where their leading indices can be arbitrarily used in the desired internal application.
The j index values generation is sequential but the execution of Application can be
performed into separate CPU’s, each one controlling the process attached to one of the
forms of the vector j. In this manner, the full computation can be parallelized if desired.
In fact, this is a general algorithm, enabling to perform a parallel Application
implementation if the nature of the problem asks for such a process and the available
hardware allows to run it in this manner. A previous tentative description on GNDL, in
a sequential programming framework, was initially made by Carbó and Bunge [4].
Various application examples have been constructed by the authors. Some
Fortran source codes on combinatorial analysis, product of an arbitrary number of matrices
and determinant evaluation in a parallel transputer environment [7] have been tested and
encouraging results obtained.
4. Mathematical application examples
As an illustration of the possible use of the described symbols, there will be
presented first a set of possible purely mathematical application examples of NSS.
4.1 GENERATION OF VARIATIONS AND COMBINATIONS
A NSS can be used to generate variations and combinations of m elements
belonging to an arbitrary set of mathematical objects. It is only necessary numbering in
a canonical order, from 1 to m, all the elements in the set. This will produce a completely
formal development which can be occasionally used for immediate implementation on any
high level language. Although this direct translation will obviously lack of programming
refinement in the first bulk program scheme, it may be considered a not too bad starting
point in order to obtain a given optimized code.
Then, one can easily describe the expressions that stands for the generation
of some combinatorial entities. It is required the implementation of the following NSS:
Depending on the definition of the logical vector L they are obtained
different entities:
a) If L is obviated the NSS then represents the generation of all the
possible variations with repetition, which can be formed making groups
of n elements out of the m element set.
b) When L is defined as then they are reproduced
the m!/(m-n)! variations without repetition, which can be formed making
groups of n objects taken from the m element set inside the nested sum.
It is required the condition
c) If L is defined as then the NSS creates the
m!/n!(m-n)! combinations related to a set of m elements, when they are
taken in groups of n out of the m element set.