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