+ All Categories
Home > Documents > Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for...

Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for...

Date post: 06-Apr-2018
Category:
Upload: omasazz
View: 217 times
Download: 0 times
Share this document with a friend

of 15

Transcript
  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    1/15

    PERTURB: A Special-Purpose Algebraic ManipulationProgram for Classical Perturbation Theory

    Laurence E. Fried and Gregory S. EzraDepartment of Chem istry, Cornell University, Zthaca, New York 14853

    Received 2 June 1986; accepted 1 October 1986

    Classical perturbation theory provides a particularly promising route to EBK quantization of nonsepa-rable systems. However, the number of terms generated when implementing perturbation theory forsystems with more than two degrees of freedom can prove too arge for general purpose symbolic manipu-lators to handle. We describe PERTURB, specialized algebraic manipulation program written in C forquantization of multidimensional systems. A review of operator based classical perturbation theoryis given, and the relationship between this type of perturbation theory and quantum mechanicalVan Vleck perturbation theory discussed. The relative performance of the Dragt-Finn and Lie trans-form algorithms is assessed.

    I. INTRODUCTION AND MOTIVATION

    Much effort has been devoted recently tothe application of semiclassical methods toproblems of molecular vibrational dynam-i c ~ . ~ - ~nterest in semiclassical approxima-tions for multidimensional systems such asmolecules has been stimulated by funda-mental questions concerning the implica-tions of phenomena such as regular versuschaotic motion in classical mechanic^^^^ forquantum mechanic^,^^^ as well a s the need todevelop tractable computational alternativesto variational calculations of vibrational androtation-vibration spectra.8 Most semiclassi-cal methods for calculation of molecular vi-brational levels proposed to date have beenbased on the EBK quantization conditions,g-llwhich are essentially single-valuedness re-quirements for multidimensional WKB wave-functions." The EBK quantization approachrelies on the existence of regular m ~ t i o n . ~That is, trajectories for N degree of freedomsystems must lie on N dimensional surfaces

    in phase space with the topology of N-tori.12In tha t case the N actions, which are loopintegrals of p.dq around a set of curves span-ning the N-torus, must obey the quantiza-tion conditions

    Ji = (ni + aj/4), Z = 1 , 2 . . N , (1.1)where ni s the i th quantum number and a i

    is the corresponding Maslov index,"l3

    whosevalue is determined by the particular em-bedding of the torus in phase space.14 Primi-tive (as opposed to uniform, cf. Ref. 15 , andrefs. therein) semiclassical eigenvalues arethen jus t the energies of trajectories lying ontori with quantizing actions. For recent re-views see Refs. 1-4,16,17.

    The majority of quantization methods areapplied most straightforwardly to systemswhose motion is weakly perturbed from thatof a multidimensional harmonic oscillator,although several techniques have been usedto quantize strongly resonant quasiperiodictrajectories (see ref. 17, and refs. ther ein).The quantization of chaotic5 classical motionis, however, intractable within the EBK frame-work, since the tori required do not exist inthe chaotic regime. There are two possibleapproaches to the quantization of chaoticmotion. One is to abandon the EBK schemeentirely and use a n alternative formulationof semiclassical mechanics based on the enu-

    meration of all periodic orbits.18 While thisapproach apparently has a secure theoreti-cal foundation, in practice the periodic orbitsare difficult to find.19 A second approach isto attempt the EBK quantization of chaoticmotion even though tori do not exist, by as-sociating a torus with a chaotic trajectoryusing, for example, the method of adiabatic

    Journal of Computational Chemistry, Vol. 8, No. 4, 397-411 (1987)0 1987 by John Wiley & Sons, Inc. CCC 0192-8651/87/040397-15$04.00

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    2/15

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    3/15

    PERTURB: An Algebraic Manipulation Program 399

    expression is a possible data type. Routineswritten with in the model can the n mimiceven more abstract programming environ-ments. A furt her advantage of such an ap-proach is that it is easy to use and modifyprograms written within the model withoutknowledge of the details of the implementa-

    tion. In addition, revisions of the symbolicmanipulator can be made without modify-ing programs written within the model. Toachieve thi s goal without sacrificing effi-ciency, we have chosen to write PERTURB inthe programming language C.42This lan-guage has the desired combination of greatefficiency and powerful model-building facil-ities. The combination makes the languagepotentially useful in a variety of scientificapplications.

    We note t ha t Miller and D e ~ r i t ~ ~ avevery recently described a symbolic manipu-lator package for classical perturbationtheory based on the langu age Zetalisp.While the details of the two approaches arequite different, many aspects of the designphilosophies are th e same.

    11. DRAGT-FINN PERTURBATIONTHEORY

    In order to carry out high-order classicalperturbation theory on multidimensionalsystems, it is important to have an efficientperturbative algorithm. Here we review twomethods: Dragt-Finn44-46 per tur bat iontheory and the Lie transform a l g ~ r i t h m . ~ ~ - ~ ~Lie transforms are used more widely thanthe Dragt-Finn method; a comparison of theperformance of both methods for a variety ofsystems is presented below. We also pointout tha t Dragt-Finn perturbation theorycorresponds directly to quantum mechanical

    Van Vleck perturbation theory.50 The closerelationship between these two methods isthe subject of further i n ~ e s t i g a t i o n .~ ~ oththe Lie transform and Dragt-Finn methodsare based on finding operators that t rans-form the Hamiltonian into a par t icularsimple form. This approach has a great ad-vantage over more traditional techniques,such as the Birkhoff-Gustavson method,38in tha t t he coordinate transformations pro-duced ar e explicitly invertible; it is onlynecessary to use the inverse operator to per-

    form the inversion.

    In these types of perturbation theory, aswith most others, a canonical transforma-tion from zeroth order action-angle variables( j , ) t o new variables ( J ,0) s sought suchth at the Hamiltonian H, when expressed inth e new coordinates, ha s a simple form.Usually, it is required tha t H be approxi-mately a function of the action variables Jonly. If the residual dependence of theHamiltonian on 0 s neglected, the canoni-cal equations of motion are trivial to inte-grate in the new coordinates:

    J ( t ) = J(0); @ ( t ) O(0) + djH(J) t (1)Dragt-Finn perturbat ion theory uses the

    exponentiation of a Lie operator to generatethe canonical coordinate transformations.We have

    Z(z) = eFz,where z denotes the pair ( j , @ , denotes(J, ), and F is the Lie operator associatedwith the function f ( z ) ,given by

    (3)

    where { , } is the Poisson bracket. The in-verse relationship is also given directly interms of Lie operators:

    z(Z) e-%. (4)Here the function f(z) is understood to be re-placed by the function f ( Z ) , and Poissonbrackets are taken with respect to 2.

    It can be shown that this transformationpreserves the Poisson bracket,44 and so theexponentiation of a Lie operator produces acanonical transformation. The Hamiltonianin the new coordinate system is given di-rectly in terms of Lie operators:

    K ( 6 , J )= eFH(e,j) (5)

    In order to solve the problem perturbatively,the Hamiltonian is written as a power seriesin a small parameter E

    H = ~ H , E "

    where Ho is taken to depend only on j. Dragtand Finn44 ntroduce a series of canonicaltransformations, each of which eliminatesthe dependence of the new Hamiltonian Kon 0 o one higher order in E :

    K = . e x p ( ~ ~ F ~ )xp(e2F2) xp(EF,)H (7)

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    4/15

    400 Fried and Ezra

    Let us define Hk by

    Hk = exp(EkFk). exp(EFl)H (8)and expand in powers of E:

    Hk = z H k , ~ "

    The following transformation rules are thenobtained by equating like powers of E:

    (10)- H k- 1 fint(nlk)

    H ,- o r n < k

    HK = 2 (l/m!)(Fk)mHk,I&k or n 2 km= O

    (11)

    where in t(n/k) denotes the intege r pa rt ofthe ratio n/k.

    I t is evident that H$ must be chosen t ohave a simple form on the kth iteration, fora f te r tha t the Hks ar e unchanged. Th ischoice of Ha dictates the form of the Lie gen-erating function fk .To be more specific, theequation for Ha is

    (12)Ha is usually chosen t o be the part of Ha-'t h a t is independent of 6 . This f ixes Fkthrough the above equation, while avoidingsecular terms.5 Once F k is found, the Hk, forn > k are determined by Eq. (11). Althoughan infinite number of Hk, are generated by

    Eq. (111, it is only necessary to calculateterms for values of n up to the final desiredorder of the calculation.

    There is a striking similarity betweenEq. (10) and (11) and th e transformationformulas of quantum mechanical Van Vleckpertu rbation theory.50 Consider th e corre-spondence between Lie derivatives andcommutators:

    {fk,.I + i [ f k , -1 (13)where [, ] denotes a commutator and fk is aquantum mechanical operator correspondingto the classical function fk (through, say, theWeyl quantization rules). Inserting Eq. (13)into Eq. (11) yields the transformation rulesof Van Vleck perturbation theory. To under-stand this result, note that Van Vleck per-turbation theory uses a sequence of unitarytransformations to obtain the Hamiltonianin a simple (diagonal) form, much as Dragt-Finn perturbation theory employs a sequenceof canonical transformations. In Van Vleck

    theory we have

    Ha = Ha-' + FkHo

    H k = exp(iEkfk) xp(iEk-lfk-l). . . exp(iEfl)H o exp(-iEfl). . .exp(-iEkfk) (14)

    This expression can be rearranged into aform resembling that of Dragt-Finn theoryby use of the theorem44

    exp( f )H exp(--f) = exp([ f , 1)H (15)which yields

    Hk = eXp(iEk[ k, -3).. .exp(iE[ i , .])Ho (16)Upon taking the classical limit, we obtainprecisely th e Dragt-Finn transf orma tionEq. (7). The close analogy between thesetypes of perturbation theory affords a pos-sible route t o semiclassical wave functions,because a unitary transformation acting onwave functions can be constructed directlyfrom the classical generating functions. The

    unitary operator isU k = exp(iEkfk). .exp(iEfl) (17)

    The feasibility of this procedure is currentlyunder in~e st ig at io n.~ ~

    Let us return to our discussion of classicalperturbation theory. Consider systems whereHo is a harmonic oscillator in th e variables( q , p ) . t can then be expressed in terms ofzeroth order action-angle variables ( j , 6 ) as

    Ho = w - j (18)

    by using th e following relati ons betweenharmonic oscillator action-angle variablesand the Cartesian (q,p):

    qi = (2ji/wi)'j2 sin(Oi) (19a)

    pi = (2 j i~ i )1 /2os(ei) (1%)(0 is a vector of zeroth order frequenciesw = dHo/dj.). Furthermore, suppose that theH, are polynomials in ( q , p ) . They can bewritten in terms of (j, ) as

    H n = C Cff,k,n f f xp[i(k * @I (20)where a s a vector with half-integer compo-nents, and k a vector with integer compo-nents. COL,k,, s a numerical coefficient, andj a enotes

    a, k

    j t o . #!!ilwhere N is the number of degrees of freedom.

    With the assumptions (18) and (20) on theform of the Hamiltonian, the procedure forimplementing Dragt-Finn pertur bation

    theory becomes clear. To begin, choose H :

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    5/15

    PERTURB: An Algebraic Manipulation Program 40 1

    to be the part of H : independent of 8. Thischoice determines Fl through (11):

    f i = c Ca,,,1l(ik * 41.Y exp(ik - 0)k# O

    (21)

    Note that this formula assumes that no termk . o s zero (i.e., there are no exact reso-nances). [If K - o = 0, th e correspondingterm must be explicitly included in H i . ] Thecoordinate transformation induced by Flmust then be carried out to the final desiredorder on the original Hamiltonian Ho. Thisinvolves repeated evaluation of Lie deriva-tives, which requir es nothing more th anmultiplication, addition and ordinary differ-entiation. These operations transform anexpression of the form (20) into another ex-

    pression of the same type. After performingthe transformation, t he en tire process isrestarted by choosing H ; o be the angle-independent part of H i (again assuming noresonances). Dragt-Finn perturbation the-ory applied to linear zeroth-order Hamil-tonians therefore generates a closed field ofexpressions, and PERTURB need only manipu-late this specialized class.

    Moreover, only a few types of algebraicoperations are required to carry out the per-turbation theory. Thus, multiplication byreal numbers (scalars) is needed to solveEq. (121, while the transformation (11) re-quires additi on, Lie differenti ation, andmultiplication by scalars. The operations re-quired to carry out Dragt-Finn perturbationtheory on generic polynomial Hamiltoniansare therefore few and simple. As shown inthe next section, the method of Lie trans-forms requires the same set of operations.

    111. METHOD OF LIE TRANSFORMS

    Both Lie transform and Dragt-Finn per-turbation theory use operators to generatecanonical transformations. As discussed inth e previous section, in t he Dragt-Finnmethod th is i s accomplished by using th eexponential of a Lie operator. In the methodof Lie transforms, a different route is fol-lowed. It is well known that the time evolu-tion of a Hamiltonian system gen erates a

    canonical transformation.12 This resu lt can

    be formulated in terms of operators. Let Tbe defined by

    Tg(z0,o ) = g(z(z0, ) , o ) * (22)

    TzO = ~ ( ~ 0 , t ) (23)

    is a canonical transformation. An equationfor T entirely in terms of the Hamiltoniancan be derived. Recall the equation for thetotal differential of a function g with respectto time:

    D , g ( z , t )= {g(z , t ) ,h} + & g ( z , t ) , (24)where h is the Hamiltonian. Let d , be given by

    d, D , - a,. (25)

    Then

    Then

    dtg(z9 t ) = { g ( z ,) ,h(z, )l,

    dt(Tg(z0, ) ) = T W O , ) , bo, t ) )

    (26)

    which can be rewritten as

    (27)

    This result c a n be expressed entirely in termsof operators, using the fact that

    Equation (28) can be verified by using the

    definition of T and the definition of a deriva-tive. Thus, Eq. 27 is equivalent to

    (29)

    where H is the Lie operator {h, } associatedwith the Hamiltonian h [see Eq. (311. g(zo,t)is a n arbit rary function, so th at we have anequation for T entirely in t erms of H:

    D,T = - T H . (30)T will generate a one parameter group of

    canonical transformations, where t he vari-

    able t labels elements in the group. In clas-sical perturbation theory, however, we wishto generate a one parameter group of trans-formations depending on the small parame-ter 8 . This suggests tha t a HamiltonianW ( Z , E ) be introduced, with E treated as atime parameter. This Hamiltonian is calleda Lie generating function, because it deter-mines the transformation operator T throughEq. 30 with t replaced by E , and H replacedby the Lie operator W = {w, }:

    D ,T = - T W. (3 1)

    (0 , )g(zo, ) = -THg(zo, t )

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    6/15

    402 Fried and Ezra

    Since E is assumed to be small, a powerseries solution of Eq. 31 is a nat ural wayto proceed. Both T and W are expanded inpowers of E :

    X

    n=O

    W

    w = 2 Wn+lE"n = O

    Wn = { w n , 1 . ( 3 2 ~ )The initial condition is tha t T is the unitoperator when E = 0, which implies

    Substituting Eqs. (32)-(33) into Eq. (31)yields, upon equating like powers of E

    (34)

    We have thus derived an explicit formulafor T,given the Lie generating function w. Itremains to find a n algorithm for picking thew , so th at the Hamiltonian has an appro-priate simplified form in the new coordinatesystem. Consider the relationship betweenthe Hamiltonians in the new and old coordi-nate system:

    where we have assumed th at t he Hamil-tonian has no explicit time dependence.*This implies the following operator relation-ship in terms of T

    h(z0) = W z o ) (36)

    which suggests a formulation of the pertur-bative algorithm in terms of the inverse T- l ,rather than T. An equation similar to (41)can be derived by differentiating

    T T- l = 1 , (38)

    T o = 1 . (33)

    n -1

    T , = -(l/n) 2 T,W,- , .m=O

    h(z0) = k(z ) (35)

    T -'h(zo) = k(z0) (37)

    to give

    T -' can be expanded in powers of E :D , T- l = W T- l (39)

    T - l = (40)

    (41)n- 1

    T i 1 = ( l /n) 2 W n - m T- l m .m=O

    *The generalization to time-dependent Hamiltoni-ans is most easily accomplished by using an extended

    phase space (Ref. 12).

    A simpler formula for w n s obta ined i finstead of substituting Eqs. (40)-(41) intoEq. (371, a formula equivalent to Eq. (37)is used:

    a,K - WK = T- l a , H . (42)This result can be derived by premultiplying

    (37) by T , differentiating with respect toE and finally premultiplying by 7 ' - l . Insert-ing Eqs. (40) and (41) into Eq. (42) gives anexplicit equation for w,:

    {wn, ol = n(kn - hn)n- 1

    - 2 (W,-,k, + mTi! ,h , ) . (43)Note that Eq. 43 ha s a corresponding ex-

    pression in the Dragt-Finn formalism (12);the new Hamiltonian k is also chosen in asimilar way. The term k, is required to beas simple as possible, which usually meanspicking k, to cancel the angle independentportion of the right-hand side. This choiceavoids secular terms, while keeping k sim-ple. Jus t as in the Dragt-Finn case, if reso-nances occur, extra terms must be put intok. Thus, we see that both Dragt-Finn per-turb ation th eory an d the method of Lietransforms require the implementation ofthe same set of operations on a n identicalfield of expressions. We can therefore imple-ment both within the PERTURB environment.

    m =l

    IV. CONSTRUCTION OF THE MODEL

    To perform classical perturbation theory,PERTURB must execute certain basic alge-braic manipulations on the class of expres-sions havin g th e form shown in Eq. (20).Every elementary operation except division(i.e., multiplication, addition, subtraction,and differentiation) will produce a resultwithin this class. Division of one expressionby another is not required as long as th ezeroth-order system is harmonic, for in thiscase th e denominator is simply a number.For the time being we confine ourselvesto such systems. Possible extensions toanharmonic zeroth-order systems are dis-cussed below.

    Every expression generated by the pertur-bation theory is therefore a sum of terms ofthe form ( 2 0 ) .Each term can be representedby a set of numbers. Tw o numbers describe

    the (possibly complex) coefficient. Tw o more

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    7/15

    PERTURB: n Algebraic Manipulation Program 403

    sets of numbers are needed to fully repre-sent the term; one describes the powers towhich the ac ti on sj are raised, the other de-scribes the coefficients of 0 in the exponen-tial. Evidently all of these numbers describea single entity, which suggests grouping thenumbers together into a single object, calleda data structure. This process is called dataa b ~ t r a c t i o n , ~ ~nd has important practicaland conceptual advantages. A structure be-comes a model of the object it represents-in thi s case a ter m in an expression. It isthen possible to concentrate on manipula-tions of structures as a whole, rather thanthe primitive data types of which they arecomposed. Of practical importance is the facttha t data structures place numbers likely tobe accessed at the same time close together

    in memory. Data structures have been usedprofitably in most aspects of our program.It is important t o note that the represen-

    tation of a term we have used is extremelycompact, allowing a large number of terms(upwards of 500,000) to be stored. The abil-i ty to handle so many terms is a conse-quence of the specialized purpose of oursymbolic manipulator. By considering onlya specific class of terms, certain relationsbetween parts of a term have been madeimplicit. In the representation of a term, theidentity of the action-angle variables j and0 is given by their position within the datastructure, so that the relationship betweenthese variables and the numbers in the datastructure is implicit. A more general imple-mentation would be required to representthe identity of variables and t he relation-ships between them explicitly, and wouldrequire much more storage space.

    To manipulate entire expressions in a nat-ural fashion, we need a model for an expres-

    sion, based on the above representation of asingle term. Since an expression is made upof many terms, it is clear that an expressionshould be represented as a n array of termstructures. The length of such an array willvary greatly from expression to expression.It would be highly inefficient to dimensioneach of these ar ray s in advance to be thelargest size required. Moreover, it is verydifficult to predict th e le ngt h of such anarray before the program actually runs.The solution is to use dynamic allocation ofmemory space.

    In C dynamic allocation is accomplishedthrough the use of variables called pointers.A pointer is a variable t ha t contains themachine address of another variable. Infor-mation at this address can be accessed orchanged. This process is called indirection,s ince in fo rmat ion is used o r modified

    through an intermediary pointer. It is im-portant to note that, while a pointers valueis machine dependent, its use in indirectionis not. In C pointers are always used in thismachine independent manner.

    It should be recalled that arrays are noth-ing more than blocks of contiguous memory.The only information required to access sucha block is the address of its first element.This is the key to dynamic allocation in C.An allocation routine is simply asked to finda block of free memory of the desired size;the routine returns a pointer to the first ele-ment in the block. We have therefore used apointer to the first element of a n a rr ay ofterm structures to represent th e terms in a nexpression. It is assigned its value durin gexecution by a dynamic allocation routine.

    A pointer to an array of terms suffices torepresent the various terms constituting a nexpression. An expression has several otherfeatures, however, which also must be incor-porated into t he model. For insta nce, the

    program must keep track of the number ofterms in an expression. Also, it is conve-nient t o use two different types of expres-sions: those of permanent interest, and thosewhich are t o be erased as soon as they areused. It is essential to erase the many inter-mediate results generated, for otherwise theprogram would soon run out of availablememory. By producing variables of two dif-ferent types, the process of discarding un-needed t e r ms can be made au tomat ic .

    Temporary expressions are discarded as soonas they have been used to form any other ex-pression. Permanent expressions are not dis-carded.

    Thus, we have three variables to provideaccess t o all information contained in anexpression: the number of terms, the storageclass, and a pointer to the first element of anarr ay of terms. These three variables a reconveniently placed in a d a t a s t r u c t ur ecalled a directory. A directory, therefore,serves as a complete representation of anexpression. There is one further technical

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    8/15

    404 Fried and Ezra

    point involved in the construction of themodel. A s a convenience, we have used apointer to a directory as the ultimate repre-sentation of an expression. This extra levelof indirection allows C subroutines to modifyinformation contained in the directory.

    It is highly desirable to be able to hide asmuch of the above implementation as pos-sible. C allows pseudonyms to be invented torename derived types. This capability allowsthe user to forget t hat such quantities arederived types a t all, and instead concentrateon manipu latin g expressions. Th is is theprincipal advantage of dat a abstraction. Forexample, we have used the psuedonym EXPRto denote a pointer to a directory. Thus, avariable of type EXPR serves as the final rep-resentation of an expression.

    V. DESIGN OF FUNCTIONS

    The functions that involve manipulationof expressions have been written to providean environment in which algebraic opera-tions can be programmed without knowl-edge of the details of the implementationdescribed above. In addition, it is necessarythat functions combine together naturally.For instance, it should be easy for two func-

    tions to be concatenated. To this end, wehave specified a set of character istics everyfunction should have.

    One such characteristic is tha t PERTURBfunctions return results of type EXPR astheir values. This allows for easy concate-nation. Consider two functions f (a , b ) andg(a, b ) . Suppose that arguments a and b ar eexpressions, and that both functions returnresults tha t are also expressions. The twofunctions can then be concatenated by writ-ing f(g(a,

    b ) , ) ,where a,

    ,and c are expres-

    sions. Concatenation also facilita tes th etranscription of algebraic formulas into com-puter code. Consider the transcription of analgebraic expression a = bc + d into codefor utilization by PERTURB. The code used isvery simple:

    a = add(mult(b, c ) ,d).

    Here, add and mult are PERTURB functions.Evidently, the use of concatenation leads tocompact programs which are easy to read.

    It is also desirable to have PERTURB func-tions erase any temporary arguments, and

    to return temporary values. In the above ex-ample mult will multiply expressions b andc , producing a temporary r esult of typeEXPR. If b or c are temporary variables, m ukwill erase them automatically. This frees theuser from erasing them manually. The func-tion add the n accepts th e result passed bymult, and erases it after use, since it is atemporary argu ment . This allows for con-catenation without th e accumulation ofunwanted temporary results. If mult passeda permanent variable i n our example, itwould be necessary to use the ra ther lengthyalternative:

    e = mult(b,c)a = add(e,d)erase(e).

    Thus, we see th at sensible defaults for thestorage classification of results are neces-sary for easy transcription of formulas. Itshould be noted th at PERTURB allows forquick conversion of temporary variables intopermanent ones . The funct ion set - type(U,PERM) s used t o make t he expressionpermanent.

    PERTURB allows easy construction of newfunctions out of the basic ones provided. Asan example, consider a function f(a, b, c ) tocalculate a - b + c. The code required forsuch a function is very simple. f i s declaredto be a function re turn ing type EXPR, takingEXPR arguments a, b, and c . A variable r isthen declared within the function to be oftype EXPR. The function then calculates theresult r, and returns it:

    r = add(mult(a, b ) , )return( r ).

    The user need not know any details of the Cimplementation to write functions with in

    PERTURB, so long as the desired operationcan be expressed in terms of the basic opera-tions. This fact also enhances the flexibilityof the PERTURB environment, allowing thespecific implementation to be changed with-out affecting programs written within themodel.

    VI. SIMPLIFICATION AND SORTING

    When performing a n operation on two ex-

    pressions, say multiplication, PERTURB mustsimplify the resulting expression by adding

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    9/15

    PERTURB: An Algebraic Manipulation Program 405

    like terms. Simplification is a critical task.Consider the multiplication of two expres-sions a and b. If no simplification were pos-sible, the multiplication would generate anumber of terms equal to the product of thenumber of terms in a and th e number ofterms in b. It is evident that if a and b havemany terms, say 1000, the number of termsin t he product can easily become too largefor computer memory. Evid ently, a highdegree of simplification is needed to producea manageable expression out of two otherlarge expressions. It is our experience thatsuch a large degree of cancellation is usuallypresent.

    The simplification can be achieved bysorting terms according to a predeterminedbut largely arb itrar y order relation. Two

    terms having the same order differ only inmultiplicative numerical coefficients. Thesecoefficients can be added to produce a singleterm. It is apparent from the above consid-erations tha t it is necessary to simplify anexpression as it is generated, otherwise anenormous number of terms would have tobe stored. A simple calculation shows that,proceeding primitively, comparing each gen-erated term t o every previously generatedterm, the work increases as the square ofthe number of terms to be sorted.52 This isan unacceptably inefficient algorithm.

    A n a l t e r n a t i v e a l g o r i t h m i s u s ed inPERTURB. Terms are placed in a binary treestructure52 as they are produced. A binarytree consists of a series of interconnectednode structures. At each node, a term isstored, as well as the address of two off-spring nodes. The tree is initialized with aroot node. Generated terms are then com-pared to the term in the root node. If theterm matches the root node, the terms are

    added and the algorithm stops. If the term isordered after the root node, however, it pro-ceeds to the right offspring of the root; other-wise it proceeds to the left offspring. If nooffspring exists, a n offspring is made, andthe term in question is placed in this node. Ifan offspring already exists, the generatedterm and the t erm a t the offspring are com-pared. If a match is found the term s ar eadded. If not, the term moves down yet an-other level, until it is either matched orplaced in a new node somewhere in the tree.

    The tree sorting algorithm is much moreefficient than primitive sorting, as it takes

    time proportional to n ln(n),52 where n isthe number of terms, given that the termsenter t he tree i n random order. The orderin which t he terms enter t he tre e is veryimportant to the efficiency of the algorithm.If the terms arr ive in order, for instance, thetree will only have right branches. In thiscase the tree sort will be equivalent to aprimitive sort. Evidently, it is advantageousto have th e tr ee develop in as symmetric amanner as possible. This can be achieved byputting th e term most likely to be i n themiddle of the ordering scheme into the t reefirst. Subsequent terms are entered in orderof their likely proximity to the middle termin the ordering scheme. In thi s way the effi-ciency of th e tr ee s ort c an be optimized.More complicated a lgor ithm s exist which

    guarantee that the tree produced is com-pletely balanced. We find the se to be nofaster than the simpler binary tree sort.

    Another advantage of tree sorting is thatit simplifies the task of memory allocation.Consider the case of multiplication. If thedeveloping result were to be stored in a con-tiguous block of memory, an estimate wouldhave to be made for the size of the result. Asdiscussed earlier, the worst-case estim ate forthis is unacceptably high. Therefore, there isa possibility that an initial estimate of therequired storage space would be too small.PERTURB would then have to revise the esti-mate, allocate a larger block of memory, andcopy the terms generated so far in to thelarger block. This process is time consumingand leads to undesirable gaps in the memorybeing used. An estimate which is too largeis also undesirable, as it wastes memory.By tree sorting, each term can be allocatedseparate ly, s o th at u se of memory wil lalways be near the optimum.

    When the multiplication is finished, theindividual terms are copied into a contigu-ous block of memory, which becomes anexpression for the resu l t . At th is pointPERTURB must decide if a particular termhas a coefficient so small th at it m ust beidentified with zero. Both absolute andcomparative methods are used to accom-plish this. In the absolute method, the coeffi-cient of each term is compared to a fixedminimum value. If the absolute value of thecoefficient is less than this, the term is dis-carded. Under the comparative method, thecoefficient of the term is compared to the

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    10/15

    406 Fried and Ezra

    coefficient of greatest absolute value inthe expression. If the coefficient in questiondivided by the greatest coefficient is suffi-ciently small, the term is discarded. It is ourexperience that the comparative method ismost useful. The absolute method is mainlyused to e quat e an expression with a verysmall single term to zero. The degree of pre-cision used in a calculation can be usefullyvaried. For instance, in classical perturba-tion theory, higher-order corrections may beconsistently done to a lower degree of preci-sion than low order corrections, since theyare expected to be small.

    After the significant terms in the tree arecopied into an array, the tree is erased. It ispossible to imagine an implementation inwhich expressions are represented by trees

    instead of ar rays of terms. We have used ar-rays of terms to avoid the memory overheadassociated with the nodes in the tree. Also,results stored in array form can be accessedfaster than those stored in tree form. None-theless, the use of trees to represent expres-sions would eliminate the step of copyingthe result into an array. The best choice isnot entirely clear at present.

    Thus, we see that the use of trees in sort-ing can optimize both the use of memory andCPU time. The C programming languageallows trees to be used naturally, since itsupports pointers, data structures and recur-sion. The need for efficient, customizablesorting was one of the reasons PERTURB waswritten in C.

    VII. EXTENSIONS

    The form for a term described above suf-f ices for per tu rbat i on theo ry when thezeroth order system is linear. However, in

    perturbatio n theory from nonlinear zerothorder systems, in which the zeroth-orderfrequencies are functions of the action^,^ oneexpression must be divided by another. Thisoperation cannot be done exactly within ouroriginal framework. Evidently, thi s limi-tation restricts the generality of PERTURB.We must therefore consider various methodsof division.

    The simplest possibility is to divide ex-pressions approximately, representing thequotient of two expressions by a single ex-

    pression. This method has the advantage of

    leaving PERTURB'S original data structuresunchanged. It can readily be seen, however,th at a large number of terms would be gen-erated by the approximate division of twolong expressions, so that the approximatemethod is inappropriate for very compli-cated calculations.

    A better method would be to give eachterm in an expression its own denominator,which is itself an expression. Th is is themethod that would most likely be used in ahand calculation. While this has not as yetbeen implemented, such a generalization isclearly necessary if PERTURB is to be used ina wide range of applications. In such a gen-eralization, a term struc ture would be acomposite of the term structure already dis-cussed and an expression representing thedenominator. All the basic functions wouldhave to be modified to accomodate this newfundamental data type.

    VIII. COMPARISON OF DRAGT-FINNPERTURBATION THEORY WITHMETHOD OF LIE TRANSFORMS

    Since both Dragt-Finn and Lie transformperturbation theory require the same set ofoperations, it is natural to compare the per-formance of the two algorithms. Cary47 ha s

    suggested that th e Dragt-Finn approachmight be much more efficient than the tradi-tional Lie transform method, on the basis ofthe number of Lie derivatives required togenerate the coordinate transformation to agiven order. To investigate this point, wehave calculated normal forms for severalsystems of the form:

    n-1 t" 1H = Cy(Pf + 0;q.P) + 2 2 E m q ? - ' q i + l ,

    (44)where n is the number of degrees of freedom,and the parameters E and o i are given by

    & = 0.1 (45)

    (45)The results of this analysis ar e given in Fig-ures 1 and 2. Figure 1 gives the computertime required for th e Dragt-Finn calcula-tion divided by the time for a correspond-ing calculation of a normal form using themethod of Lie transf orms for n = 2 - 6.

    Figure 2 s identical to Figure 1, except that

    i = l i = l m=l

    o: = 1 + 0 . l i .

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    11/15

    PERTURB: An Algebraic Manipulation Program 40 7

    0=0

    o?:pE

    F

    8

    R

    0.0 4.0 8.0 12.0 16.0

    Order

    b) '1 4R

    9-- I

    0 1lY n

    a 9m -e8

    x0.0 4.0 8.0 12.0 16.0

    Order

    9 9 9 9

    0 8 8 80.0 4.0 8.0 0.0 4.0 8.0

    9

    R R

    z -8 8

    0.0 4.0 8.0 0.0 4.0 8.0

    Figure 1. Ratio of CPU time for calculation of nor-mal forms using Dragt-Finn algorithm over time forLie transform algorithms versus order of calculationfor several values o f t , the number of terms in theexpansion of H in powers of E , and n, he number ofdegrees of freedom. (a) Ratios for n = 2 and t = 1 - 4,with t increasing from left to right in each cluster ofbars. Graphs (b)-(e) correspond to n = 3 - 6.

    the ratio of the maximum number of termsgenerated by the two algorithms is plotted.From Figure l (a ) we can conclude tha t, whenapplied to systems with two degrees of free-dom, th e Dragt-Finn method is more effi-cient for all values of the number of couplingterms t except t = 1. Figure 2(a) indicates

    th at the Dragt-Finn method also generatesfewer terms, with the ratio decreasing withthe order of calculation for all values of tgreater than 1.

    This result can be understood by consider-ing the number of Lie derivatives calculated.Note tha t the number of Lie derivatives in(43) s reduced throughout the entire calcu-lation if any of the H, are zero. The Dragt-Finn formula (12) does not have this property;if some of the Hk ar e zero, t he number ofLie derivatives is reduced only on the firstiteration. To quantify this observation, we

    0.0 4.0 8.0 0.0 4.0 8.0

    R1

    0.0 4.0 8.0 0.0 4.0 8.0

    Figure 2. As for Figure 1, except that ratio of maxi-mum number of terms generated in the calculation ofthe normal form is plotted.

    have calculated the number of Lie deriva-tives used in both methods for varying valuesof t. Figure 3 shows tha t the Lie transformmethod r equi res calculati on of a smallernumber of Lie derivatives than the Dragt-Finn method when t = 1. As t increases,however, the number of Lie derivatives in-creases faster for the Lie transform methodthan for Dragt-Finn. It might, therefore, beexpected that the Dragt-Finn method wouldbe more efficient when applied t o systems

    for which the original Hamiltonian H o as alarge number of terms in its expansion in E .The number of Lie derivatives alone does

    not completely control the relative complex-ity of these two methods, however, as can beseen from Figures l(b)-(e) and Figures 2(b)-(el. As the dimensionality of the systemincreases, the Lie transform algorithm isfound to use progressively less computertime th an Dragt-Finn, while the relativeadvantage due to the number of terms gen-erated decreases. Although the reasons forthe observed t iming ratios ar e not fully

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    12/15

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    13/15

    PERTURB: An Algebraic Manipulation Program 409

    Table I. A comparison of normal forms obtained from Dragt-Finn Perturbation Theory and LieTransforms for the generalized H6non-Heiles Hamiltonian of Eq. (46).

    ~ ~~ ~

    Dragt-FinnOrder Coefficient

    Lie Transforms Power PowerCoefficient of J, of J ,

    ~ ~~

    0 6.9999999999998e- 11.2999999999999e+O

    2 - 1.5618492294876e-3- 1.0233232574801e-2- .8019867158102e- 3

    4 - .0919098260534e -- .77 19333 108399e -- .7327595040839e -- .6248331 149342e- 5

    6 - 1.3333901096893e-7- .2889003640964e -- 1.1830588551231e-5- 1.07051 14049427e-5- .2905734788006e -

    8 -2.0533926179615e-9- 1.7796583269639e-7-6.5009457030032e-7-7.6731309011831e-7-4.8566878096457e- 7- .7707326259972e- 8- .0061016664413e 9-2.8383013878055e-8-7.1 187437461377e- 8-4.9640398832891e- 8- .3858908045995e 8- .0261079752654e -

    12 -6.8583007777432e- 13-2.9462018713796e - 0- .4155344239468e-9-3.7159990077175e-9- .6180660214346e- 9-3.21 14556425321e-9- .2326268875795e -- .2881682475439e- 10

    10 -3.5997972319941e- 11

    ~

    7.0000000000000e- 11.2999999999999e+ 0- 1.5618492294876e-3

    - .0233232574801e-2-5.8019867158099e- 3- 1.0919098260533e-5-1.7719333108397e-4- .7327595040837e -- .6248331 149334e- 5- .3333901096892e-7- .2889003640957e-6- .1830588551230e- 5- .0705114049425e-5-2.2905734788003e-6-2.0533926179612e-9- .7796583269637e-7- .50094570300 18e -- .673130901 1819e- 7-4.8566878096451e- 7-7.7707326259961e-8-3.5997972319934e- 11- .0061016664402e --2.8383013878051e-8-7.1187437461351e-8-4.9640398832881e-8-2.3858908045993e-8-3.0261079752648e-9-6.8583007777415e- 13-2.9462018713791e- 10- 1.4155344239464e-9-3.7159990077169e-9- .6180660214306e- 9

    -3.2114556425314e-9- .2326268875793e --1.2881682475436e- 10

    ~

    010

    12012301234012345012345601234

    567

    ~

    102

    10321043210543210654321076543

    210

    generated by a mixed function of old andnew variables, operator-based approachessuch as the Dragt-Finn algorithm or themethod of Lie transforms provide explicit re-lations between transformed and untrans-formed quantities, and so avoid difficultiesassociated with inversion of implicit rela-tions. General purpose symbolic manipu-lation programs such as M A C S Y M A havepreviously been used to handle the enor-mous amounts of algebra required to imple-ment perturbation theory to high orders, butcan consume unacceptably large amounts ofCP U time when treating problems involvingmore than two degrees of freedom.

    With these points in mind, we have devel-oped the program PERTURB, which is a spe-cial purpose algebraic manipulator wr itten

    in C for operator based classical perturba-

    tion theory. A s discussed above, in writingthis program we have sought a compromisebetween specialization of purpose and opti-mization. The representation of a term inthe Hamiltonian or generating function isnearly optimal, in that each term is speci-fied by a small set of numbers. This com-pactness , a long with careful ly wri t te nsorting routines, enables PERTURB to processterms efficiently. For example, the general-ized Henon-Heiles system of Eq. (41) an bequantized to 12th order in less than 40 sec-onds on a PRIME 9955.

    Given our representation of a term, wehave attempted to produce a programmingenvironment conducive to facile code devel-opment. A guiding consideration has beenth at working formulas should be easily t ran-

    scribed into programs in PERTURB, without

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    14/15

    410 Fried and Ezra

    Table 11. Energy eigenvalues for the general izedH6non-H eiles Ham iltonian of Eq.(46).

    nz n, E" E b E'

    0010

    102102103210321

    043210

    0102

    130241350246135

    702468

    0.9955301.6869912.2781742.375014

    2.9583863.0595043.5480253.6346843.7403584.2162594.3069174.41 74654.8043844.8800134.9749155.0907025.4597945.5390655.638490

    5.7599376.0464516.1100506.1931586.2974316.425023

    0.99551.68702.27822.37502.95843.05953.54803.63483.74044.21644.30714.41764.80454.88034.97535.09105.46015.53975.6393

    5.76056.04686.11086.19446.29896.4260

    0.99551.68702.27812.37502.95843.05963.54793.63473.74044.21624.30694.41764.80434.87994.97495.09095.45975.53905.6385

    5.76016.04636.10996.19316.29756.4253

    "Calculated using 12th-order Lie transform pertur-

    bCalculated using 6th-ord er Birkhoff-Gustavson

    'Quantum mechanlcal eigenvalues (Ref.28).

    bation theory (this work).

    normal form (Ref.28t.

    excessive worry over details such as memoryallocation. The ab strac t environment sup-plied by PERTURB allows programs to bewritten quickly and accurately. Generaliza-tion of PERTURB to include division by ex-pressions and integer arithmet ic will extendits use to a wider range of applications, in-volving perturbat ion of nonlinear systems.

    Applications of PERTURB to semiclassicalquantization of realistic multidimensionalHamiltonians will be described e ~ l e w h e r e . ~ ~

    I t is a pleasure to tha nk C.C. M artens for helpful

    discussions on Van Vleck perturba tion theory. Th iswork was supported by N SF G ran t No.CHE-8410685.

    References

    1. I. C. Percival, Ad v. Chem. Phys.,36, 1 1977).2. N. C. Handy, in Semiclassical Methods in Molecu-

    lar Scattering and Spectroscopy, M. S . Child, Ed.,D. Reidel, Dordrecht, 1980.

    3 . R.A. Marcus, Annu. Rev. N.Y. Acad. Sci. ,357,169(1980); D. W. Noid, M. L. Koszykowski, nd R. A.Marcus,Ann u. Rev. Phys. Chem., 31,267 (1981).

    4. M. V. Berry, in Chaotic Behaviour of DeterministicS y s t e m s , I. Gbra r d , R . H. G. Hel lem an, a nd R.Stora, Eds., North Holland, New York,1983.

    5. A. J. Lichtenberg and M. A. Lieberman,Regularand Stochast ic Motion, Spr inger-Ver lag , NewYork, 1983.

    6. M.V. Berry, in Topics in N onlinear Dynamics, S.Jorn a , Ed ., A m . Znst. Ph ys . Conf . P roc . ,46, 16(1978).

    7. E. B. Stechel an d E.J. Heller, Annu. Rev. Phys .Chem., 35,563 (1984).8. G. D. C arney L. L. Spra ndel, an d C. W. Ke rn,Adv.

    Chem. Phys., 37,305 (1978).9. A. Einstein, Ver. Deut. Ph ys. Ges., 19, 82 (1917);

    an E ngl i sh t rans la t ion by C. Ja ff6 i s ava i lab leas JILA Report No. 116, University of Colorado,Boulder.

    10. M. L. Brillouin,J . Phys ., 7 , 353 (1926).11. J.B . Keller,Annu. Phys., 4, 180 (1958).12. V. 1. Arnold, Mathematical Methods of Classical

    Mechanics, Springer-Verlag, New York, 1978.13. V. P. Maslov, Thborie des Per turba t ions et des

    Methodes Asympotiques,Dunod, Paris, 1972; V. P.Maslov and M. V. Fed oriu k,Semiclassical Approxi-

    mation in Quantum Mechanics, D. Reidel, Boston,1981.14. J.B. Delos,Adv . Chem. Phys.,65, 161 (1986).15. C. C. Ma rtens and G.S. Ezra , in Proceedings of

    19th Jerusalem Symposium on Quan tum Chem-istry, Tunneling, J. Jortner and B. Pullman, Eds.,D. Reidel, Boston, 1986.

    16. C.C. Martens and G.S. Ezra,J . Chem. Phys., 83,2990 (1985).

    17. C.C. Martens and G.S. Ezra, J . Chem. Phys., 86,279 (1987).

    18. M.C. Gutzwiller,J . Math. Phys., 11, 1791 (1970);J . M a t h . P h y s ., 12, 343 (1971); W.H . Mil ler, J .Chem. Phys., 56,38 (1972); J . Chem. Phys. , 63,996(1975); J . C h e m . P hy s ., 64, 2880 (1976); K . F.

    Freed, J . Chem. Phys ., 56, 692 (1972); K.F. Freed,Faraday Discussions Chem . SOC.,55, 68 (1973); R.Kosloff and K.F. Freed, Chem. Phys. Le tt.,84,630(1981); M. C. Gutzw iller,Physica, 5D , 183 (1982).

    19. R. H. G. Helle ma n and T. Bountis, inStochasticBehavior in C lassical and Quantum Ham iltonianSystems, G. Casat i and J . Ford, Eds., Springer-Verlag, New York, 1979, p. 353.

    20. P. Ehrenfest , Philos . Mag. , 33, 500 (1917); B.R.Johnson, J . Chem. Phys., 83,1204 (1985); C. J&6,preprint.

    21. E. A. Solov'ev, Sou. Phys. JETP , 48,635 (1978).22. R. T. Skodje, F. Borondo, and W. P. Reinhardt , J .

    Chem. Phys., 82,4611 (1985).23. C. W. Patterson, J . Chem. Phys., 83, 4618 (1985).

    24. T.P. Grozdanov, S. Saini , and H.S. Taylor,Phys .Rev. A 33, 55 (1986).25. T.P. Grozdanov, S. Sa i n i , a nd H .S . Tay l o r,J .

    Chem. Phys., 84,3243 (1986).26. M. Born, Mechanics of the Atom, Ungar, New

    York, 1960.27. G.C. Schatz and T. Mulloney, J . Phys. Chem., 83,

    989 (1979).28. R. T. Swimm and J. B. Delos, J . C h e m . P h y s . , 7 l ,

    1706 (1979).29. C. Jaff6 and W.P. Reinhardt , J . Chem. Phys . ,71 ,

    1862 (1979).30. R. Ramaswamy, P. Siders, an d R. A. M arcus,J.

    C hem . P ~ Y s . ,3 , 5400 (1980); see also S. Sain i ,Chem. Phys. Lett., 125, 194 (1986).

  • 8/3/2019 Laurence E. Fried and Gregory S. Ezra- PERTURB: A Special-Purpose Algebraic Manipulation Program for Classical Pe

    15/15

    PERTURB: An Algebraic Manipulation Program 411

    31. C. Jaff6 and W.P. Reinhardt, J . Chem. Phys., 77,5191 (1982); .B. Sh ir ts an d W.P. Reinhardt , J .Chem . Phys., 77, 5204 (1982); W.P. Reinhardt andD. Farrelly J . P h y s. ((2011.) 43, C2-29 1982).

    32. T. Uzer, D.W. Noid, an d R.A. M arcus ,J . C h em .Phys., 79, 4412 (1983); ee also, J. N. L. Connor, T.Uzer, R .A. Marcus , and A.D. Smi th ,J . C h e m.Phys., 80, 5095 (1984).

    33. .A. Saunders,J . C hem. Phys., 74, 5733 (1981).34. M. Robnik, J . P hy s. A 17, 109 (1984); M. Robnikand E. Schriifer, J . P h ys . A, 18, L853 (1985).35. D. W. oid, M. L. Koszykowski, and R.A. Marcus,

    J . Chem. Phys., 78,4018 (1983).36. T. Uzer and R. A. Marcus,J . Chem. Phys., 81,5013

    (1984).37. L . E . F r i e d a n d G . S . E z r a ,J. C h e m . P h y s . ( i n

    press).38. F. G. Gustavson,Astron. J. , 71, 670 (1966).39. W. P. Reinhardt, J . Phys. Chem., 86, 2158 (1982).40. D. Farrelly and T. Uzer, J . Chem. Phys., to be pub-

    lished.41. S .E . Koonin an d R.D. W il liams,Nucl . Phys . A,

    391. 72 (1982).

    42. B. W. K ernig han an d D. M. Ritc hie,T h e C Pro-gramming Language, Prentice-Hall, EnglewoodCliffs, NJ , 1978.

    43. B.R. Miller and A. Deprit, inProceedings o f Con-ference on Computers and Mathematics, May 1986.

    44. A. J. Dragt and J. M. Finn, J . Math. Phys. , 17,2215(1976).

    45. A. J. D r a g t a n d J . M. Finn, J . M a t h . P h y s ., 20,2649 (1979).

    46. A. J. Dragt and E . Forest,J . M ath. Phys., 24, 734(1983).47. . R. Cary, Phys. Rep., 79, 129 (1981).48. A. Deprit, Cel. Mech., 1, 12 (1969).49. G. Hori, Pub. Astron. Soc. Jpn., 18, 287 (1966).50. D. Papousek and M .R. Aliev,Molecular Vibra-

    tional-Rotational Spectra, Elsevier/North Holland,New York, 1982.

    51. L. Fried and G. . Ezra, work in progress.52. A.V. Aho, J. E. Hopcroft, and J. D. Ullman, Data

    Structures and Algorithm s, Addison-Wesley, R ead-ing, MA , 1983.


Recommended