(* These are the first nine c's in the BCH formula for
   writing exp(X)*exp(Y)*exp(X) into a single exponential. 
   (nc2 = nc4 = nc 6 = ... = 0.)

   They are defined as functions taking two arguments
   for later use. Here Cmt[X,Y] is the bracket function
   in Mathematica. It could be just governed by several 
   rules for doing bracket operations in Mathematica.  

                         Ren-Cang Li, June 1, 1996
                         na.rcli@na-net.ornl.gov    *)

nc1[X_,Y_] = 2*X + Y;
nc3[X_,Y_] = -Cmt[X, Cmt[X, Y]]/6 - Cmt[Y, Cmt[X, Y]]/6;
nc5[X_,Y_] = ( (7*Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]])/360 + 
               Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]/60 - 
               Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]/90 + 
               Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]/45 + 
               Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]/30 + 
               Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]/360 );
nc7[X_,Y_] = ( (-31*Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]])/15120 - 
   (43*Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/10080 + 
   Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]/6048 + 
   Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]/1008 - 
   Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]/480 - 
   (23*Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]])/40320 + 
   Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]/3360 - 
   Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]/3360 - 
   Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]/20160 + 
   (11*Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]])/3360 + 
   (43*Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/13440 + 
   Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]/2520 - 
   Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]/315 - 
   (379*Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/120960 + 
   (169*Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]])/120960 - 
   (389*Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]])/60480 - 
   (361*Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/40320 - 
   (61*Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]])/60480 + 
   (197*Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]])/120960 + 
   (73*Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/40320 + 
   (13*Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]])/30240 - 
   (41*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]])/120960 - 
   (37*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]])/60480 - 
   Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]/15120 );
nc9[X_,Y_] = ( (127*Cmt[X, Cmt[X, Cmt[X, 
         Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/604800 + 
   (9481*Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 - (2407*Cmt[X, Cmt[X, 
        Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/10886400 - 
   (4397*Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 + (13697*Cmt[X, Cmt[X, 
        Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 + 
   (1019*Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    14515200 + (2693*Cmt[X, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/10886400 + 
   (3653*Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 - (257*Cmt[X, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/21772800 - 
   (5501*Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 - (13283*Cmt[X, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/43545600 - 
   (773*Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    14515200 + (919*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/2419200 - 
   (2923*Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    14515200 - (10669*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/43545600 + 
   (14249*Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 + (8381*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/6220800 + 
   (8171*Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    43545600 + (18901*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/43545600 - 
   (1069*Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    14515200 - (757*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/7257600 + 
   (9809*Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (107*Cmt[X, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/340200 + 
   (299*Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    6220800 - (3223*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/7257600 - 
   (1429*Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (10201*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/43545600 - 
   (907*Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    7257600 - (16181*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/14515200 - 
   (6109*Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    43545600 - (13513*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/14515200 + 
   (10363*Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (499*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/3628800 - 
   (1943*Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    6220800 - (7067*Cmt[X, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 - 
   (2707*Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    43545600 - (4757*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 - 
   (22817*Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (1367*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/10886400 - 
   (607*Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    2419200 - (1903*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/2419200 - 
   (121*Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    1612800 - (937*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/43545600 + 
   (47*Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    388800 + (673*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/14515200 - 
   (2573*Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 - (2381*Cmt[X, Cmt[Y, 
        Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 - 
   Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]]/75600 + 
   (2*Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    4725 + (3427*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/5443200 - 
   (16699*Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    43545600 - (9187*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/43545600 + 
   (31981*Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 + (187*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/1555200 + 
   (1249*Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    4838400 - (491*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/604800 - 
   (313*Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    10886400 - (2843*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 - 
   (3641*Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    10886400 - (1321*Cmt[Y, Cmt[X, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/21772800 + 
   (54311*Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (6737*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/4838400 - 
   (9811*Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    21772800 + (20387*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 + 
   (52183*Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    21772800 + (3377*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/10886400 + 
   (149*Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    1036800 - (2071*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/7257600 - 
   (13*Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    100800 + (1037*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/7257600 + 
   (661*Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    2419200 + (727*Cmt[Y, Cmt[X, 
        Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/21772800 - 
   (2141*Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    4838400 - (14207*Cmt[Y, Cmt[Y, 
        Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/43545600 + 
   (2269*Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    21772800 - Cmt[Y, Cmt[Y, Cmt[X, 
       Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]]/3600 - 
   (3529*Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    7257600 - (1411*Cmt[Y, Cmt[Y, 
        Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/21772800 - 
   (1573*Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    10886400 - (823*Cmt[Y, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 + 
   (11*Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    680400 - (1219*Cmt[Y, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/21772800 - 
   (43*Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    302400 - (151*Cmt[Y, Cmt[Y, 
        Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/7257600 + 
   (3953*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (41*Cmt[Y, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/680400 - 
   (113*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/
    6220800 + (59*Cmt[Y, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/1555200 + 
   (7393*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (487*Cmt[Y, Cmt[Y, 
        Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/21772800 + 
   Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]]/134400 - 
   (59*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/
    1612800 - (73*Cmt[Y, Cmt[Y, 
        Cmt[Y, Cmt[Y, Cmt[X, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]])/7257600 + 
   (361*Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Cmt[X, Y]]]]]]]])/
    43545600 + (23*Cmt[Y, Cmt[Y, 
        Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Cmt[X, Y]]]]]]]])/1555200 + 
   Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[Y, Cmt[X, Y]]]]]]]]/604800 );
