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.
   245   246   247   248   249   250   251   252   253   254   255