ikarus/benchmarks.larceny/src/nucleic.c

3328 lines
141 KiB
C

/*
File: "nucleic.c"
Author: Marc Feeley (feeley@iro.umontreal.ca)
Last modified: June 6, 1997
This program is a modified version of the program described in the paper:
M. Feeley, M. Turcotte, G. Lapalme, "Using Multilisp for Solving
Constraint Satisfaction Problems: an Application to Nucleic Acid 3D
Structure Determination" published in the journal "Lisp and Symbolic
Computation".
The differences between this program and the original are described in
the paper:
"???" published in the "Journal of Functional Programming".
*/
/*
Define the symbol "lazy" if you want lazy computation.
*/
#define not_lazy
#include <stdio.h>
#include <math.h>
/*---------------------------------------------------------------------------*/
/* MATH UTILITIES */
typedef double FLOAT; /* define precision of floating point numbers */
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#ifndef M_PI_2
#define M_PI_2 1.57079632679489661923
#endif
struct struct_pt
{
FLOAT x, y, z;
#ifdef lazy
int relative; /* true if point remains to be converted to absolute coord. */
#endif
};
typedef struct struct_pt *pt;
#define make_pt(a,b,c,p){(p)->x=(a);(p)->y=(b);(p)->z=(c);}
struct struct_tfo
{
FLOAT m[4][3];
};
typedef struct struct_tfo *tfo;
#define make_tfo(a,b,c,d,e,f,g,h,i,x,y,z,t)\
{\
(t)->m[0][0]=(a);(t)->m[0][1]=(b);(t)->m[0][2]=(c);\
(t)->m[1][0]=(d);(t)->m[1][1]=(e);(t)->m[1][2]=(f);\
(t)->m[2][0]=(g);(t)->m[2][1]=(h);(t)->m[2][2]=(i);\
(t)->m[3][0]=(x);(t)->m[3][1]=(y);(t)->m[3][2]=(z);\
}
struct struct_A
{
struct struct_pt n6, n7, n9, c8, h2, h61, h62, h8;
};
struct struct_C
{
struct struct_pt n4, o2, h41, h42, h5, h6;
};
struct struct_G
{
struct struct_pt n2, n7, n9, c8, o6, h1, h21, h22, h8;
};
struct struct_U
{
struct struct_pt o2, o4, h3, h5, h6;
};
struct struct_nuc
{
char type; /* 'A', 'C', 'G', or 'U' */
struct struct_tfo
dgf_base_tfo, p_o3_275_tfo, p_o3_180_tfo, p_o3_60_tfo;
struct struct_pt
p, o1p, o2p, o5_, c5_, h5_, h5__, c4_, h4_, o4_, c1_, h1_,
c2_, h2__, o2_, h2_, c3_, h3_, o3_, n1, n3, c2, c4, c5, c6;
union
{
struct struct_A A;
struct struct_C C;
struct struct_G G;
struct struct_U U;
} _;
};
typedef struct struct_nuc *nuc;
/* NUCLEIC ACID CONFORMATIONS DATA BASE */
struct struct_nuc rA01, rA02, rA03, rA04, rA05, rA06, rA07, rA08, rA09, rA10;
struct struct_nuc rC01, rC02, rC03, rC04, rC05, rC06, rC07, rC08, rC09, rC10;
struct struct_nuc rG01, rG02, rG03, rG04, rG05, rG06, rG07, rG08, rG09, rG10;
struct struct_nuc rU01, rU02, rU03, rU04, rU05, rU06, rU07, rU08, rU09, rU10;
struct struct_nuc *rAs[11], rA;
struct struct_nuc *rCs[11], rC;
struct struct_nuc *rGs[11], rG, rG_;
struct struct_nuc *rUs[11], rU, rU_;
void init_A()
{
rA.type = 'A';
make_tfo( -0.0018, -0.8207, 0.5714,
0.2679, -0.5509, -0.7904,
0.9634, 0.1517, 0.2209,
0.0073, 8.4030, 0.6232, &rA.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA.o5_ );
make_pt( 5.4550, 8.2120, -2.8810, &rA.c5_ );
make_pt( 5.4546, 8.8508, -1.9978, &rA.h5_ );
make_pt( 5.7588, 8.6625, -3.8259, &rA.h5__ );
make_pt( 6.4970, 7.1480, -2.5980, &rA.c4_ );
make_pt( 7.4896, 7.5919, -2.5214, &rA.h4_ );
make_pt( 6.1630, 6.4860, -1.3440, &rA.o4_ );
make_pt( 6.5400, 5.1200, -1.4190, &rA.c1_ );
make_pt( 7.2763, 4.9681, -0.6297, &rA.h1_ );
make_pt( 7.1940, 4.8830, -2.7770, &rA.c2_ );
make_pt( 6.8667, 3.9183, -3.1647, &rA.h2__ );
make_pt( 8.5860, 5.0910, -2.6140, &rA.o2_ );
make_pt( 8.9510, 4.7626, -1.7890, &rA.h2_ );
make_pt( 6.5720, 6.0040, -3.6090, &rA.c3_ );
make_pt( 5.5636, 5.7066, -3.8966, &rA.h3_ );
make_pt( 7.3801, 6.3562, -4.7350, &rA.o3_ );
make_pt( 4.7150, 0.4910, -0.1360, &rA.n1 );
make_pt( 6.3490, 2.1730, -0.6020, &rA.n3 );
make_pt( 5.9530, 0.9650, -0.2670, &rA.c2 );
make_pt( 5.2900, 2.9790, -0.8260, &rA.c4 );
make_pt( 3.9720, 2.6390, -0.7330, &rA.c5 );
make_pt( 3.6770, 1.3160, -0.3660, &rA.c6 );
make_pt( 2.4280, 0.8450, -0.2360, &rA._.A.n6 );
make_pt( 3.1660, 3.7290, -1.0360, &rA._.A.n7 );
make_pt( 5.3170, 4.2990, -1.1930, &rA._.A.n9 );
make_pt( 4.0100, 4.6780, -1.2990, &rA._.A.c8 );
make_pt( 6.6890, 0.1903, -0.0518, &rA._.A.h2 );
make_pt( 1.6470, 1.4460, -0.4040, &rA._.A.h61 );
make_pt( 2.2780, -0.1080, -0.0280, &rA._.A.h62 );
make_pt( 3.4421, 5.5744, -1.5482, &rA._.A.h8 );
rA01.type = 'A';
make_tfo( -0.0043, -0.8175, 0.5759,
0.2617, -0.5567, -0.7884,
0.9651, 0.1473, 0.2164,
0.0359, 8.3929, 0.5532, &rA01.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA01.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA01.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA01.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA01.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA01.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA01.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA01.o5_ );
make_pt( 5.4352, 8.2183, -2.7757, &rA01.c5_ );
make_pt( 5.3830, 8.7883, -1.8481, &rA01.h5_ );
make_pt( 5.7729, 8.7436, -3.6691, &rA01.h5__ );
make_pt( 6.4830, 7.1518, -2.5252, &rA01.c4_ );
make_pt( 7.4749, 7.5972, -2.4482, &rA01.h4_ );
make_pt( 6.1626, 6.4620, -1.2827, &rA01.o4_ );
make_pt( 6.5431, 5.0992, -1.3905, &rA01.c1_ );
make_pt( 7.2871, 4.9328, -0.6114, &rA01.h1_ );
make_pt( 7.1852, 4.8935, -2.7592, &rA01.c2_ );
make_pt( 6.8573, 3.9363, -3.1645, &rA01.h2__ );
make_pt( 8.5780, 5.1025, -2.6046, &rA01.o2_ );
make_pt( 8.9516, 4.7577, -1.7902, &rA01.h2_ );
make_pt( 6.5522, 6.0300, -3.5612, &rA01.c3_ );
make_pt( 5.5420, 5.7356, -3.8459, &rA01.h3_ );
make_pt( 7.3487, 6.4089, -4.6867, &rA01.o3_ );
make_pt( 4.7442, 0.4514, -0.1390, &rA01.n1 );
make_pt( 6.3687, 2.1459, -0.5926, &rA01.n3 );
make_pt( 5.9795, 0.9335, -0.2657, &rA01.c2 );
make_pt( 5.3052, 2.9471, -0.8125, &rA01.c4 );
make_pt( 3.9891, 2.5987, -0.7230, &rA01.c5 );
make_pt( 3.7016, 1.2717, -0.3647, &rA01.c6 );
make_pt( 2.4553, 0.7925, -0.2390, &rA01._.A.n6 );
make_pt( 3.1770, 3.6859, -1.0198, &rA01._.A.n7 );
make_pt( 5.3247, 4.2695, -1.1710, &rA01._.A.n9 );
make_pt( 4.0156, 4.6415, -1.2759, &rA01._.A.c8 );
make_pt( 6.7198, 0.1618, -0.0547, &rA01._.A.h2 );
make_pt( 1.6709, 1.3900, -0.4039, &rA01._.A.h61 );
make_pt( 2.3107, -0.1627, -0.0373, &rA01._.A.h62 );
make_pt( 3.4426, 5.5361, -1.5199, &rA01._.A.h8 );
rA02.type = 'A';
make_tfo( 0.5566, 0.0449, 0.8296,
0.5125, 0.7673, -0.3854,
-0.6538, 0.6397, 0.4041,
-9.1161, -3.7679, -2.9968, &rA02.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA02.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA02.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA02.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA02.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA02.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA02.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA02.o5_ );
make_pt( 4.5778, 6.6594, -4.0364, &rA02.c5_ );
make_pt( 4.9220, 7.1963, -4.9204, &rA02.h5_ );
make_pt( 3.7996, 5.9091, -4.1764, &rA02.h5__ );
make_pt( 5.7873, 5.8869, -3.5482, &rA02.c4_ );
make_pt( 6.0405, 5.0875, -4.2446, &rA02.h4_ );
make_pt( 6.9135, 6.8036, -3.4310, &rA02.o4_ );
make_pt( 7.7293, 6.4084, -2.3392, &rA02.c1_ );
make_pt( 8.7078, 6.1815, -2.7624, &rA02.h1_ );
make_pt( 7.1305, 5.1418, -1.7347, &rA02.c2_ );
make_pt( 7.2040, 5.1982, -0.6486, &rA02.h2__ );
make_pt( 7.7417, 4.0392, -2.3813, &rA02.o2_ );
make_pt( 8.6785, 4.1443, -2.5630, &rA02.h2_ );
make_pt( 5.6666, 5.2728, -2.1536, &rA02.c3_ );
make_pt( 5.1747, 5.9805, -1.4863, &rA02.h3_ );
make_pt( 4.9997, 4.0086, -2.1973, &rA02.o3_ );
make_pt( 10.3245, 8.5459, 1.5467, &rA02.n1 );
make_pt( 9.8051, 6.9432, -0.1497, &rA02.n3 );
make_pt( 10.5175, 7.4328, 0.8408, &rA02.c2 );
make_pt( 8.7523, 7.7422, -0.4228, &rA02.c4 );
make_pt( 8.4257, 8.9060, 0.2099, &rA02.c5 );
make_pt( 9.2665, 9.3242, 1.2540, &rA02.c6 );
make_pt( 9.0664, 10.4462, 1.9610, &rA02._.A.n6 );
make_pt( 7.2750, 9.4537, -0.3428, &rA02._.A.n7 );
make_pt( 7.7962, 7.5519, -1.3859, &rA02._.A.n9 );
make_pt( 6.9479, 8.6157, -1.2771, &rA02._.A.c8 );
make_pt( 11.4063, 6.9047, 1.1859, &rA02._.A.h2 );
make_pt( 8.2845, 11.0341, 1.7552, &rA02._.A.h61 );
make_pt( 9.6584, 10.6647, 2.7198, &rA02._.A.h62 );
make_pt( 6.0430, 8.9853, -1.7594, &rA02._.A.h8 );
rA03.type = 'A';
make_tfo( -0.5021, 0.0731, 0.8617,
-0.8112, 0.3054, -0.4986,
-0.2996, -0.9494, -0.0940,
6.4273, -5.1944, -3.7807, &rA03.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA03.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA03.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA03.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA03.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA03.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA03.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA03.o5_ );
make_pt( 4.1214, 6.7116, -1.9049, &rA03.c5_ );
make_pt( 3.3465, 5.9610, -2.0607, &rA03.h5_ );
make_pt( 4.0789, 7.2928, -0.9837, &rA03.h5__ );
make_pt( 5.4170, 5.9293, -1.8186, &rA03.c4_ );
make_pt( 5.4506, 5.3400, -0.9023, &rA03.h4_ );
make_pt( 5.5067, 5.0417, -2.9703, &rA03.o4_ );
make_pt( 6.8650, 4.9152, -3.3612, &rA03.c1_ );
make_pt( 7.1090, 3.8577, -3.2603, &rA03.h1_ );
make_pt( 7.7152, 5.7282, -2.3894, &rA03.c2_ );
make_pt( 8.5029, 6.2356, -2.9463, &rA03.h2__ );
make_pt( 8.1036, 4.8568, -1.3419, &rA03.o2_ );
make_pt( 8.3270, 3.9651, -1.6184, &rA03.h2_ );
make_pt( 6.7003, 6.7565, -1.8911, &rA03.c3_ );
make_pt( 6.5898, 7.5329, -2.6482, &rA03.h3_ );
make_pt( 7.0505, 7.2878, -0.6105, &rA03.o3_ );
make_pt( 9.6740, 4.7656, -7.6614, &rA03.n1 );
make_pt( 9.0739, 4.3013, -5.3941, &rA03.n3 );
make_pt( 9.8416, 4.2192, -6.4581, &rA03.c2 );
make_pt( 7.9885, 5.0632, -5.6446, &rA03.c4 );
make_pt( 7.6822, 5.6856, -6.8194, &rA03.c5 );
make_pt( 8.5831, 5.5215, -7.8840, &rA03.c6 );
make_pt( 8.4084, 6.0747, -9.0933, &rA03._.A.n6 );
make_pt( 6.4857, 6.3816, -6.7035, &rA03._.A.n7 );
make_pt( 6.9740, 5.3703, -4.7760, &rA03._.A.n9 );
make_pt( 6.1133, 6.1613, -5.4808, &rA03._.A.c8 );
make_pt( 10.7627, 3.6375, -6.4220, &rA03._.A.h2 );
make_pt( 7.6031, 6.6390, -9.2733, &rA03._.A.h61 );
make_pt( 9.1004, 5.9708, -9.7893, &rA03._.A.h62 );
make_pt( 5.1705, 6.6830, -5.3167, &rA03._.A.h8 );
rA04.type = 'A';
make_tfo( -0.5426, -0.8175, 0.1929,
0.8304, -0.5567, -0.0237,
0.1267, 0.1473, 0.9809,
-0.5075, 8.3929, 0.2229, &rA04.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA04.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA04.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA04.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA04.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA04.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA04.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA04.o5_ );
make_pt( 5.4352, 8.2183, -2.7757, &rA04.c5_ );
make_pt( 5.3830, 8.7883, -1.8481, &rA04.h5_ );
make_pt( 5.7729, 8.7436, -3.6691, &rA04.h5__ );
make_pt( 6.4830, 7.1518, -2.5252, &rA04.c4_ );
make_pt( 7.4749, 7.5972, -2.4482, &rA04.h4_ );
make_pt( 6.1626, 6.4620, -1.2827, &rA04.o4_ );
make_pt( 6.5431, 5.0992, -1.3905, &rA04.c1_ );
make_pt( 7.2871, 4.9328, -0.6114, &rA04.h1_ );
make_pt( 7.1852, 4.8935, -2.7592, &rA04.c2_ );
make_pt( 6.8573, 3.9363, -3.1645, &rA04.h2__ );
make_pt( 8.5780, 5.1025, -2.6046, &rA04.o2_ );
make_pt( 8.9516, 4.7577, -1.7902, &rA04.h2_ );
make_pt( 6.5522, 6.0300, -3.5612, &rA04.c3_ );
make_pt( 5.5420, 5.7356, -3.8459, &rA04.h3_ );
make_pt( 7.3487, 6.4089, -4.6867, &rA04.o3_ );
make_pt( 3.6343, 2.6680, 2.0783, &rA04.n1 );
make_pt( 5.4505, 3.9805, 1.2446, &rA04.n3 );
make_pt( 4.7540, 3.3816, 2.1851, &rA04.c2 );
make_pt( 4.8805, 3.7951, 0.0354, &rA04.c4 );
make_pt( 3.7416, 3.0925, -0.2305, &rA04.c5 );
make_pt( 3.0873, 2.4980, 0.8606, &rA04.c6 );
make_pt( 1.9600, 1.7805, 0.7462, &rA04._.A.n6 );
make_pt( 3.4605, 3.1184, -1.5906, &rA04._.A.n7 );
make_pt( 5.3247, 4.2695, -1.1710, &rA04._.A.n9 );
make_pt( 4.4244, 3.8244, -2.0953, &rA04._.A.c8 );
make_pt( 5.0814, 3.4352, 3.2234, &rA04._.A.h2 );
make_pt( 1.5423, 1.6454, -0.1520, &rA04._.A.h61 );
make_pt( 1.5716, 1.3398, 1.5392, &rA04._.A.h62 );
make_pt( 4.2675, 3.8876, -3.1721, &rA04._.A.h8 );
rA05.type = 'A';
make_tfo( -0.5891, 0.0449, 0.8068,
0.5375, 0.7673, 0.3498,
-0.6034, 0.6397, -0.4762,
-0.3019, -3.7679, -9.5913, &rA05.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA05.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA05.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA05.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA05.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA05.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA05.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA05.o5_ );
make_pt( 4.5778, 6.6594, -4.0364, &rA05.c5_ );
make_pt( 4.9220, 7.1963, -4.9204, &rA05.h5_ );
make_pt( 3.7996, 5.9091, -4.1764, &rA05.h5__ );
make_pt( 5.7873, 5.8869, -3.5482, &rA05.c4_ );
make_pt( 6.0405, 5.0875, -4.2446, &rA05.h4_ );
make_pt( 6.9135, 6.8036, -3.4310, &rA05.o4_ );
make_pt( 7.7293, 6.4084, -2.3392, &rA05.c1_ );
make_pt( 8.7078, 6.1815, -2.7624, &rA05.h1_ );
make_pt( 7.1305, 5.1418, -1.7347, &rA05.c2_ );
make_pt( 7.2040, 5.1982, -0.6486, &rA05.h2__ );
make_pt( 7.7417, 4.0392, -2.3813, &rA05.o2_ );
make_pt( 8.6785, 4.1443, -2.5630, &rA05.h2_ );
make_pt( 5.6666, 5.2728, -2.1536, &rA05.c3_ );
make_pt( 5.1747, 5.9805, -1.4863, &rA05.h3_ );
make_pt( 4.9997, 4.0086, -2.1973, &rA05.o3_ );
make_pt( 10.2594, 10.6774, -1.0056, &rA05.n1 );
make_pt( 9.7528, 8.7080, -2.2631, &rA05.n3 );
make_pt( 10.4471, 9.7876, -1.9791, &rA05.c2 );
make_pt( 8.7271, 8.5575, -1.3991, &rA05.c4 );
make_pt( 8.4100, 9.3803, -0.3580, &rA05.c5 );
make_pt( 9.2294, 10.5030, -0.1574, &rA05.c6 );
make_pt( 9.0349, 11.3951, 0.8250, &rA05._.A.n6 );
make_pt( 7.2891, 8.9068, 0.3121, &rA05._.A.n7 );
make_pt( 7.7962, 7.5519, -1.3859, &rA05._.A.n9 );
make_pt( 6.9702, 7.8292, -0.3353, &rA05._.A.c8 );
make_pt( 11.3132, 10.0537, -2.5851, &rA05._.A.h2 );
make_pt( 8.2741, 11.2784, 1.4629, &rA05._.A.h61 );
make_pt( 9.6733, 12.1368, 0.9529, &rA05._.A.h62 );
make_pt( 6.0888, 7.3990, 0.1403, &rA05._.A.h8 );
rA06.type = 'A';
make_tfo( -0.9815, 0.0731, -0.1772,
0.1912, 0.3054, -0.9328,
-0.0141, -0.9494, -0.3137,
5.7506, -5.1944, 4.7470, &rA06.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rA06.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rA06.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rA06.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rA06.p );
make_pt( 1.6980, 7.6960, -3.5570, &rA06.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rA06.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rA06.o5_ );
make_pt( 4.1214, 6.7116, -1.9049, &rA06.c5_ );
make_pt( 3.3465, 5.9610, -2.0607, &rA06.h5_ );
make_pt( 4.0789, 7.2928, -0.9837, &rA06.h5__ );
make_pt( 5.4170, 5.9293, -1.8186, &rA06.c4_ );
make_pt( 5.4506, 5.3400, -0.9023, &rA06.h4_ );
make_pt( 5.5067, 5.0417, -2.9703, &rA06.o4_ );
make_pt( 6.8650, 4.9152, -3.3612, &rA06.c1_ );
make_pt( 7.1090, 3.8577, -3.2603, &rA06.h1_ );
make_pt( 7.7152, 5.7282, -2.3894, &rA06.c2_ );
make_pt( 8.5029, 6.2356, -2.9463, &rA06.h2__ );
make_pt( 8.1036, 4.8568, -1.3419, &rA06.o2_ );
make_pt( 8.3270, 3.9651, -1.6184, &rA06.h2_ );
make_pt( 6.7003, 6.7565, -1.8911, &rA06.c3_ );
make_pt( 6.5898, 7.5329, -2.6482, &rA06.h3_ );
make_pt( 7.0505, 7.2878, -0.6105, &rA06.o3_ );
make_pt( 6.6624, 3.5061, -8.2986, &rA06.n1 );
make_pt( 6.5810, 3.2570, -5.9221, &rA06.n3 );
make_pt( 6.5151, 2.8263, -7.1625, &rA06.c2 );
make_pt( 6.8364, 4.5817, -5.8882, &rA06.c4 );
make_pt( 7.0116, 5.4064, -6.9609, &rA06.c5 );
make_pt( 6.9173, 4.8260, -8.2361, &rA06.c6 );
make_pt( 7.0668, 5.5163, -9.3763, &rA06._.A.n6 );
make_pt( 7.2573, 6.7070, -6.5394, &rA06._.A.n7 );
make_pt( 6.9740, 5.3703, -4.7760, &rA06._.A.n9 );
make_pt( 7.2238, 6.6275, -5.2453, &rA06._.A.c8 );
make_pt( 6.3146, 1.7741, -7.3641, &rA06._.A.h2 );
make_pt( 7.2568, 6.4972, -9.3456, &rA06._.A.h61 );
make_pt( 7.0437, 5.0478, -10.2446, &rA06._.A.h62 );
make_pt( 7.4108, 7.6227, -4.8418, &rA06._.A.h8 );
rA07.type = 'A';
make_tfo( 0.2379, 0.1310, -0.9624,
-0.5876, -0.7696, -0.2499,
-0.7734, 0.6249, -0.1061,
30.9870, -26.9344, 42.6416, &rA07.dgf_base_tfo );
make_tfo( 0.7529, 0.1548, 0.6397,
0.2952, -0.9481, -0.1180,
0.5882, 0.2777, -0.7595,
-58.8919, -11.3095, 6.0866, &rA07.p_o3_275_tfo );
make_tfo( -0.0239, 0.9667, -0.2546,
0.9731, -0.0359, -0.2275,
-0.2290, -0.2532, -0.9399,
3.5401, -29.7913, 52.2796, &rA07.p_o3_180_tfo );
make_tfo( -0.8912, -0.4531, 0.0242,
-0.1183, 0.1805, -0.9764,
0.4380, -0.8730, -0.2145,
19.9023, 54.8054, 15.2799, &rA07.p_o3_60_tfo );
make_pt( 41.8210, 8.3880, 43.5890, &rA07.p );
make_pt( 42.5400, 8.0450, 44.8330, &rA07.o1p );
make_pt( 42.2470, 9.6920, 42.9910, &rA07.o2p );
make_pt( 40.2550, 8.2030, 43.7340, &rA07.o5_ );
make_pt( 39.3505, 8.4697, 42.6565, &rA07.c5_ );
make_pt( 39.1377, 7.5433, 42.1230, &rA07.h5_ );
make_pt( 39.7203, 9.3119, 42.0717, &rA07.h5__ );
make_pt( 38.0405, 8.9195, 43.2869, &rA07.c4_ );
make_pt( 37.3687, 9.3036, 42.5193, &rA07.h4_ );
make_pt( 37.4319, 7.8146, 43.9387, &rA07.o4_ );
make_pt( 37.1959, 8.1354, 45.3237, &rA07.c1_ );
make_pt( 36.1788, 8.5202, 45.3970, &rA07.h1_ );
make_pt( 38.1721, 9.2328, 45.6504, &rA07.c2_ );
make_pt( 39.1555, 8.7939, 45.8188, &rA07.h2__ );
make_pt( 37.7862, 10.0617, 46.7013, &rA07.o2_ );
make_pt( 37.3087, 9.6229, 47.4092, &rA07.h2_ );
make_pt( 38.1844, 10.0268, 44.3367, &rA07.c3_ );
make_pt( 39.1578, 10.5054, 44.2289, &rA07.h3_ );
make_pt( 37.0547, 10.9127, 44.3441, &rA07.o3_ );
make_pt( 34.8811, 4.2072, 47.5784, &rA07.n1 );
make_pt( 35.1084, 6.1336, 46.1818, &rA07.n3 );
make_pt( 34.4108, 5.1360, 46.7207, &rA07.c2 );
make_pt( 36.3908, 6.1224, 46.6053, &rA07.c4 );
make_pt( 36.9819, 5.2334, 47.4697, &rA07.c5 );
make_pt( 36.1786, 4.1985, 48.0035, &rA07.c6 );
make_pt( 36.6103, 3.2749, 48.8452, &rA07._.A.n6 );
make_pt( 38.3236, 5.5522, 47.6595, &rA07._.A.n7 );
make_pt( 37.3887, 7.0024, 46.2437, &rA07._.A.n9 );
make_pt( 38.5055, 6.6096, 46.9057, &rA07._.A.c8 );
make_pt( 33.3553, 5.0152, 46.4771, &rA07._.A.h2 );
make_pt( 37.5730, 3.2804, 49.1507, &rA07._.A.h61 );
make_pt( 35.9775, 2.5638, 49.1828, &rA07._.A.h62 );
make_pt( 39.5461, 6.9184, 47.0041, &rA07._.A.h8 );
rA08.type = 'A';
make_tfo( 0.1084, -0.0895, -0.9901,
0.9789, -0.1638, 0.1220,
-0.1731, -0.9824, 0.0698,
-2.9039, 47.2655, 33.0094, &rA08.dgf_base_tfo );
make_tfo( 0.7529, 0.1548, 0.6397,
0.2952, -0.9481, -0.1180,
0.5882, 0.2777, -0.7595,
-58.8919, -11.3095, 6.0866, &rA08.p_o3_275_tfo );
make_tfo( -0.0239, 0.9667, -0.2546,
0.9731, -0.0359, -0.2275,
-0.2290, -0.2532, -0.9399,
3.5401, -29.7913, 52.2796, &rA08.p_o3_180_tfo );
make_tfo( -0.8912, -0.4531, 0.0242,
-0.1183, 0.1805, -0.9764,
0.4380, -0.8730, -0.2145,
19.9023, 54.8054, 15.2799, &rA08.p_o3_60_tfo );
make_pt( 41.8210, 8.3880, 43.5890, &rA08.p );
make_pt( 42.5400, 8.0450, 44.8330, &rA08.o1p );
make_pt( 42.2470, 9.6920, 42.9910, &rA08.o2p );
make_pt( 40.2550, 8.2030, 43.7340, &rA08.o5_ );
make_pt( 39.4850, 8.9301, 44.6977, &rA08.c5_ );
make_pt( 39.0638, 9.8199, 44.2296, &rA08.h5_ );
make_pt( 40.0757, 9.0713, 45.6029, &rA08.h5__ );
make_pt( 38.3102, 8.0414, 45.0789, &rA08.c4_ );
make_pt( 37.7842, 8.4637, 45.9351, &rA08.h4_ );
make_pt( 37.4200, 7.9453, 43.9769, &rA08.o4_ );
make_pt( 37.2249, 6.5609, 43.6273, &rA08.c1_ );
make_pt( 36.3360, 6.2168, 44.1561, &rA08.h1_ );
make_pt( 38.4347, 5.8414, 44.1590, &rA08.c2_ );
make_pt( 39.2688, 5.9974, 43.4749, &rA08.h2__ );
make_pt( 38.2344, 4.4907, 44.4348, &rA08.o2_ );
make_pt( 37.6374, 4.0386, 43.8341, &rA08.h2_ );
make_pt( 38.6926, 6.6079, 45.4637, &rA08.c3_ );
make_pt( 39.7585, 6.5640, 45.6877, &rA08.h3_ );
make_pt( 37.8238, 6.0705, 46.4723, &rA08.o3_ );
make_pt( 33.9162, 6.2598, 39.7758, &rA08.n1 );
make_pt( 34.6709, 6.5759, 42.0215, &rA08.n3 );
make_pt( 33.7257, 6.5186, 41.0858, &rA08.c2 );
make_pt( 35.8935, 6.3324, 41.5018, &rA08.c4 );
make_pt( 36.2105, 6.0601, 40.1932, &rA08.c5 );
make_pt( 35.1538, 6.0151, 39.2537, &rA08.c6 );
make_pt( 35.3088, 5.7642, 37.9649, &rA08._.A.n6 );
make_pt( 37.5818, 5.8677, 40.0507, &rA08._.A.n7 );
make_pt( 37.0932, 6.3197, 42.1810, &rA08._.A.n9 );
make_pt( 38.0509, 6.0354, 41.2635, &rA08._.A.c8 );
make_pt( 32.6830, 6.6898, 41.3532, &rA08._.A.h2 );
make_pt( 36.2305, 5.5855, 37.5925, &rA08._.A.h61 );
make_pt( 34.5056, 5.7512, 37.3528, &rA08._.A.h62 );
make_pt( 39.1318, 5.8993, 41.2285, &rA08._.A.h8 );
rA09.type = 'A';
make_tfo( 0.8467, 0.4166, -0.3311,
-0.3962, 0.9089, 0.1303,
0.3552, 0.0209, 0.9346,
-42.7319, -26.6223, -29.8163, &rA09.dgf_base_tfo );
make_tfo( 0.7529, 0.1548, 0.6397,
0.2952, -0.9481, -0.1180,
0.5882, 0.2777, -0.7595,
-58.8919, -11.3095, 6.0866, &rA09.p_o3_275_tfo );
make_tfo( -0.0239, 0.9667, -0.2546,
0.9731, -0.0359, -0.2275,
-0.2290, -0.2532, -0.9399,
3.5401, -29.7913, 52.2796, &rA09.p_o3_180_tfo );
make_tfo( -0.8912, -0.4531, 0.0242,
-0.1183, 0.1805, -0.9764,
0.4380, -0.8730, -0.2145,
19.9023, 54.8054, 15.2799, &rA09.p_o3_60_tfo );
make_pt( 41.8210, 8.3880, 43.5890, &rA09.p );
make_pt( 42.5400, 8.0450, 44.8330, &rA09.o1p );
make_pt( 42.2470, 9.6920, 42.9910, &rA09.o2p );
make_pt( 40.2550, 8.2030, 43.7340, &rA09.o5_ );
make_pt( 39.3505, 8.4697, 42.6565, &rA09.c5_ );
make_pt( 39.1377, 7.5433, 42.1230, &rA09.h5_ );
make_pt( 39.7203, 9.3119, 42.0717, &rA09.h5__ );
make_pt( 38.0405, 8.9195, 43.2869, &rA09.c4_ );
make_pt( 37.6479, 8.1347, 43.9335, &rA09.h4_ );
make_pt( 38.2691, 10.0933, 44.0524, &rA09.o4_ );
make_pt( 37.3999, 11.1488, 43.5973, &rA09.c1_ );
make_pt( 36.5061, 11.1221, 44.2206, &rA09.h1_ );
make_pt( 37.0364, 10.7838, 42.1836, &rA09.c2_ );
make_pt( 37.8636, 11.0489, 41.5252, &rA09.h2__ );
make_pt( 35.8275, 11.3133, 41.7379, &rA09.o2_ );
make_pt( 35.6214, 12.1896, 42.0714, &rA09.h2_ );
make_pt( 36.9316, 9.2556, 42.2837, &rA09.c3_ );
make_pt( 37.1778, 8.8260, 41.3127, &rA09.h3_ );
make_pt( 35.6285, 8.9334, 42.7926, &rA09.o3_ );
make_pt( 38.1482, 15.2833, 46.4641, &rA09.n1 );
make_pt( 37.3641, 13.0968, 45.9007, &rA09.n3 );
make_pt( 37.5032, 14.1288, 46.7300, &rA09.c2 );
make_pt( 37.9570, 13.3377, 44.7113, &rA09.c4 );
make_pt( 38.6397, 14.4660, 44.3267, &rA09.c5 );
make_pt( 38.7473, 15.5229, 45.2609, &rA09.c6 );
make_pt( 39.3720, 16.6649, 45.0297, &rA09._.A.n6 );
make_pt( 39.1079, 14.3351, 43.0223, &rA09._.A.n7 );
make_pt( 38.0132, 12.4868, 43.6280, &rA09._.A.n9 );
make_pt( 38.7058, 13.1402, 42.6620, &rA09._.A.c8 );
make_pt( 37.0731, 14.0857, 47.7306, &rA09._.A.h2 );
make_pt( 39.8113, 16.8281, 44.1350, &rA09._.A.h61 );
make_pt( 39.4100, 17.3741, 45.7478, &rA09._.A.h62 );
make_pt( 39.0412, 12.9660, 41.6397, &rA09._.A.h8 );
rA10.type = 'A';
make_tfo( 0.7063, 0.6317, -0.3196,
-0.0403, -0.4149, -0.9090,
-0.7068, 0.6549, -0.2676,
6.4402, -52.1496, 30.8246, &rA10.dgf_base_tfo );
make_tfo( 0.7529, 0.1548, 0.6397,
0.2952, -0.9481, -0.1180,
0.5882, 0.2777, -0.7595,
-58.8919, -11.3095, 6.0866, &rA10.p_o3_275_tfo );
make_tfo( -0.0239, 0.9667, -0.2546,
0.9731, -0.0359, -0.2275,
-0.2290, -0.2532, -0.9399,
3.5401, -29.7913, 52.2796, &rA10.p_o3_180_tfo );
make_tfo( -0.8912, -0.4531, 0.0242,
-0.1183, 0.1805, -0.9764,
0.4380, -0.8730, -0.2145,
19.9023, 54.8054, 15.2799, &rA10.p_o3_60_tfo );
make_pt( 41.8210, 8.3880, 43.5890, &rA10.p );
make_pt( 42.5400, 8.0450, 44.8330, &rA10.o1p );
make_pt( 42.2470, 9.6920, 42.9910, &rA10.o2p );
make_pt( 40.2550, 8.2030, 43.7340, &rA10.o5_ );
make_pt( 39.4850, 8.9301, 44.6977, &rA10.c5_ );
make_pt( 39.0638, 9.8199, 44.2296, &rA10.h5_ );
make_pt( 40.0757, 9.0713, 45.6029, &rA10.h5__ );
make_pt( 38.3102, 8.0414, 45.0789, &rA10.c4_ );
make_pt( 37.7099, 7.8166, 44.1973, &rA10.h4_ );
make_pt( 38.8012, 6.8321, 45.6380, &rA10.o4_ );
make_pt( 38.2431, 6.6413, 46.9529, &rA10.c1_ );
make_pt( 37.3505, 6.0262, 46.8385, &rA10.h1_ );
make_pt( 37.8484, 8.0156, 47.4214, &rA10.c2_ );
make_pt( 38.7381, 8.5406, 47.7690, &rA10.h2__ );
make_pt( 36.8286, 8.0368, 48.3701, &rA10.o2_ );
make_pt( 36.8392, 7.3063, 48.9929, &rA10.h2_ );
make_pt( 37.3576, 8.6512, 46.1132, &rA10.c3_ );
make_pt( 37.5207, 9.7275, 46.1671, &rA10.h3_ );
make_pt( 35.9985, 8.2392, 45.9032, &rA10.o3_ );
make_pt( 39.9117, 2.2278, 48.8527, &rA10.n1 );
make_pt( 38.6207, 3.6941, 47.4757, &rA10.n3 );
make_pt( 38.9872, 2.4888, 47.9057, &rA10.c2 );
make_pt( 39.2961, 4.6720, 48.1174, &rA10.c4 );
make_pt( 40.2546, 4.5307, 49.0912, &rA10.c5 );
make_pt( 40.5932, 3.2189, 49.4985, &rA10.c6 );
make_pt( 41.4938, 2.9317, 50.4229, &rA10._.A.n6 );
make_pt( 40.7195, 5.7755, 49.5060, &rA10._.A.n7 );
make_pt( 39.1730, 6.0305, 47.9170, &rA10._.A.n9 );
make_pt( 40.0413, 6.6250, 48.7728, &rA10._.A.c8 );
make_pt( 38.5257, 1.5960, 47.4838, &rA10._.A.h2 );
make_pt( 41.9907, 3.6753, 50.8921, &rA10._.A.h61 );
make_pt( 41.6848, 1.9687, 50.6599, &rA10._.A.h62 );
make_pt( 40.3571, 7.6321, 49.0452, &rA10._.A.h8 );
rAs[0] = &rA10;
rAs[1] = &rA09;
rAs[2] = &rA08;
rAs[3] = &rA07;
rAs[4] = &rA06;
rAs[5] = &rA05;
rAs[6] = &rA04;
rAs[7] = &rA03;
rAs[8] = &rA02;
rAs[9] = &rA01;
rAs[10]= 0;
}
void init_C()
{
rC.type = 'C';
make_tfo( -0.0359, -0.8071, 0.5894,
-0.2669, 0.5761, 0.7726,
-0.9631, -0.1296, -0.2361,
0.1584, 8.3434, 0.5434, &rC.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC.o5_ );
make_pt( 5.2430, -8.2420, 2.8260, &rC.c5_ );
make_pt( 5.1974, -8.8497, 1.9223, &rC.h5_ );
make_pt( 5.5548, -8.7348, 3.7469, &rC.h5__ );
make_pt( 6.3140, -7.2060, 2.5510, &rC.c4_ );
make_pt( 7.2954, -7.6762, 2.4898, &rC.h4_ );
make_pt( 6.0140, -6.5420, 1.2890, &rC.o4_ );
make_pt( 6.4190, -5.1840, 1.3620, &rC.c1_ );
make_pt( 7.1608, -5.0495, 0.5747, &rC.h1_ );
make_pt( 7.0760, -4.9560, 2.7270, &rC.c2_ );
make_pt( 6.7770, -3.9803, 3.1099, &rC.h2__ );
make_pt( 8.4500, -5.1930, 2.5810, &rC.o2_ );
make_pt( 8.8309, -4.8755, 1.7590, &rC.h2_ );
make_pt( 6.4060, -6.0590, 3.5580, &rC.c3_ );
make_pt( 5.4021, -5.7313, 3.8281, &rC.h3_ );
make_pt( 7.1570, -6.4240, 4.7070, &rC.o3_ );
make_pt( 5.2170, -4.3260, 1.1690, &rC.n1 );
make_pt( 4.2960, -2.2560, 0.6290, &rC.n3 );
make_pt( 5.4330, -3.0200, 0.7990, &rC.c2 );
make_pt( 2.9930, -2.6780, 0.7940, &rC.c4 );
make_pt( 2.8670, -4.0630, 1.1830, &rC.c5 );
make_pt( 3.9570, -4.8300, 1.3550, &rC.c6 );
make_pt( 2.0187, -1.8047, 0.5874, &rC._.C.n4 );
make_pt( 6.5470, -2.5560, 0.6290, &rC._.C.o2 );
make_pt( 1.0684, -2.1236, 0.7109, &rC._.C.h41 );
make_pt( 2.2344, -0.8560, 0.3162, &rC._.C.h42 );
make_pt( 1.8797, -4.4972, 1.3404, &rC._.C.h5 );
make_pt( 3.8479, -5.8742, 1.6480, &rC._.C.h6 );
rC01.type = 'C';
make_tfo( -0.0137, -0.8012, 0.5983,
-0.2523, 0.5817, 0.7733,
-0.9675, -0.1404, -0.2101,
0.2031, 8.3874, 0.4228, &rC01.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC01.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC01.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC01.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC01.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC01.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC01.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC01.o5_ );
make_pt( 5.2416, -8.2422, 2.8181, &rC01.c5_ );
make_pt( 5.2050, -8.8128, 1.8901, &rC01.h5_ );
make_pt( 5.5368, -8.7738, 3.7227, &rC01.h5__ );
make_pt( 6.3232, -7.2037, 2.6002, &rC01.c4_ );
make_pt( 7.3048, -7.6757, 2.5577, &rC01.h4_ );
make_pt( 6.0635, -6.5092, 1.3456, &rC01.o4_ );
make_pt( 6.4697, -5.1547, 1.4629, &rC01.c1_ );
make_pt( 7.2354, -5.0043, 0.7018, &rC01.h1_ );
make_pt( 7.0856, -4.9610, 2.8521, &rC01.c2_ );
make_pt( 6.7777, -3.9935, 3.2487, &rC01.h2__ );
make_pt( 8.4627, -5.1992, 2.7423, &rC01.o2_ );
make_pt( 8.8693, -4.8638, 1.9399, &rC01.h2_ );
make_pt( 6.3877, -6.0809, 3.6362, &rC01.c3_ );
make_pt( 5.3770, -5.7562, 3.8834, &rC01.h3_ );
make_pt( 7.1024, -6.4754, 4.7985, &rC01.o3_ );
make_pt( 5.2764, -4.2883, 1.2538, &rC01.n1 );
make_pt( 4.3777, -2.2062, 0.7229, &rC01.n3 );
make_pt( 5.5069, -2.9779, 0.9088, &rC01.c2 );
make_pt( 3.0693, -2.6246, 0.8500, &rC01.c4 );
make_pt( 2.9279, -4.0146, 1.2149, &rC01.c5 );
make_pt( 4.0101, -4.7892, 1.4017, &rC01.c6 );
make_pt( 2.1040, -1.7437, 0.6331, &rC01._.C.n4 );
make_pt( 6.6267, -2.5166, 0.7728, &rC01._.C.o2 );
make_pt( 1.1496, -2.0600, 0.7287, &rC01._.C.h41 );
make_pt( 2.3303, -0.7921, 0.3815, &rC01._.C.h42 );
make_pt( 1.9353, -4.4465, 1.3419, &rC01._.C.h5 );
make_pt( 3.8895, -5.8371, 1.6762, &rC01._.C.h6 );
rC02.type = 'C';
make_tfo( 0.5141, 0.0246, 0.8574,
-0.5547, -0.7529, 0.3542,
0.6542, -0.6577, -0.3734,
-9.1111, -3.4598, -3.2939, &rC02.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC02.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC02.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC02.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC02.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC02.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC02.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC02.o5_ );
make_pt( 4.3825, -6.6585, 4.0489, &rC02.c5_ );
make_pt( 4.6841, -7.2019, 4.9443, &rC02.h5_ );
make_pt( 3.6189, -5.8889, 4.1625, &rC02.h5__ );
make_pt( 5.6255, -5.9175, 3.5998, &rC02.c4_ );
make_pt( 5.8732, -5.1228, 4.3034, &rC02.h4_ );
make_pt( 6.7337, -6.8605, 3.5222, &rC02.o4_ );
make_pt( 7.5932, -6.4923, 2.4548, &rC02.c1_ );
make_pt( 8.5661, -6.2983, 2.9064, &rC02.h1_ );
make_pt( 7.0527, -5.2012, 1.8322, &rC02.c2_ );
make_pt( 7.1627, -5.2525, 0.7490, &rC02.h2__ );
make_pt( 7.6666, -4.1249, 2.4880, &rC02.o2_ );
make_pt( 8.5944, -4.2543, 2.6981, &rC02.h2_ );
make_pt( 5.5661, -5.3029, 2.2009, &rC02.c3_ );
make_pt( 5.0841, -6.0018, 1.5172, &rC02.h3_ );
make_pt( 4.9062, -4.0452, 2.2042, &rC02.o3_ );
make_pt( 7.6298, -7.6136, 1.4752, &rC02.n1 );
make_pt( 8.6945, -8.7046, -0.2857, &rC02.n3 );
make_pt( 8.6943, -7.6514, 0.6066, &rC02.c2 );
make_pt( 7.7426, -9.6987, -0.3801, &rC02.c4 );
make_pt( 6.6642, -9.5742, 0.5722, &rC02.c5 );
make_pt( 6.6391, -8.5592, 1.4526, &rC02.c6 );
make_pt( 7.9033, -10.6371, -1.3010, &rC02._.C.n4 );
make_pt( 9.5840, -6.8186, 0.6136, &rC02._.C.o2 );
make_pt( 7.2009, -11.3604, -1.3619, &rC02._.C.h41 );
make_pt( 8.7058, -10.6168, -1.9140, &rC02._.C.h42 );
make_pt( 5.8585, -10.3083, 0.5822, &rC02._.C.h5 );
make_pt( 5.8197, -8.4773, 2.1667, &rC02._.C.h6 );
rC03.type = 'C';
make_tfo( -0.4993, 0.0476, 0.8651,
0.8078, -0.3353, 0.4847,
0.3132, 0.9409, 0.1290,
6.2989, -5.2303, -3.8577, &rC03.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC03.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC03.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC03.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC03.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC03.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC03.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC03.o5_ );
make_pt( 3.9938, -6.7042, 1.9023, &rC03.c5_ );
make_pt( 3.2332, -5.9343, 2.0319, &rC03.h5_ );
make_pt( 3.9666, -7.2863, 0.9812, &rC03.h5__ );
make_pt( 5.3098, -5.9546, 1.8564, &rC03.c4_ );
make_pt( 5.3863, -5.3702, 0.9395, &rC03.h4_ );
make_pt( 5.3851, -5.0642, 3.0076, &rC03.o4_ );
make_pt( 6.7315, -4.9724, 3.4462, &rC03.c1_ );
make_pt( 7.0033, -3.9202, 3.3619, &rC03.h1_ );
make_pt( 7.5997, -5.8018, 2.4948, &rC03.c2_ );
make_pt( 8.3627, -6.3254, 3.0707, &rC03.h2__ );
make_pt( 8.0410, -4.9501, 1.4724, &rC03.o2_ );
make_pt( 8.2781, -4.0644, 1.7570, &rC03.h2_ );
make_pt( 6.5701, -6.8129, 1.9714, &rC03.c3_ );
make_pt( 6.4186, -7.5809, 2.7299, &rC03.h3_ );
make_pt( 6.9357, -7.3841, 0.7235, &rC03.o3_ );
make_pt( 6.8024, -5.4718, 4.8475, &rC03.n1 );
make_pt( 7.9218, -5.5700, 6.8877, &rC03.n3 );
make_pt( 7.8908, -5.0886, 5.5944, &rC03.c2 );
make_pt( 6.9789, -6.3827, 7.4823, &rC03.c4 );
make_pt( 5.8742, -6.7319, 6.6202, &rC03.c5 );
make_pt( 5.8182, -6.2769, 5.3570, &rC03.c6 );
make_pt( 7.1702, -6.7511, 8.7402, &rC03._.C.n4 );
make_pt( 8.7747, -4.3728, 5.1568, &rC03._.C.o2 );
make_pt( 6.4741, -7.3461, 9.1662, &rC03._.C.h41 );
make_pt( 7.9889, -6.4396, 9.2429, &rC03._.C.h42 );
make_pt( 5.0736, -7.3713, 6.9922, &rC03._.C.h5 );
make_pt( 4.9784, -6.5473, 4.7170, &rC03._.C.h6 );
rC04.type = 'C';
make_tfo( -0.5669, -0.8012, 0.1918,
-0.8129, 0.5817, 0.0273,
-0.1334, -0.1404, -0.9811,
-0.3279, 8.3874, 0.3355, &rC04.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC04.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC04.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC04.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC04.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC04.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC04.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC04.o5_ );
make_pt( 5.2416, -8.2422, 2.8181, &rC04.c5_ );
make_pt( 5.2050, -8.8128, 1.8901, &rC04.h5_ );
make_pt( 5.5368, -8.7738, 3.7227, &rC04.h5__ );
make_pt( 6.3232, -7.2037, 2.6002, &rC04.c4_ );
make_pt( 7.3048, -7.6757, 2.5577, &rC04.h4_ );
make_pt( 6.0635, -6.5092, 1.3456, &rC04.o4_ );
make_pt( 6.4697, -5.1547, 1.4629, &rC04.c1_ );
make_pt( 7.2354, -5.0043, 0.7018, &rC04.h1_ );
make_pt( 7.0856, -4.9610, 2.8521, &rC04.c2_ );
make_pt( 6.7777, -3.9935, 3.2487, &rC04.h2__ );
make_pt( 8.4627, -5.1992, 2.7423, &rC04.o2_ );
make_pt( 8.8693, -4.8638, 1.9399, &rC04.h2_ );
make_pt( 6.3877, -6.0809, 3.6362, &rC04.c3_ );
make_pt( 5.3770, -5.7562, 3.8834, &rC04.h3_ );
make_pt( 7.1024, -6.4754, 4.7985, &rC04.o3_ );
make_pt( 5.2764, -4.2883, 1.2538, &rC04.n1 );
make_pt( 3.8961, -3.0896, -0.1893, &rC04.n3 );
make_pt( 5.0095, -3.8907, -0.0346, &rC04.c2 );
make_pt( 3.0480, -2.6632, 0.8116, &rC04.c4 );
make_pt( 3.4093, -3.1310, 2.1292, &rC04.c5 );
make_pt( 4.4878, -3.9124, 2.3088, &rC04.c6 );
make_pt( 2.0216, -1.8941, 0.4804, &rC04._.C.n4 );
make_pt( 5.7005, -4.2164, -0.9842, &rC04._.C.o2 );
make_pt( 1.4067, -1.5873, 1.2205, &rC04._.C.h41 );
make_pt( 1.8721, -1.6319, -0.4835, &rC04._.C.h42 );
make_pt( 2.8048, -2.8507, 2.9918, &rC04._.C.h5 );
make_pt( 4.7491, -4.2593, 3.3085, &rC04._.C.h6 );
rC05.type = 'C';
make_tfo( -0.6298, 0.0246, 0.7763,
-0.5226, -0.7529, -0.4001,
0.5746, -0.6577, 0.4870,
-0.0208, -3.4598, -9.6882, &rC05.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC05.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC05.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC05.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC05.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC05.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC05.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC05.o5_ );
make_pt( 4.3825, -6.6585, 4.0489, &rC05.c5_ );
make_pt( 4.6841, -7.2019, 4.9443, &rC05.h5_ );
make_pt( 3.6189, -5.8889, 4.1625, &rC05.h5__ );
make_pt( 5.6255, -5.9175, 3.5998, &rC05.c4_ );
make_pt( 5.8732, -5.1228, 4.3034, &rC05.h4_ );
make_pt( 6.7337, -6.8605, 3.5222, &rC05.o4_ );
make_pt( 7.5932, -6.4923, 2.4548, &rC05.c1_ );
make_pt( 8.5661, -6.2983, 2.9064, &rC05.h1_ );
make_pt( 7.0527, -5.2012, 1.8322, &rC05.c2_ );
make_pt( 7.1627, -5.2525, 0.7490, &rC05.h2__ );
make_pt( 7.6666, -4.1249, 2.4880, &rC05.o2_ );
make_pt( 8.5944, -4.2543, 2.6981, &rC05.h2_ );
make_pt( 5.5661, -5.3029, 2.2009, &rC05.c3_ );
make_pt( 5.0841, -6.0018, 1.5172, &rC05.h3_ );
make_pt( 4.9062, -4.0452, 2.2042, &rC05.o3_ );
make_pt( 7.6298, -7.6136, 1.4752, &rC05.n1 );
make_pt( 8.5977, -9.5977, 0.7329, &rC05.n3 );
make_pt( 8.5951, -8.5745, 1.6594, &rC05.c2 );
make_pt( 7.7372, -9.7371, -0.3364, &rC05.c4 );
make_pt( 6.7596, -8.6801, -0.4476, &rC05.c5 );
make_pt( 6.7338, -7.6721, 0.4408, &rC05.c6 );
make_pt( 7.8849, -10.7881, -1.1289, &rC05._.C.n4 );
make_pt( 9.3993, -8.5377, 2.5743, &rC05._.C.o2 );
make_pt( 7.2499, -10.8809, -1.9088, &rC05._.C.h41 );
make_pt( 8.6122, -11.4649, -0.9468, &rC05._.C.h42 );
make_pt( 6.0317, -8.6941, -1.2588, &rC05._.C.h5 );
make_pt( 5.9901, -6.8809, 0.3459, &rC05._.C.h6 );
rC06.type = 'C';
make_tfo( -0.9837, 0.0476, -0.1733,
-0.1792, -0.3353, 0.9249,
-0.0141, 0.9409, 0.3384,
5.7793, -5.2303, 4.5997, &rC06.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rC06.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rC06.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rC06.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rC06.p );
make_pt( 1.4950, -7.6230, 3.4770, &rC06.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rC06.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rC06.o5_ );
make_pt( 3.9938, -6.7042, 1.9023, &rC06.c5_ );
make_pt( 3.2332, -5.9343, 2.0319, &rC06.h5_ );
make_pt( 3.9666, -7.2863, 0.9812, &rC06.h5__ );
make_pt( 5.3098, -5.9546, 1.8564, &rC06.c4_ );
make_pt( 5.3863, -5.3702, 0.9395, &rC06.h4_ );
make_pt( 5.3851, -5.0642, 3.0076, &rC06.o4_ );
make_pt( 6.7315, -4.9724, 3.4462, &rC06.c1_ );
make_pt( 7.0033, -3.9202, 3.3619, &rC06.h1_ );
make_pt( 7.5997, -5.8018, 2.4948, &rC06.c2_ );
make_pt( 8.3627, -6.3254, 3.0707, &rC06.h2__ );
make_pt( 8.0410, -4.9501, 1.4724, &rC06.o2_ );
make_pt( 8.2781, -4.0644, 1.7570, &rC06.h2_ );
make_pt( 6.5701, -6.8129, 1.9714, &rC06.c3_ );
make_pt( 6.4186, -7.5809, 2.7299, &rC06.h3_ );
make_pt( 6.9357, -7.3841, 0.7235, &rC06.o3_ );
make_pt( 6.8024, -5.4718, 4.8475, &rC06.n1 );
make_pt( 6.6920, -5.0495, 7.1354, &rC06.n3 );
make_pt( 6.6201, -4.5500, 5.8506, &rC06.c2 );
make_pt( 6.9254, -6.3614, 7.4926, &rC06.c4 );
make_pt( 7.1046, -7.2543, 6.3718, &rC06.c5 );
make_pt( 7.0391, -6.7951, 5.1106, &rC06.c6 );
make_pt( 6.9614, -6.6648, 8.7815, &rC06._.C.n4 );
make_pt( 6.4083, -3.3696, 5.6340, &rC06._.C.o2 );
make_pt( 7.1329, -7.6280, 9.0324, &rC06._.C.h41 );
make_pt( 6.8204, -5.9469, 9.4777, &rC06._.C.h42 );
make_pt( 7.2954, -8.3135, 6.5440, &rC06._.C.h5 );
make_pt( 7.1753, -7.4798, 4.2735, &rC06._.C.h6 );
rC07.type = 'C';
make_tfo( 0.0033, 0.2720, -0.9623,
0.3013, -0.9179, -0.2584,
-0.9535, -0.2891, -0.0850,
43.0403, 13.7233, 34.5710, &rC07.dgf_base_tfo );
make_tfo( 0.9187, 0.2887, 0.2694,
0.0302, -0.7316, 0.6811,
0.3938, -0.6176, -0.6808,
-48.4330, 26.3254, 13.6383, &rC07.p_o3_275_tfo );
make_tfo( -0.1504, 0.7744, -0.6145,
0.7581, 0.4893, 0.4311,
0.6345, -0.4010, -0.6607,
-31.9784, -13.4285, 44.9650, &rC07.p_o3_180_tfo );
make_tfo( -0.6236, -0.7810, -0.0337,
-0.6890, 0.5694, -0.4484,
0.3694, -0.2564, -0.8932,
12.1105, 30.8774, 46.0946, &rC07.p_o3_60_tfo );
make_pt( 33.3400, 11.0980, 46.1750, &rC07.p );
make_pt( 34.5130, 10.2320, 46.4660, &rC07.o1p );
make_pt( 33.4130, 12.3960, 46.9340, &rC07.o2p );
make_pt( 31.9810, 10.3390, 46.4820, &rC07.o5_ );
make_pt( 30.8152, 11.1619, 46.2003, &rC07.c5_ );
make_pt( 30.4519, 10.9454, 45.1957, &rC07.h5_ );
make_pt( 31.0379, 12.2016, 46.4400, &rC07.h5__ );
make_pt( 29.7081, 10.7448, 47.1428, &rC07.c4_ );
make_pt( 28.8710, 11.4416, 47.0982, &rC07.h4_ );
make_pt( 29.2550, 9.4394, 46.8162, &rC07.o4_ );
make_pt( 29.3907, 8.5625, 47.9460, &rC07.c1_ );
make_pt( 28.4416, 8.5669, 48.4819, &rC07.h1_ );
make_pt( 30.4468, 9.2031, 48.7952, &rC07.c2_ );
make_pt( 31.4222, 8.9651, 48.3709, &rC07.h2__ );
make_pt( 30.3701, 8.9157, 50.1624, &rC07.o2_ );
make_pt( 30.0652, 8.0304, 50.3740, &rC07.h2_ );
make_pt( 30.1622, 10.6879, 48.6120, &rC07.c3_ );
make_pt( 31.0952, 11.2399, 48.7254, &rC07.h3_ );
make_pt( 29.1076, 11.1535, 49.4702, &rC07.o3_ );
make_pt( 29.7883, 7.2209, 47.5235, &rC07.n1 );
make_pt( 29.1825, 5.0438, 46.8275, &rC07.n3 );
make_pt( 28.8008, 6.2912, 47.2263, &rC07.c2 );
make_pt( 30.4888, 4.6890, 46.7186, &rC07.c4 );
make_pt( 31.5034, 5.6405, 47.0249, &rC07.c5 );
make_pt( 31.1091, 6.8691, 47.4156, &rC07.c6 );
make_pt( 30.8109, 3.4584, 46.3336, &rC07._.C.n4 );
make_pt( 27.6171, 6.5989, 47.3189, &rC07._.C.o2 );
make_pt( 31.7923, 3.2301, 46.2638, &rC07._.C.h41 );
make_pt( 30.0880, 2.7857, 46.1215, &rC07._.C.h42 );
make_pt( 32.5542, 5.3634, 46.9395, &rC07._.C.h5 );
make_pt( 31.8523, 7.6279, 47.6603, &rC07._.C.h6 );
rC08.type = 'C';
make_tfo( 0.0797, -0.6026, -0.7941,
0.7939, 0.5201, -0.3150,
0.6028, -0.6054, 0.5198,
-36.8341, 41.5293, 1.6628, &rC08.dgf_base_tfo );
make_tfo( 0.9187, 0.2887, 0.2694,
0.0302, -0.7316, 0.6811,
0.3938, -0.6176, -0.6808,
-48.4330, 26.3254, 13.6383, &rC08.p_o3_275_tfo );
make_tfo( -0.1504, 0.7744, -0.6145,
0.7581, 0.4893, 0.4311,
0.6345, -0.4010, -0.6607,
-31.9784, -13.4285, 44.9650, &rC08.p_o3_180_tfo );
make_tfo( -0.6236, -0.7810, -0.0337,
-0.6890, 0.5694, -0.4484,
0.3694, -0.2564, -0.8932,
12.1105, 30.8774, 46.0946, &rC08.p_o3_60_tfo );
make_pt( 33.3400, 11.0980, 46.1750, &rC08.p );
make_pt( 34.5130, 10.2320, 46.4660, &rC08.o1p );
make_pt( 33.4130, 12.3960, 46.9340, &rC08.o2p );
make_pt( 31.9810, 10.3390, 46.4820, &rC08.o5_ );
make_pt( 31.8779, 9.9369, 47.8760, &rC08.c5_ );
make_pt( 31.3239, 10.6931, 48.4322, &rC08.h5_ );
make_pt( 32.8647, 9.6624, 48.2489, &rC08.h5__ );
make_pt( 31.0429, 8.6773, 47.9401, &rC08.c4_ );
make_pt( 31.0779, 8.2331, 48.9349, &rC08.h4_ );
make_pt( 29.6956, 8.9669, 47.5983, &rC08.o4_ );
make_pt( 29.2784, 8.1700, 46.4782, &rC08.c1_ );
make_pt( 28.8006, 7.2731, 46.8722, &rC08.h1_ );
make_pt( 30.5544, 7.7940, 45.7875, &rC08.c2_ );
make_pt( 30.8837, 8.6410, 45.1856, &rC08.h2__ );
make_pt( 30.5100, 6.6007, 45.0582, &rC08.o2_ );
make_pt( 29.6694, 6.4168, 44.6326, &rC08.h2_ );
make_pt( 31.5146, 7.5954, 46.9527, &rC08.c3_ );
make_pt( 32.5255, 7.8261, 46.6166, &rC08.h3_ );
make_pt( 31.3876, 6.2951, 47.5516, &rC08.o3_ );
make_pt( 28.3976, 8.9302, 45.5933, &rC08.n1 );
make_pt( 26.2155, 9.6135, 44.9910, &rC08.n3 );
make_pt( 27.0281, 8.8961, 45.8192, &rC08.c2 );
make_pt( 26.7044, 10.3489, 43.9595, &rC08.c4 );
make_pt( 28.1088, 10.3837, 43.7247, &rC08.c5 );
make_pt( 28.8978, 9.6708, 44.5535, &rC08.c6 );
make_pt( 25.8715, 11.0249, 43.1749, &rC08._.C.n4 );
make_pt( 26.5733, 8.2371, 46.7484, &rC08._.C.o2 );
make_pt( 26.2707, 11.5609, 42.4177, &rC08._.C.h41 );
make_pt( 24.8760, 10.9939, 43.3427, &rC08._.C.h42 );
make_pt( 28.5089, 10.9722, 42.8990, &rC08._.C.h5 );
make_pt( 29.9782, 9.6687, 44.4097, &rC08._.C.h6 );
rC09.type = 'C';
make_tfo( 0.8727, 0.4760, -0.1091,
-0.4188, 0.6148, -0.6682,
-0.2510, 0.6289, 0.7359,
-8.1687, -52.0761, -25.0726, &rC09.dgf_base_tfo );
make_tfo( 0.9187, 0.2887, 0.2694,
0.0302, -0.7316, 0.6811,
0.3938, -0.6176, -0.6808,
-48.4330, 26.3254, 13.6383, &rC09.p_o3_275_tfo );
make_tfo( -0.1504, 0.7744, -0.6145,
0.7581, 0.4893, 0.4311,
0.6345, -0.4010, -0.6607,
-31.9784, -13.4285, 44.9650, &rC09.p_o3_180_tfo );
make_tfo( -0.6236, -0.7810, -0.0337,
-0.6890, 0.5694, -0.4484,
0.3694, -0.2564, -0.8932,
12.1105, 30.8774, 46.0946, &rC09.p_o3_60_tfo );
make_pt( 33.3400, 11.0980, 46.1750, &rC09.p );
make_pt( 34.5130, 10.2320, 46.4660, &rC09.o1p );
make_pt( 33.4130, 12.3960, 46.9340, &rC09.o2p );
make_pt( 31.9810, 10.3390, 46.4820, &rC09.o5_ );
make_pt( 30.8152, 11.1619, 46.2003, &rC09.c5_ );
make_pt( 30.4519, 10.9454, 45.1957, &rC09.h5_ );
make_pt( 31.0379, 12.2016, 46.4400, &rC09.h5__ );
make_pt( 29.7081, 10.7448, 47.1428, &rC09.c4_ );
make_pt( 29.4506, 9.6945, 47.0059, &rC09.h4_ );
make_pt( 30.1045, 10.9634, 48.4885, &rC09.o4_ );
make_pt( 29.1794, 11.8418, 49.1490, &rC09.c1_ );
make_pt( 28.4388, 11.2210, 49.6533, &rC09.h1_ );
make_pt( 28.5211, 12.6008, 48.0367, &rC09.c2_ );
make_pt( 29.1947, 13.3949, 47.7147, &rC09.h2__ );
make_pt( 27.2316, 13.0683, 48.3134, &rC09.o2_ );
make_pt( 27.0851, 13.3391, 49.2227, &rC09.h2_ );
make_pt( 28.4131, 11.5507, 46.9391, &rC09.c3_ );
make_pt( 28.4451, 12.0512, 45.9713, &rC09.h3_ );
make_pt( 27.2707, 10.6955, 47.1097, &rC09.o3_ );
make_pt( 29.8751, 12.7405, 50.0682, &rC09.n1 );
make_pt( 30.7172, 13.1841, 52.2328, &rC09.n3 );
make_pt( 30.0617, 12.3404, 51.3847, &rC09.c2 );
make_pt( 31.1834, 14.3941, 51.8297, &rC09.c4 );
make_pt( 30.9913, 14.8074, 50.4803, &rC09.c5 );
make_pt( 30.3434, 13.9610, 49.6548, &rC09.c6 );
make_pt( 31.8090, 15.1847, 52.6957, &rC09._.C.n4 );
make_pt( 29.6470, 11.2494, 51.7616, &rC09._.C.o2 );
make_pt( 32.1422, 16.0774, 52.3606, &rC09._.C.h41 );
make_pt( 31.9392, 14.8893, 53.6527, &rC09._.C.h42 );
make_pt( 31.3632, 15.7771, 50.1491, &rC09._.C.h5 );
make_pt( 30.1742, 14.2374, 48.6141, &rC09._.C.h6 );
rC10.type = 'C';
make_tfo( 0.1549, 0.8710, -0.4663,
0.6768, -0.4374, -0.5921,
-0.7197, -0.2239, -0.6572,
25.2447, -14.1920, 50.3201, &rC10.dgf_base_tfo );
make_tfo( 0.9187, 0.2887, 0.2694,
0.0302, -0.7316, 0.6811,
0.3938, -0.6176, -0.6808,
-48.4330, 26.3254, 13.6383, &rC10.p_o3_275_tfo );
make_tfo( -0.1504, 0.7744, -0.6145,
0.7581, 0.4893, 0.4311,
0.6345, -0.4010, -0.6607,
-31.9784, -13.4285, 44.9650, &rC10.p_o3_180_tfo );
make_tfo( -0.6236, -0.7810, -0.0337,
-0.6890, 0.5694, -0.4484,
0.3694, -0.2564, -0.8932,
12.1105, 30.8774, 46.0946, &rC10.p_o3_60_tfo );
make_pt( 33.3400, 11.0980, 46.1750, &rC10.p );
make_pt( 34.5130, 10.2320, 46.4660, &rC10.o1p );
make_pt( 33.4130, 12.3960, 46.9340, &rC10.o2p );
make_pt( 31.9810, 10.3390, 46.4820, &rC10.o5_ );
make_pt( 31.8779, 9.9369, 47.8760, &rC10.c5_ );
make_pt( 31.3239, 10.6931, 48.4322, &rC10.h5_ );
make_pt( 32.8647, 9.6624, 48.2489, &rC10.h5__ );
make_pt( 31.0429, 8.6773, 47.9401, &rC10.c4_ );
make_pt( 30.0440, 8.8473, 47.5383, &rC10.h4_ );
make_pt( 31.6749, 7.6351, 47.2119, &rC10.o4_ );
make_pt( 31.9159, 6.5022, 48.0616, &rC10.c1_ );
make_pt( 31.0691, 5.8243, 47.9544, &rC10.h1_ );
make_pt( 31.9300, 7.0685, 49.4493, &rC10.c2_ );
make_pt( 32.9024, 7.5288, 49.6245, &rC10.h2__ );
make_pt( 31.5672, 6.1750, 50.4632, &rC10.o2_ );
make_pt( 31.8416, 5.2663, 50.3200, &rC10.h2_ );
make_pt( 30.8618, 8.1514, 49.3749, &rC10.c3_ );
make_pt( 31.1122, 8.9396, 50.0850, &rC10.h3_ );
make_pt( 29.5351, 7.6245, 49.5409, &rC10.o3_ );
make_pt( 33.1890, 5.8629, 47.7343, &rC10.n1 );
make_pt( 34.4004, 4.2636, 46.4828, &rC10.n3 );
make_pt( 33.2062, 4.8497, 46.7851, &rC10.c2 );
make_pt( 35.5600, 4.6374, 47.0822, &rC10.c4 );
make_pt( 35.5444, 5.6751, 48.0577, &rC10.c5 );
make_pt( 34.3565, 6.2450, 48.3432, &rC10.c6 );
make_pt( 36.6977, 4.0305, 46.7598, &rC10._.C.n4 );
make_pt( 32.1661, 4.5034, 46.2348, &rC10._.C.o2 );
make_pt( 37.5405, 4.3347, 47.2259, &rC10._.C.h41 );
make_pt( 36.7033, 3.2923, 46.0706, &rC10._.C.h42 );
make_pt( 36.4713, 5.9811, 48.5428, &rC10._.C.h5 );
make_pt( 34.2986, 7.0426, 49.0839, &rC10._.C.h6 );
rCs[0] = &rC10;
rCs[1] = &rC09;
rCs[2] = &rC08;
rCs[3] = &rC07;
rCs[4] = &rC06;
rCs[5] = &rC05;
rCs[6] = &rC04;
rCs[7] = &rC03;
rCs[8] = &rC02;
rCs[9] = &rC01;
rCs[10]= 0;
}
void init_G()
{
rG.type = 'G';
make_tfo( -0.0018, -0.8207, 0.5714,
0.2679, -0.5509, -0.7904,
0.9634, 0.1517, 0.2209,
0.0073, 8.4030, 0.6232, &rG.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG.o5_ );
make_pt( 5.4550, 8.2120, -2.8810, &rG.c5_ );
make_pt( 5.4546, 8.8508, -1.9978, &rG.h5_ );
make_pt( 5.7588, 8.6625, -3.8259, &rG.h5__ );
make_pt( 6.4970, 7.1480, -2.5980, &rG.c4_ );
make_pt( 7.4896, 7.5919, -2.5214, &rG.h4_ );
make_pt( 6.1630, 6.4860, -1.3440, &rG.o4_ );
make_pt( 6.5400, 5.1200, -1.4190, &rG.c1_ );
make_pt( 7.2763, 4.9681, -0.6297, &rG.h1_ );
make_pt( 7.1940, 4.8830, -2.7770, &rG.c2_ );
make_pt( 6.8667, 3.9183, -3.1647, &rG.h2__ );
make_pt( 8.5860, 5.0910, -2.6140, &rG.o2_ );
make_pt( 8.9510, 4.7626, -1.7890, &rG.h2_ );
make_pt( 6.5720, 6.0040, -3.6090, &rG.c3_ );
make_pt( 5.5636, 5.7066, -3.8966, &rG.h3_ );
make_pt( 7.3801, 6.3562, -4.7350, &rG.o3_ );
make_pt( 4.7150, 0.4910, -0.1360, &rG.n1 );
make_pt( 6.3490, 2.1730, -0.6020, &rG.n3 );
make_pt( 5.9530, 0.9650, -0.2670, &rG.c2 );
make_pt( 5.2900, 2.9790, -0.8260, &rG.c4 );
make_pt( 3.9720, 2.6390, -0.7330, &rG.c5 );
make_pt( 3.6770, 1.3160, -0.3660, &rG.c6 );
make_pt( 6.8426, 0.0056, -0.0019, &rG._.G.n2 );
make_pt( 3.1660, 3.7290, -1.0360, &rG._.G.n7 );
make_pt( 5.3170, 4.2990, -1.1930, &rG._.G.n9 );
make_pt( 4.0100, 4.6780, -1.2990, &rG._.G.c8 );
make_pt( 2.4280, 0.8450, -0.2360, &rG._.G.o6 );
make_pt( 4.6151, -0.4677, 0.1305, &rG._.G.h1 );
make_pt( 6.6463, -0.9463, 0.2729, &rG._.G.h21 );
make_pt( 7.8170, 0.2642, -0.0640, &rG._.G.h22 );
make_pt( 3.4421, 5.5744, -1.5482, &rG._.G.h8 );
rG01.type = 'G';
make_tfo( -0.0043, -0.8175, 0.5759,
0.2617, -0.5567, -0.7884,
0.9651, 0.1473, 0.2164,
0.0359, 8.3929, 0.5532, &rG01.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG01.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG01.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG01.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG01.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG01.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG01.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG01.o5_ );
make_pt( 5.4352, 8.2183, -2.7757, &rG01.c5_ );
make_pt( 5.3830, 8.7883, -1.8481, &rG01.h5_ );
make_pt( 5.7729, 8.7436, -3.6691, &rG01.h5__ );
make_pt( 6.4830, 7.1518, -2.5252, &rG01.c4_ );
make_pt( 7.4749, 7.5972, -2.4482, &rG01.h4_ );
make_pt( 6.1626, 6.4620, -1.2827, &rG01.o4_ );
make_pt( 6.5431, 5.0992, -1.3905, &rG01.c1_ );
make_pt( 7.2871, 4.9328, -0.6114, &rG01.h1_ );
make_pt( 7.1852, 4.8935, -2.7592, &rG01.c2_ );
make_pt( 6.8573, 3.9363, -3.1645, &rG01.h2__ );
make_pt( 8.5780, 5.1025, -2.6046, &rG01.o2_ );
make_pt( 8.9516, 4.7577, -1.7902, &rG01.h2_ );
make_pt( 6.5522, 6.0300, -3.5612, &rG01.c3_ );
make_pt( 5.5420, 5.7356, -3.8459, &rG01.h3_ );
make_pt( 7.3487, 6.4089, -4.6867, &rG01.o3_ );
make_pt( 4.7442, 0.4514, -0.1390, &rG01.n1 );
make_pt( 6.3687, 2.1459, -0.5926, &rG01.n3 );
make_pt( 5.9795, 0.9335, -0.2657, &rG01.c2 );
make_pt( 5.3052, 2.9471, -0.8125, &rG01.c4 );
make_pt( 3.9891, 2.5987, -0.7230, &rG01.c5 );
make_pt( 3.7016, 1.2717, -0.3647, &rG01.c6 );
make_pt( 6.8745, -0.0224, -0.0058, &rG01._.G.n2 );
make_pt( 3.1770, 3.6859, -1.0198, &rG01._.G.n7 );
make_pt( 5.3247, 4.2695, -1.1710, &rG01._.G.n9 );
make_pt( 4.0156, 4.6415, -1.2759, &rG01._.G.c8 );
make_pt( 2.4553, 0.7925, -0.2390, &rG01._.G.o6 );
make_pt( 4.6497, -0.5095, 0.1212, &rG01._.G.h1 );
make_pt( 6.6836, -0.9771, 0.2627, &rG01._.G.h21 );
make_pt( 7.8474, 0.2424, -0.0653, &rG01._.G.h22 );
make_pt( 3.4426, 5.5361, -1.5199, &rG01._.G.h8 );
rG02.type = 'G';
make_tfo( 0.5566, 0.0449, 0.8296,
0.5125, 0.7673, -0.3854,
-0.6538, 0.6397, 0.4041,
-9.1161, -3.7679, -2.9968, &rG02.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG02.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG02.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG02.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG02.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG02.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG02.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG02.o5_ );
make_pt( 4.5778, 6.6594, -4.0364, &rG02.c5_ );
make_pt( 4.9220, 7.1963, -4.9204, &rG02.h5_ );
make_pt( 3.7996, 5.9091, -4.1764, &rG02.h5__ );
make_pt( 5.7873, 5.8869, -3.5482, &rG02.c4_ );
make_pt( 6.0405, 5.0875, -4.2446, &rG02.h4_ );
make_pt( 6.9135, 6.8036, -3.4310, &rG02.o4_ );
make_pt( 7.7293, 6.4084, -2.3392, &rG02.c1_ );
make_pt( 8.7078, 6.1815, -2.7624, &rG02.h1_ );
make_pt( 7.1305, 5.1418, -1.7347, &rG02.c2_ );
make_pt( 7.2040, 5.1982, -0.6486, &rG02.h2__ );
make_pt( 7.7417, 4.0392, -2.3813, &rG02.o2_ );
make_pt( 8.6785, 4.1443, -2.5630, &rG02.h2_ );
make_pt( 5.6666, 5.2728, -2.1536, &rG02.c3_ );
make_pt( 5.1747, 5.9805, -1.4863, &rG02.h3_ );
make_pt( 4.9997, 4.0086, -2.1973, &rG02.o3_ );
make_pt( 10.3245, 8.5459, 1.5467, &rG02.n1 );
make_pt( 9.8051, 6.9432, -0.1497, &rG02.n3 );
make_pt( 10.5175, 7.4328, 0.8408, &rG02.c2 );
make_pt( 8.7523, 7.7422, -0.4228, &rG02.c4 );
make_pt( 8.4257, 8.9060, 0.2099, &rG02.c5 );
make_pt( 9.2665, 9.3242, 1.2540, &rG02.c6 );
make_pt( 11.6077, 6.7966, 1.2752, &rG02._.G.n2 );
make_pt( 7.2750, 9.4537, -0.3428, &rG02._.G.n7 );
make_pt( 7.7962, 7.5519, -1.3859, &rG02._.G.n9 );
make_pt( 6.9479, 8.6157, -1.2771, &rG02._.G.c8 );
make_pt( 9.0664, 10.4462, 1.9610, &rG02._.G.o6 );
make_pt( 10.9838, 8.7524, 2.2697, &rG02._.G.h1 );
make_pt( 12.2274, 7.0896, 2.0170, &rG02._.G.h21 );
make_pt( 11.8502, 5.9398, 0.7984, &rG02._.G.h22 );
make_pt( 6.0430, 8.9853, -1.7594, &rG02._.G.h8 );
rG03.type = 'G';
make_tfo( -0.5021, 0.0731, 0.8617,
-0.8112, 0.3054, -0.4986,
-0.2996, -0.9494, -0.0940,
6.4273, -5.1944, -3.7807, &rG03.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG03.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG03.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG03.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG03.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG03.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG03.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG03.o5_ );
make_pt( 4.1214, 6.7116, -1.9049, &rG03.c5_ );
make_pt( 3.3465, 5.9610, -2.0607, &rG03.h5_ );
make_pt( 4.0789, 7.2928, -0.9837, &rG03.h5__ );
make_pt( 5.4170, 5.9293, -1.8186, &rG03.c4_ );
make_pt( 5.4506, 5.3400, -0.9023, &rG03.h4_ );
make_pt( 5.5067, 5.0417, -2.9703, &rG03.o4_ );
make_pt( 6.8650, 4.9152, -3.3612, &rG03.c1_ );
make_pt( 7.1090, 3.8577, -3.2603, &rG03.h1_ );
make_pt( 7.7152, 5.7282, -2.3894, &rG03.c2_ );
make_pt( 8.5029, 6.2356, -2.9463, &rG03.h2__ );
make_pt( 8.1036, 4.8568, -1.3419, &rG03.o2_ );
make_pt( 8.3270, 3.9651, -1.6184, &rG03.h2_ );
make_pt( 6.7003, 6.7565, -1.8911, &rG03.c3_ );
make_pt( 6.5898, 7.5329, -2.6482, &rG03.h3_ );
make_pt( 7.0505, 7.2878, -0.6105, &rG03.o3_ );
make_pt( 9.6740, 4.7656, -7.6614, &rG03.n1 );
make_pt( 9.0739, 4.3013, -5.3941, &rG03.n3 );
make_pt( 9.8416, 4.2192, -6.4581, &rG03.c2 );
make_pt( 7.9885, 5.0632, -5.6446, &rG03.c4 );
make_pt( 7.6822, 5.6856, -6.8194, &rG03.c5 );
make_pt( 8.5831, 5.5215, -7.8840, &rG03.c6 );
make_pt( 10.9733, 3.5117, -6.4286, &rG03._.G.n2 );
make_pt( 6.4857, 6.3816, -6.7035, &rG03._.G.n7 );
make_pt( 6.9740, 5.3703, -4.7760, &rG03._.G.n9 );
make_pt( 6.1133, 6.1613, -5.4808, &rG03._.G.c8 );
make_pt( 8.4084, 6.0747, -9.0933, &rG03._.G.o6 );
make_pt( 10.3759, 4.5855, -8.3504, &rG03._.G.h1 );
make_pt( 11.6254, 3.3761, -7.1879, &rG03._.G.h21 );
make_pt( 11.1917, 3.0460, -5.5593, &rG03._.G.h22 );
make_pt( 5.1705, 6.6830, -5.3167, &rG03._.G.h8 );
rG04.type = 'G';
make_tfo( -0.5426, -0.8175, 0.1929,
0.8304, -0.5567, -0.0237,
0.1267, 0.1473, 0.9809,
-0.5075, 8.3929, 0.2229, &rG04.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG04.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG04.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG04.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG04.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG04.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG04.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG04.o5_ );
make_pt( 5.4352, 8.2183, -2.7757, &rG04.c5_ );
make_pt( 5.3830, 8.7883, -1.8481, &rG04.h5_ );
make_pt( 5.7729, 8.7436, -3.6691, &rG04.h5__ );
make_pt( 6.4830, 7.1518, -2.5252, &rG04.c4_ );
make_pt( 7.4749, 7.5972, -2.4482, &rG04.h4_ );
make_pt( 6.1626, 6.4620, -1.2827, &rG04.o4_ );
make_pt( 6.5431, 5.0992, -1.3905, &rG04.c1_ );
make_pt( 7.2871, 4.9328, -0.6114, &rG04.h1_ );
make_pt( 7.1852, 4.8935, -2.7592, &rG04.c2_ );
make_pt( 6.8573, 3.9363, -3.1645, &rG04.h2__ );
make_pt( 8.5780, 5.1025, -2.6046, &rG04.o2_ );
make_pt( 8.9516, 4.7577, -1.7902, &rG04.h2_ );
make_pt( 6.5522, 6.0300, -3.5612, &rG04.c3_ );
make_pt( 5.5420, 5.7356, -3.8459, &rG04.h3_ );
make_pt( 7.3487, 6.4089, -4.6867, &rG04.o3_ );
make_pt( 3.6343, 2.6680, 2.0783, &rG04.n1 );
make_pt( 5.4505, 3.9805, 1.2446, &rG04.n3 );
make_pt( 4.7540, 3.3816, 2.1851, &rG04.c2 );
make_pt( 4.8805, 3.7951, 0.0354, &rG04.c4 );
make_pt( 3.7416, 3.0925, -0.2305, &rG04.c5 );
make_pt( 3.0873, 2.4980, 0.8606, &rG04.c6 );
make_pt( 5.1433, 3.4373, 3.4609, &rG04._.G.n2 );
make_pt( 3.4605, 3.1184, -1.5906, &rG04._.G.n7 );
make_pt( 5.3247, 4.2695, -1.1710, &rG04._.G.n9 );
make_pt( 4.4244, 3.8244, -2.0953, &rG04._.G.c8 );
make_pt( 1.9600, 1.7805, 0.7462, &rG04._.G.o6 );
make_pt( 3.2489, 2.2879, 2.9191, &rG04._.G.h1 );
make_pt( 4.6785, 3.0243, 4.2568, &rG04._.G.h21 );
make_pt( 5.9823, 3.9654, 3.6539, &rG04._.G.h22 );
make_pt( 4.2675, 3.8876, -3.1721, &rG04._.G.h8 );
rG05.type = 'G';
make_tfo( -0.5891, 0.0449, 0.8068,
0.5375, 0.7673, 0.3498,
-0.6034, 0.6397, -0.4762,
-0.3019, -3.7679, -9.5913, &rG05.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG05.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG05.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG05.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG05.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG05.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG05.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG05.o5_ );
make_pt( 4.5778, 6.6594, -4.0364, &rG05.c5_ );
make_pt( 4.9220, 7.1963, -4.9204, &rG05.h5_ );
make_pt( 3.7996, 5.9091, -4.1764, &rG05.h5__ );
make_pt( 5.7873, 5.8869, -3.5482, &rG05.c4_ );
make_pt( 6.0405, 5.0875, -4.2446, &rG05.h4_ );
make_pt( 6.9135, 6.8036, -3.4310, &rG05.o4_ );
make_pt( 7.7293, 6.4084, -2.3392, &rG05.c1_ );
make_pt( 8.7078, 6.1815, -2.7624, &rG05.h1_ );
make_pt( 7.1305, 5.1418, -1.7347, &rG05.c2_ );
make_pt( 7.2040, 5.1982, -0.6486, &rG05.h2__ );
make_pt( 7.7417, 4.0392, -2.3813, &rG05.o2_ );
make_pt( 8.6785, 4.1443, -2.5630, &rG05.h2_ );
make_pt( 5.6666, 5.2728, -2.1536, &rG05.c3_ );
make_pt( 5.1747, 5.9805, -1.4863, &rG05.h3_ );
make_pt( 4.9997, 4.0086, -2.1973, &rG05.o3_ );
make_pt( 10.2594, 10.6774, -1.0056, &rG05.n1 );
make_pt( 9.7528, 8.7080, -2.2631, &rG05.n3 );
make_pt( 10.4471, 9.7876, -1.9791, &rG05.c2 );
make_pt( 8.7271, 8.5575, -1.3991, &rG05.c4 );
make_pt( 8.4100, 9.3803, -0.3580, &rG05.c5 );
make_pt( 9.2294, 10.5030, -0.1574, &rG05.c6 );
make_pt( 11.5110, 10.1256, -2.7114, &rG05._.G.n2 );
make_pt( 7.2891, 8.9068, 0.3121, &rG05._.G.n7 );
make_pt( 7.7962, 7.5519, -1.3859, &rG05._.G.n9 );
make_pt( 6.9702, 7.8292, -0.3353, &rG05._.G.c8 );
make_pt( 9.0349, 11.3951, 0.8250, &rG05._.G.o6 );
make_pt( 10.9013, 11.4422, -0.9512, &rG05._.G.h1 );
make_pt( 12.1031, 10.9341, -2.5861, &rG05._.G.h21 );
make_pt( 11.7369, 9.5180, -3.4859, &rG05._.G.h22 );
make_pt( 6.0888, 7.3990, 0.1403, &rG05._.G.h8 );
rG06.type = 'G';
make_tfo( -0.9815, 0.0731, -0.1772,
0.1912, 0.3054, -0.9328,
-0.0141, -0.9494, -0.3137,
5.7506, -5.1944, 4.7470, &rG06.dgf_base_tfo );
make_tfo( -0.8143, -0.5091, -0.2788,
-0.0433, -0.4257, 0.9038,
-0.5788, 0.7480, 0.3246,
1.5227, 6.9114, -7.0765, &rG06.p_o3_275_tfo );
make_tfo( 0.3822, -0.7477, 0.5430,
0.4552, 0.6637, 0.5935,
-0.8042, 0.0203, 0.5941,
-6.9472, -4.1186, -5.9108, &rG06.p_o3_180_tfo );
make_tfo( 0.5640, 0.8007, -0.2022,
-0.8247, 0.5587, -0.0878,
0.0426, 0.2162, 0.9754,
6.2694, -7.0540, 3.3316, &rG06.p_o3_60_tfo );
make_pt( 2.8930, 8.5380, -3.3280, &rG06.p );
make_pt( 1.6980, 7.6960, -3.5570, &rG06.o1p );
make_pt( 3.2260, 9.5010, -4.4020, &rG06.o2p );
make_pt( 4.1590, 7.6040, -3.0340, &rG06.o5_ );
make_pt( 4.1214, 6.7116, -1.9049, &rG06.c5_ );
make_pt( 3.3465, 5.9610, -2.0607, &rG06.h5_ );
make_pt( 4.0789, 7.2928, -0.9837, &rG06.h5__ );
make_pt( 5.4170, 5.9293, -1.8186, &rG06.c4_ );
make_pt( 5.4506, 5.3400, -0.9023, &rG06.h4_ );
make_pt( 5.5067, 5.0417, -2.9703, &rG06.o4_ );
make_pt( 6.8650, 4.9152, -3.3612, &rG06.c1_ );
make_pt( 7.1090, 3.8577, -3.2603, &rG06.h1_ );
make_pt( 7.7152, 5.7282, -2.3894, &rG06.c2_ );
make_pt( 8.5029, 6.2356, -2.9463, &rG06.h2__ );
make_pt( 8.1036, 4.8568, -1.3419, &rG06.o2_ );
make_pt( 8.3270, 3.9651, -1.6184, &rG06.h2_ );
make_pt( 6.7003, 6.7565, -1.8911, &rG06.c3_ );
make_pt( 6.5898, 7.5329, -2.6482, &rG06.h3_ );
make_pt( 7.0505, 7.2878, -0.6105, &rG06.o3_ );
make_pt( 6.6624, 3.5061, -8.2986, &rG06.n1 );
make_pt( 6.5810, 3.2570, -5.9221, &rG06.n3 );
make_pt( 6.5151, 2.8263, -7.1625, &rG06.c2 );
make_pt( 6.8364, 4.5817, -5.8882, &rG06.c4 );
make_pt( 7.0116, 5.4064, -6.9609, &rG06.c5 );
make_pt( 6.9173, 4.8260, -8.2361, &rG06.c6 );
make_pt( 6.2717, 1.5402, -7.4250, &rG06._.G.n2 );
make_pt( 7.2573, 6.7070, -6.5394, &rG06._.G.n7 );
make_pt( 6.9740, 5.3703, -4.7760, &rG06._.G.n9 );
make_pt( 7.2238, 6.6275, -5.2453, &rG06._.G.c8 );
make_pt( 7.0668, 5.5163, -9.3763, &rG06._.G.o6 );
make_pt( 6.5754, 2.9964, -9.1545, &rG06._.G.h1 );
make_pt( 6.1908, 1.1105, -8.3354, &rG06._.G.h21 );
make_pt( 6.1346, 0.9352, -6.6280, &rG06._.G.h22 );
make_pt( 7.4108, 7.6227, -4.8418, &rG06._.G.h8 );
rG07.type = 'G';
make_tfo( 0.0894, -0.6059, 0.7905,
-0.6810, 0.5420, 0.4924,
-0.7268, -0.5824, -0.3642,
34.1424, 45.9610, -11.8600, &rG07.dgf_base_tfo );
make_tfo( -0.8644, -0.4956, -0.0851,
-0.0427, 0.2409, -0.9696,
0.5010, -0.8345, -0.2294,
4.0167, 54.5377, 12.4779, &rG07.p_o3_275_tfo );
make_tfo( 0.3706, -0.6167, 0.6945,
-0.2867, -0.7872, -0.5460,
0.8834, 0.0032, -0.4686,
-52.9020, 18.6313, -0.6709, &rG07.p_o3_180_tfo );
make_tfo( 0.4155, 0.9025, -0.1137,
0.9040, -0.4236, -0.0582,
-0.1007, -0.0786, -0.9918,
-7.6624, -25.2080, 49.5181, &rG07.p_o3_60_tfo );
make_pt( 31.3810, 0.1400, 47.5810, &rG07.p );
make_pt( 29.9860, 0.6630, 47.6290, &rG07.o1p );
make_pt( 31.7210, -0.6460, 48.8090, &rG07.o2p );
make_pt( 32.4940, 1.2540, 47.2740, &rG07.o5_ );
make_pt( 33.8709, 0.7918, 47.2113, &rG07.c5_ );
make_pt( 34.1386, 0.5870, 46.1747, &rG07.h5_ );
make_pt( 34.0186, -0.0095, 47.9353, &rG07.h5__ );
make_pt( 34.7297, 1.9687, 47.6685, &rG07.c4_ );
make_pt( 35.7723, 1.6845, 47.8113, &rG07.h4_ );
make_pt( 34.6455, 2.9768, 46.6660, &rG07.o4_ );
make_pt( 34.1690, 4.1829, 47.2627, &rG07.c1_ );
make_pt( 35.0437, 4.7633, 47.5560, &rG07.h1_ );
make_pt( 33.4145, 3.7532, 48.4954, &rG07.c2_ );
make_pt( 32.4340, 3.3797, 48.2001, &rG07.h2__ );
make_pt( 33.3209, 4.6953, 49.5217, &rG07.o2_ );
make_pt( 33.2374, 5.6059, 49.2295, &rG07.h2_ );
make_pt( 34.2724, 2.5970, 48.9773, &rG07.c3_ );
make_pt( 33.6373, 1.8935, 49.5157, &rG07.h3_ );
make_pt( 35.3453, 3.1884, 49.7285, &rG07.o3_ );
make_pt( 34.0511, 7.8930, 43.7791, &rG07.n1 );
make_pt( 34.9937, 6.3369, 45.3199, &rG07.n3 );
make_pt( 35.0882, 7.3126, 44.4200, &rG07.c2 );
make_pt( 33.7190, 5.9650, 45.5374, &rG07.c4 );
make_pt( 32.5845, 6.4770, 44.9458, &rG07.c5 );
make_pt( 32.7430, 7.5179, 43.9914, &rG07.c6 );
make_pt( 36.3030, 7.7827, 44.1036, &rG07._.G.n2 );
make_pt( 31.4499, 5.8335, 45.4368, &rG07._.G.n7 );
make_pt( 33.2760, 4.9817, 46.4043, &rG07._.G.n9 );
make_pt( 31.9235, 4.9639, 46.2934, &rG07._.G.c8 );
make_pt( 31.8602, 8.1000, 43.3695, &rG07._.G.o6 );
make_pt( 34.2623, 8.6223, 43.1283, &rG07._.G.h1 );
make_pt( 36.5188, 8.5081, 43.4347, &rG07._.G.h21 );
make_pt( 37.0888, 7.3524, 44.5699, &rG07._.G.h22 );
make_pt( 31.0815, 4.4201, 46.7218, &rG07._.G.h8 );
rG08.type = 'G';
make_tfo( 0.2224, 0.6335, 0.7411,
-0.3644, -0.6510, 0.6659,
0.9043, -0.4181, 0.0861,
-47.6824, -0.5823, -31.7554, &rG08.dgf_base_tfo );
make_tfo( -0.8644, -0.4956, -0.0851,
-0.0427, 0.2409, -0.9696,
0.5010, -0.8345, -0.2294,
4.0167, 54.5377, 12.4779, &rG08.p_o3_275_tfo );
make_tfo( 0.3706, -0.6167, 0.6945,
-0.2867, -0.7872, -0.5460,
0.8834, 0.0032, -0.4686,
-52.9020, 18.6313, -0.6709, &rG08.p_o3_180_tfo );
make_tfo( 0.4155, 0.9025, -0.1137,
0.9040, -0.4236, -0.0582,
-0.1007, -0.0786, -0.9918,
-7.6624, -25.2080, 49.5181, &rG08.p_o3_60_tfo );
make_pt( 31.3810, 0.1400, 47.5810, &rG08.p );
make_pt( 29.9860, 0.6630, 47.6290, &rG08.o1p );
make_pt( 31.7210, -0.6460, 48.8090, &rG08.o2p );
make_pt( 32.4940, 1.2540, 47.2740, &rG08.o5_ );
make_pt( 32.5924, 2.3488, 48.2255, &rG08.c5_ );
make_pt( 33.3674, 2.1246, 48.9584, &rG08.h5_ );
make_pt( 31.5994, 2.5917, 48.6037, &rG08.h5__ );
make_pt( 33.0722, 3.5577, 47.4258, &rG08.c4_ );
make_pt( 33.0310, 4.4778, 48.0089, &rG08.h4_ );
make_pt( 34.4173, 3.3055, 47.0316, &rG08.o4_ );
make_pt( 34.5056, 3.3910, 45.6094, &rG08.c1_ );
make_pt( 34.7881, 4.4152, 45.3663, &rG08.h1_ );
make_pt( 33.1122, 3.1198, 45.1010, &rG08.c2_ );
make_pt( 32.9230, 2.0469, 45.1369, &rG08.h2__ );
make_pt( 32.7946, 3.6590, 43.8529, &rG08.o2_ );
make_pt( 33.5170, 3.6707, 43.2207, &rG08.h2_ );
make_pt( 32.2730, 3.8173, 46.1566, &rG08.c3_ );
make_pt( 31.3094, 3.3123, 46.2244, &rG08.h3_ );
make_pt( 32.2391, 5.2039, 45.7807, &rG08.o3_ );
make_pt( 39.3337, 2.7157, 44.1441, &rG08.n1 );
make_pt( 37.4430, 3.8242, 45.0824, &rG08.n3 );
make_pt( 38.7276, 3.7646, 44.7403, &rG08.c2 );
make_pt( 36.7791, 2.6963, 44.7704, &rG08.c4 );
make_pt( 37.2860, 1.5653, 44.1678, &rG08.c5 );
make_pt( 38.6647, 1.5552, 43.8235, &rG08.c6 );
make_pt( 39.5123, 4.8216, 44.9936, &rG08._.G.n2 );
make_pt( 36.2829, 0.6110, 44.0078, &rG08._.G.n7 );
make_pt( 35.4394, 2.4314, 44.9931, &rG08._.G.n9 );
make_pt( 35.2180, 1.1815, 44.5128, &rG08._.G.c8 );
make_pt( 39.2907, 0.6514, 43.2796, &rG08._.G.o6 );
make_pt( 40.3076, 2.8048, 43.9352, &rG08._.G.h1 );
make_pt( 40.4994, 4.9066, 44.7977, &rG08._.G.h21 );
make_pt( 39.0738, 5.6108, 45.4464, &rG08._.G.h22 );
make_pt( 34.3856, 0.4842, 44.4185, &rG08._.G.h8 );
rG09.type = 'G';
make_tfo( -0.9699, -0.1688, -0.1753,
-0.1050, -0.3598, 0.9271,
-0.2196, 0.9176, 0.3312,
45.6217, -38.9484, -12.3208, &rG09.dgf_base_tfo );
make_tfo( -0.8644, -0.4956, -0.0851,
-0.0427, 0.2409, -0.9696,
0.5010, -0.8345, -0.2294,
4.0167, 54.5377, 12.4779, &rG09.p_o3_275_tfo );
make_tfo( 0.3706, -0.6167, 0.6945,
-0.2867, -0.7872, -0.5460,
0.8834, 0.0032, -0.4686,
-52.9020, 18.6313, -0.6709, &rG09.p_o3_180_tfo );
make_tfo( 0.4155, 0.9025, -0.1137,
0.9040, -0.4236, -0.0582,
-0.1007, -0.0786, -0.9918,
-7.6624, -25.2080, 49.5181, &rG09.p_o3_60_tfo );
make_pt( 31.3810, 0.1400, 47.5810, &rG09.p );
make_pt( 29.9860, 0.6630, 47.6290, &rG09.o1p );
make_pt( 31.7210, -0.6460, 48.8090, &rG09.o2p );
make_pt( 32.4940, 1.2540, 47.2740, &rG09.o5_ );
make_pt( 33.8709, 0.7918, 47.2113, &rG09.c5_ );
make_pt( 34.1386, 0.5870, 46.1747, &rG09.h5_ );
make_pt( 34.0186, -0.0095, 47.9353, &rG09.h5__ );
make_pt( 34.7297, 1.9687, 47.6685, &rG09.c4_ );
make_pt( 34.5880, 2.8482, 47.0404, &rG09.h4_ );
make_pt( 34.3575, 2.2770, 49.0081, &rG09.o4_ );
make_pt( 35.5157, 2.1993, 49.8389, &rG09.c1_ );
make_pt( 35.9424, 3.2010, 49.8893, &rG09.h1_ );
make_pt( 36.4701, 1.2820, 49.1169, &rG09.c2_ );
make_pt( 36.1545, 0.2498, 49.2683, &rG09.h2__ );
make_pt( 37.8262, 1.4547, 49.4008, &rG09.o2_ );
make_pt( 38.0227, 1.6945, 50.3094, &rG09.h2_ );
make_pt( 36.2242, 1.6797, 47.6725, &rG09.c3_ );
make_pt( 36.4297, 0.8197, 47.0351, &rG09.h3_ );
make_pt( 37.0289, 2.8480, 47.4426, &rG09.o3_ );
make_pt( 34.3005, 3.5042, 54.6070, &rG09.n1 );
make_pt( 34.7693, 3.7936, 52.2874, &rG09.n3 );
make_pt( 34.4484, 4.2541, 53.4939, &rG09.c2 );
make_pt( 34.9354, 2.4584, 52.2785, &rG09.c4 );
make_pt( 34.8092, 1.5915, 53.3422, &rG09.c5 );
make_pt( 34.4646, 2.1367, 54.6085, &rG09.c6 );
make_pt( 34.2514, 5.5708, 53.6503, &rG09._.G.n2 );
make_pt( 35.0641, 0.2835, 52.9337, &rG09._.G.n7 );
make_pt( 35.2669, 1.6690, 51.1915, &rG09._.G.n9 );
make_pt( 35.3288, 0.3954, 51.6563, &rG09._.G.c8 );
make_pt( 34.3151, 1.5317, 55.6650, &rG09._.G.o6 );
make_pt( 34.0623, 3.9797, 55.4539, &rG09._.G.h1 );
make_pt( 33.9950, 6.0502, 54.5016, &rG09._.G.h21 );
make_pt( 34.3512, 6.1432, 52.8242, &rG09._.G.h22 );
make_pt( 35.5414, -0.6006, 51.2679, &rG09._.G.h8 );
rG10.type = 'G';
make_tfo( -0.0980, -0.9723, 0.2122,
-0.9731, 0.1383, 0.1841,
-0.2083, -0.1885, -0.9597,
17.8469, 38.8265, 37.0475, &rG10.dgf_base_tfo );
make_tfo( -0.8644, -0.4956, -0.0851,
-0.0427, 0.2409, -0.9696,
0.5010, -0.8345, -0.2294,
4.0167, 54.5377, 12.4779, &rG10.p_o3_275_tfo );
make_tfo( 0.3706, -0.6167, 0.6945,
-0.2867, -0.7872, -0.5460,
0.8834, 0.0032, -0.4686,
-52.9020, 18.6313, -0.6709, &rG10.p_o3_180_tfo );
make_tfo( 0.4155, 0.9025, -0.1137,
0.9040, -0.4236, -0.0582,
-0.1007, -0.0786, -0.9918,
-7.6624, -25.2080, 49.5181, &rG10.p_o3_60_tfo );
make_pt( 31.3810, 0.1400, 47.5810, &rG10.p );
make_pt( 29.9860, 0.6630, 47.6290, &rG10.o1p );
make_pt( 31.7210, -0.6460, 48.8090, &rG10.o2p );
make_pt( 32.4940, 1.2540, 47.2740, &rG10.o5_ );
make_pt( 32.5924, 2.3488, 48.2255, &rG10.c5_ );
make_pt( 33.3674, 2.1246, 48.9584, &rG10.h5_ );
make_pt( 31.5994, 2.5917, 48.6037, &rG10.h5__ );
make_pt( 33.0722, 3.5577, 47.4258, &rG10.c4_ );
make_pt( 34.0333, 3.3761, 46.9447, &rG10.h4_ );
make_pt( 32.0890, 3.8338, 46.4332, &rG10.o4_ );
make_pt( 31.6377, 5.1787, 46.5914, &rG10.c1_ );
make_pt( 32.2499, 5.8016, 45.9392, &rG10.h1_ );
make_pt( 31.9167, 5.5319, 48.0305, &rG10.c2_ );
make_pt( 31.1507, 5.0820, 48.6621, &rG10.h2__ );
make_pt( 32.0865, 6.8890, 48.3114, &rG10.o2_ );
make_pt( 31.5363, 7.4819, 47.7942, &rG10.h2_ );
make_pt( 33.2398, 4.8224, 48.2563, &rG10.c3_ );
make_pt( 33.3166, 4.5570, 49.3108, &rG10.h3_ );
make_pt( 34.2528, 5.7056, 47.7476, &rG10.o3_ );
make_pt( 28.2782, 6.3049, 42.9364, &rG10.n1 );
make_pt( 30.4001, 5.8547, 43.9258, &rG10.n3 );
make_pt( 29.6195, 6.1568, 42.8913, &rG10.c2 );
make_pt( 29.7005, 5.7006, 45.0649, &rG10.c4 );
make_pt( 28.3383, 5.8221, 45.2343, &rG10.c5 );
make_pt( 27.5519, 6.1461, 44.0958, &rG10.c6 );
make_pt( 30.1838, 6.3385, 41.6890, &rG10._.G.n2 );
make_pt( 27.9936, 5.5926, 46.5651, &rG10._.G.n7 );
make_pt( 30.2046, 5.3825, 46.3136, &rG10._.G.n9 );
make_pt( 29.1371, 5.3398, 47.1506, &rG10._.G.c8 );
make_pt( 26.3361, 6.3024, 44.0495, &rG10._.G.o6 );
make_pt( 27.8122, 6.5394, 42.0833, &rG10._.G.h1 );
make_pt( 29.7125, 6.5595, 40.8235, &rG10._.G.h21 );
make_pt( 31.1859, 6.2231, 41.6389, &rG10._.G.h22 );
make_pt( 28.9406, 5.1504, 48.2059, &rG10._.G.h8 );
rGs[0] = &rG10;
rGs[1] = &rG09;
rGs[2] = &rG08;
rGs[3] = &rG07;
rGs[4] = &rG06;
rGs[5] = &rG05;
rGs[6] = &rG04;
rGs[7] = &rG03;
rGs[8] = &rG02;
rGs[9] = &rG01;
rGs[10]= 0;
}
void init_U()
{
rU.type = 'U';
make_tfo( -0.0359, -0.8071, 0.5894,
-0.2669, 0.5761, 0.7726,
-0.9631, -0.1296, -0.2361,
0.1584, 8.3434, 0.5434, &rU.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU.o5_ );
make_pt( 5.2430, -8.2420, 2.8260, &rU.c5_ );
make_pt( 5.1974, -8.8497, 1.9223, &rU.h5_ );
make_pt( 5.5548, -8.7348, 3.7469, &rU.h5__ );
make_pt( 6.3140, -7.2060, 2.5510, &rU.c4_ );
make_pt( 7.2954, -7.6762, 2.4898, &rU.h4_ );
make_pt( 6.0140, -6.5420, 1.2890, &rU.o4_ );
make_pt( 6.4190, -5.1840, 1.3620, &rU.c1_ );
make_pt( 7.1608, -5.0495, 0.5747, &rU.h1_ );
make_pt( 7.0760, -4.9560, 2.7270, &rU.c2_ );
make_pt( 6.7770, -3.9803, 3.1099, &rU.h2__ );
make_pt( 8.4500, -5.1930, 2.5810, &rU.o2_ );
make_pt( 8.8309, -4.8755, 1.7590, &rU.h2_ );
make_pt( 6.4060, -6.0590, 3.5580, &rU.c3_ );
make_pt( 5.4021, -5.7313, 3.8281, &rU.h3_ );
make_pt( 7.1570, -6.4240, 4.7070, &rU.o3_ );
make_pt( 5.2170, -4.3260, 1.1690, &rU.n1 );
make_pt( 4.2960, -2.2560, 0.6290, &rU.n3 );
make_pt( 5.4330, -3.0200, 0.7990, &rU.c2 );
make_pt( 2.9930, -2.6780, 0.7940, &rU.c4 );
make_pt( 2.8670, -4.0630, 1.1830, &rU.c5 );
make_pt( 3.9570, -4.8300, 1.3550, &rU.c6 );
make_pt( 6.5470, -2.5560, 0.6290, &rU._.U.o2 );
make_pt( 2.0540, -1.9000, 0.6130, &rU._.U.o4 );
make_pt( 4.4300, -1.3020, 0.3600, &rU._.U.h3 );
make_pt( 1.9590, -4.4570, 1.3250, &rU._.U.h5 );
make_pt( 3.8460, -5.7860, 1.6240, &rU._.U.h6 );
rU01.type = 'U';
make_tfo( -0.0137, -0.8012, 0.5983,
-0.2523, 0.5817, 0.7733,
-0.9675, -0.1404, -0.2101,
0.2031, 8.3874, 0.4228, &rU01.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU01.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU01.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU01.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU01.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU01.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU01.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU01.o5_ );
make_pt( 5.2416, -8.2422, 2.8181, &rU01.c5_ );
make_pt( 5.2050, -8.8128, 1.8901, &rU01.h5_ );
make_pt( 5.5368, -8.7738, 3.7227, &rU01.h5__ );
make_pt( 6.3232, -7.2037, 2.6002, &rU01.c4_ );
make_pt( 7.3048, -7.6757, 2.5577, &rU01.h4_ );
make_pt( 6.0635, -6.5092, 1.3456, &rU01.o4_ );
make_pt( 6.4697, -5.1547, 1.4629, &rU01.c1_ );
make_pt( 7.2354, -5.0043, 0.7018, &rU01.h1_ );
make_pt( 7.0856, -4.9610, 2.8521, &rU01.c2_ );
make_pt( 6.7777, -3.9935, 3.2487, &rU01.h2__ );
make_pt( 8.4627, -5.1992, 2.7423, &rU01.o2_ );
make_pt( 8.8693, -4.8638, 1.9399, &rU01.h2_ );
make_pt( 6.3877, -6.0809, 3.6362, &rU01.c3_ );
make_pt( 5.3770, -5.7562, 3.8834, &rU01.h3_ );
make_pt( 7.1024, -6.4754, 4.7985, &rU01.o3_ );
make_pt( 5.2764, -4.2883, 1.2538, &rU01.n1 );
make_pt( 4.3777, -2.2062, 0.7229, &rU01.n3 );
make_pt( 5.5069, -2.9779, 0.9088, &rU01.c2 );
make_pt( 3.0693, -2.6246, 0.8500, &rU01.c4 );
make_pt( 2.9279, -4.0146, 1.2149, &rU01.c5 );
make_pt( 4.0101, -4.7892, 1.4017, &rU01.c6 );
make_pt( 6.6267, -2.5166, 0.7728, &rU01._.U.o2 );
make_pt( 2.1383, -1.8396, 0.6581, &rU01._.U.o4 );
make_pt( 4.5223, -1.2489, 0.4716, &rU01._.U.h3 );
make_pt( 2.0151, -4.4065, 1.3290, &rU01._.U.h5 );
make_pt( 3.8886, -5.7486, 1.6535, &rU01._.U.h6 );
rU02.type = 'U';
make_tfo( 0.5141, 0.0246, 0.8574,
-0.5547, -0.7529, 0.3542,
0.6542, -0.6577, -0.3734,
-9.1111, -3.4598, -3.2939, &rU02.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU02.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU02.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU02.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU02.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU02.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU02.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU02.o5_ );
make_pt( 4.3825, -6.6585, 4.0489, &rU02.c5_ );
make_pt( 4.6841, -7.2019, 4.9443, &rU02.h5_ );
make_pt( 3.6189, -5.8889, 4.1625, &rU02.h5__ );
make_pt( 5.6255, -5.9175, 3.5998, &rU02.c4_ );
make_pt( 5.8732, -5.1228, 4.3034, &rU02.h4_ );
make_pt( 6.7337, -6.8605, 3.5222, &rU02.o4_ );
make_pt( 7.5932, -6.4923, 2.4548, &rU02.c1_ );
make_pt( 8.5661, -6.2983, 2.9064, &rU02.h1_ );
make_pt( 7.0527, -5.2012, 1.8322, &rU02.c2_ );
make_pt( 7.1627, -5.2525, 0.7490, &rU02.h2__ );
make_pt( 7.6666, -4.1249, 2.4880, &rU02.o2_ );
make_pt( 8.5944, -4.2543, 2.6981, &rU02.h2_ );
make_pt( 5.5661, -5.3029, 2.2009, &rU02.c3_ );
make_pt( 5.0841, -6.0018, 1.5172, &rU02.h3_ );
make_pt( 4.9062, -4.0452, 2.2042, &rU02.o3_ );
make_pt( 7.6298, -7.6136, 1.4752, &rU02.n1 );
make_pt( 8.6945, -8.7046, -0.2857, &rU02.n3 );
make_pt( 8.6943, -7.6514, 0.6066, &rU02.c2 );
make_pt( 7.7426, -9.6987, -0.3801, &rU02.c4 );
make_pt( 6.6642, -9.5742, 0.5722, &rU02.c5 );
make_pt( 6.6391, -8.5592, 1.4526, &rU02.c6 );
make_pt( 9.5840, -6.8186, 0.6136, &rU02._.U.o2 );
make_pt( 7.8505, -10.5925, -1.2223, &rU02._.U.o4 );
make_pt( 9.4601, -8.7514, -0.9277, &rU02._.U.h3 );
make_pt( 5.9281, -10.2509, 0.5782, &rU02._.U.h5 );
make_pt( 5.8831, -8.4931, 2.1028, &rU02._.U.h6 );
rU03.type = 'U';
make_tfo( -0.4993, 0.0476, 0.8651,
0.8078, -0.3353, 0.4847,
0.3132, 0.9409, 0.1290,
6.2989, -5.2303, -3.8577, &rU03.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU03.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU03.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU03.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU03.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU03.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU03.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU03.o5_ );
make_pt( 3.9938, -6.7042, 1.9023, &rU03.c5_ );
make_pt( 3.2332, -5.9343, 2.0319, &rU03.h5_ );
make_pt( 3.9666, -7.2863, 0.9812, &rU03.h5__ );
make_pt( 5.3098, -5.9546, 1.8564, &rU03.c4_ );
make_pt( 5.3863, -5.3702, 0.9395, &rU03.h4_ );
make_pt( 5.3851, -5.0642, 3.0076, &rU03.o4_ );
make_pt( 6.7315, -4.9724, 3.4462, &rU03.c1_ );
make_pt( 7.0033, -3.9202, 3.3619, &rU03.h1_ );
make_pt( 7.5997, -5.8018, 2.4948, &rU03.c2_ );
make_pt( 8.3627, -6.3254, 3.0707, &rU03.h2__ );
make_pt( 8.0410, -4.9501, 1.4724, &rU03.o2_ );
make_pt( 8.2781, -4.0644, 1.7570, &rU03.h2_ );
make_pt( 6.5701, -6.8129, 1.9714, &rU03.c3_ );
make_pt( 6.4186, -7.5809, 2.7299, &rU03.h3_ );
make_pt( 6.9357, -7.3841, 0.7235, &rU03.o3_ );
make_pt( 6.8024, -5.4718, 4.8475, &rU03.n1 );
make_pt( 7.9218, -5.5700, 6.8877, &rU03.n3 );
make_pt( 7.8908, -5.0886, 5.5944, &rU03.c2 );
make_pt( 6.9789, -6.3827, 7.4823, &rU03.c4 );
make_pt( 5.8742, -6.7319, 6.6202, &rU03.c5 );
make_pt( 5.8182, -6.2769, 5.3570, &rU03.c6 );
make_pt( 8.7747, -4.3728, 5.1568, &rU03._.U.o2 );
make_pt( 7.1154, -6.7509, 8.6509, &rU03._.U.o4 );
make_pt( 8.7055, -5.3037, 7.4491, &rU03._.U.h3 );
make_pt( 5.1416, -7.3178, 6.9665, &rU03._.U.h5 );
make_pt( 5.0441, -6.5310, 4.7784, &rU03._.U.h6 );
rU04.type = 'U';
make_tfo( -0.5669, -0.8012, 0.1918,
-0.8129, 0.5817, 0.0273,
-0.1334, -0.1404, -0.9811,
-0.3279, 8.3874, 0.3355, &rU04.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU04.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU04.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU04.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU04.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU04.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU04.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU04.o5_ );
make_pt( 5.2416, -8.2422, 2.8181, &rU04.c5_ );
make_pt( 5.2050, -8.8128, 1.8901, &rU04.h5_ );
make_pt( 5.5368, -8.7738, 3.7227, &rU04.h5__ );
make_pt( 6.3232, -7.2037, 2.6002, &rU04.c4_ );
make_pt( 7.3048, -7.6757, 2.5577, &rU04.h4_ );
make_pt( 6.0635, -6.5092, 1.3456, &rU04.o4_ );
make_pt( 6.4697, -5.1547, 1.4629, &rU04.c1_ );
make_pt( 7.2354, -5.0043, 0.7018, &rU04.h1_ );
make_pt( 7.0856, -4.9610, 2.8521, &rU04.c2_ );
make_pt( 6.7777, -3.9935, 3.2487, &rU04.h2__ );
make_pt( 8.4627, -5.1992, 2.7423, &rU04.o2_ );
make_pt( 8.8693, -4.8638, 1.9399, &rU04.h2_ );
make_pt( 6.3877, -6.0809, 3.6362, &rU04.c3_ );
make_pt( 5.3770, -5.7562, 3.8834, &rU04.h3_ );
make_pt( 7.1024, -6.4754, 4.7985, &rU04.o3_ );
make_pt( 5.2764, -4.2883, 1.2538, &rU04.n1 );
make_pt( 3.8961, -3.0896, -0.1893, &rU04.n3 );
make_pt( 5.0095, -3.8907, -0.0346, &rU04.c2 );
make_pt( 3.0480, -2.6632, 0.8116, &rU04.c4 );
make_pt( 3.4093, -3.1310, 2.1292, &rU04.c5 );
make_pt( 4.4878, -3.9124, 2.3088, &rU04.c6 );
make_pt( 5.7005, -4.2164, -0.9842, &rU04._.U.o2 );
make_pt( 2.0800, -1.9458, 0.5503, &rU04._.U.o4 );
make_pt( 3.6834, -2.7882, -1.1190, &rU04._.U.h3 );
make_pt( 2.8508, -2.8721, 2.9172, &rU04._.U.h5 );
make_pt( 4.7188, -4.2247, 3.2295, &rU04._.U.h6 );
rU05.type = 'U';
make_tfo( -0.6298, 0.0246, 0.7763,
-0.5226, -0.7529, -0.4001,
0.5746, -0.6577, 0.4870,
-0.0208, -3.4598, -9.6882, &rU05.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU05.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU05.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU05.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU05.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU05.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU05.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU05.o5_ );
make_pt( 4.3825, -6.6585, 4.0489, &rU05.c5_ );
make_pt( 4.6841, -7.2019, 4.9443, &rU05.h5_ );
make_pt( 3.6189, -5.8889, 4.1625, &rU05.h5__ );
make_pt( 5.6255, -5.9175, 3.5998, &rU05.c4_ );
make_pt( 5.8732, -5.1228, 4.3034, &rU05.h4_ );
make_pt( 6.7337, -6.8605, 3.5222, &rU05.o4_ );
make_pt( 7.5932, -6.4923, 2.4548, &rU05.c1_ );
make_pt( 8.5661, -6.2983, 2.9064, &rU05.h1_ );
make_pt( 7.0527, -5.2012, 1.8322, &rU05.c2_ );
make_pt( 7.1627, -5.2525, 0.7490, &rU05.h2__ );
make_pt( 7.6666, -4.1249, 2.4880, &rU05.o2_ );
make_pt( 8.5944, -4.2543, 2.6981, &rU05.h2_ );
make_pt( 5.5661, -5.3029, 2.2009, &rU05.c3_ );
make_pt( 5.0841, -6.0018, 1.5172, &rU05.h3_ );
make_pt( 4.9062, -4.0452, 2.2042, &rU05.o3_ );
make_pt( 7.6298, -7.6136, 1.4752, &rU05.n1 );
make_pt( 8.5977, -9.5977, 0.7329, &rU05.n3 );
make_pt( 8.5951, -8.5745, 1.6594, &rU05.c2 );
make_pt( 7.7372, -9.7371, -0.3364, &rU05.c4 );
make_pt( 6.7596, -8.6801, -0.4476, &rU05.c5 );
make_pt( 6.7338, -7.6721, 0.4408, &rU05.c6 );
make_pt( 9.3993, -8.5377, 2.5743, &rU05._.U.o2 );
make_pt( 7.8374, -10.6990, -1.1008, &rU05._.U.o4 );
make_pt( 9.2924, -10.3081, 0.8477, &rU05._.U.h3 );
make_pt( 6.0932, -8.6982, -1.1929, &rU05._.U.h5 );
make_pt( 6.0481, -6.9515, 0.3446, &rU05._.U.h6 );
rU06.type = 'U';
make_tfo( -0.9837, 0.0476, -0.1733,
-0.1792, -0.3353, 0.9249,
-0.0141, 0.9409, 0.3384,
5.7793, -5.2303, 4.5997, &rU06.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU06.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU06.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU06.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU06.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU06.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU06.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU06.o5_ );
make_pt( 3.9938, -6.7042, 1.9023, &rU06.c5_ );
make_pt( 3.2332, -5.9343, 2.0319, &rU06.h5_ );
make_pt( 3.9666, -7.2863, 0.9812, &rU06.h5__ );
make_pt( 5.3098, -5.9546, 1.8564, &rU06.c4_ );
make_pt( 5.3863, -5.3702, 0.9395, &rU06.h4_ );
make_pt( 5.3851, -5.0642, 3.0076, &rU06.o4_ );
make_pt( 6.7315, -4.9724, 3.4462, &rU06.c1_ );
make_pt( 7.0033, -3.9202, 3.3619, &rU06.h1_ );
make_pt( 7.5997, -5.8018, 2.4948, &rU06.c2_ );
make_pt( 8.3627, -6.3254, 3.0707, &rU06.h2__ );
make_pt( 8.0410, -4.9501, 1.4724, &rU06.o2_ );
make_pt( 8.2781, -4.0644, 1.7570, &rU06.h2_ );
make_pt( 6.5701, -6.8129, 1.9714, &rU06.c3_ );
make_pt( 6.4186, -7.5809, 2.7299, &rU06.h3_ );
make_pt( 6.9357, -7.3841, 0.7235, &rU06.o3_ );
make_pt( 6.8024, -5.4718, 4.8475, &rU06.n1 );
make_pt( 6.6920, -5.0495, 7.1354, &rU06.n3 );
make_pt( 6.6201, -4.5500, 5.8506, &rU06.c2 );
make_pt( 6.9254, -6.3614, 7.4926, &rU06.c4 );
make_pt( 7.1046, -7.2543, 6.3718, &rU06.c5 );
make_pt( 7.0391, -6.7951, 5.1106, &rU06.c6 );
make_pt( 6.4083, -3.3696, 5.6340, &rU06._.U.o2 );
make_pt( 6.9679, -6.6901, 8.6800, &rU06._.U.o4 );
make_pt( 6.5626, -4.3957, 7.8812, &rU06._.U.h3 );
make_pt( 7.2781, -8.2254, 6.5350, &rU06._.U.h5 );
make_pt( 7.1657, -7.4312, 4.3503, &rU06._.U.h6 );
rU07.type = 'U';
make_tfo( -0.9434, 0.3172, 0.0971,
0.2294, 0.4125, 0.8816,
0.2396, 0.8539, -0.4619,
8.3625, -52.7147, 1.3745, &rU07.dgf_base_tfo );
make_tfo( 0.2765, -0.1121, -0.9545,
-0.8297, 0.4733, -0.2959,
0.4850, 0.8737, 0.0379,
-14.7774, -45.2464, 21.9088, &rU07.p_o3_275_tfo );
make_tfo( 0.1063, -0.6334, -0.7665,
-0.5932, -0.6591, 0.4624,
-0.7980, 0.4055, -0.4458,
43.7634, 4.3296, 28.4890, &rU07.p_o3_180_tfo );
make_tfo( 0.7136, -0.5032, -0.4873,
0.6803, 0.3317, 0.6536,
-0.1673, -0.7979, 0.5791,
-17.1858, 41.4390, -27.0751, &rU07.p_o3_60_tfo );
make_pt( 21.3880, 15.0780, 45.5770, &rU07.p );
make_pt( 21.9980, 14.5500, 46.8210, &rU07.o1p );
make_pt( 21.1450, 14.0270, 44.5420, &rU07.o2p );
make_pt( 22.1250, 16.3600, 44.9460, &rU07.o5_ );
make_pt( 21.5037, 16.8594, 43.7323, &rU07.c5_ );
make_pt( 20.8147, 17.6663, 43.9823, &rU07.h5_ );
make_pt( 21.1086, 16.0230, 43.1557, &rU07.h5__ );
make_pt( 22.5654, 17.4874, 42.8616, &rU07.c4_ );
make_pt( 22.1584, 17.7243, 41.8785, &rU07.h4_ );
make_pt( 23.0557, 18.6826, 43.4751, &rU07.o4_ );
make_pt( 24.4788, 18.6151, 43.6455, &rU07.c1_ );
make_pt( 24.9355, 19.0840, 42.7739, &rU07.h1_ );
make_pt( 24.7958, 17.1427, 43.6474, &rU07.c2_ );
make_pt( 24.5652, 16.7400, 44.6336, &rU07.h2__ );
make_pt( 26.1041, 16.8773, 43.2455, &rU07.o2_ );
make_pt( 26.7516, 17.5328, 43.5149, &rU07.h2_ );
make_pt( 23.8109, 16.5979, 42.6377, &rU07.c3_ );
make_pt( 23.5756, 15.5686, 42.9084, &rU07.h3_ );
make_pt( 24.2890, 16.7447, 41.2729, &rU07.o3_ );
make_pt( 24.9420, 19.2174, 44.8923, &rU07.n1 );
make_pt( 25.2655, 20.5636, 44.8883, &rU07.n3 );
make_pt( 25.1663, 21.2219, 43.8561, &rU07.c2 );
make_pt( 25.6911, 21.1219, 46.0494, &rU07.c4 );
make_pt( 25.8051, 20.4068, 47.2048, &rU07.c5 );
make_pt( 26.2093, 20.9962, 48.2534, &rU07.c6 );
make_pt( 25.4692, 19.0221, 47.2053, &rU07._.U.o2 );
make_pt( 25.0502, 18.4827, 46.0370, &rU07._.U.o4 );
make_pt( 25.9599, 22.1772, 46.0966, &rU07._.U.h3 );
make_pt( 25.5545, 18.4409, 48.1234, &rU07._.U.h5 );
make_pt( 24.7854, 17.4265, 45.9883, &rU07._.U.h6 );
rU08.type = 'U';
make_tfo( -0.0080, -0.7928, 0.6094,
-0.7512, 0.4071, 0.5197,
-0.6601, -0.4536, -0.5988,
44.1482, 30.7036, 2.1088, &rU08.dgf_base_tfo );
make_tfo( 0.2765, -0.1121, -0.9545,
-0.8297, 0.4733, -0.2959,
0.4850, 0.8737, 0.0379,
-14.7774, -45.2464, 21.9088, &rU08.p_o3_275_tfo );
make_tfo( 0.1063, -0.6334, -0.7665,
-0.5932, -0.6591, 0.4624,
-0.7980, 0.4055, -0.4458,
43.7634, 4.3296, 28.4890, &rU08.p_o3_180_tfo );
make_tfo( 0.7136, -0.5032, -0.4873,
0.6803, 0.3317, 0.6536,
-0.1673, -0.7979, 0.5791,
-17.1858, 41.4390, -27.0751, &rU08.p_o3_60_tfo );
make_pt( 21.3880, 15.0780, 45.5770, &rU08.p );
make_pt( 21.9980, 14.5500, 46.8210, &rU08.o1p );
make_pt( 21.1450, 14.0270, 44.5420, &rU08.o2p );
make_pt( 22.1250, 16.3600, 44.9460, &rU08.o5_ );
make_pt( 23.5096, 16.1227, 44.5783, &rU08.c5_ );
make_pt( 23.5649, 15.8588, 43.5222, &rU08.h5_ );
make_pt( 23.9621, 15.4341, 45.2919, &rU08.h5__ );
make_pt( 24.2805, 17.4138, 44.7151, &rU08.c4_ );
make_pt( 25.3492, 17.2309, 44.6030, &rU08.h4_ );
make_pt( 23.8497, 18.3471, 43.7208, &rU08.o4_ );
make_pt( 23.4090, 19.5681, 44.3321, &rU08.c1_ );
make_pt( 24.2595, 20.2496, 44.3524, &rU08.h1_ );
make_pt( 23.0418, 19.1813, 45.7407, &rU08.c2_ );
make_pt( 22.0532, 18.7224, 45.7273, &rU08.h2__ );
make_pt( 23.1307, 20.2521, 46.6291, &rU08.o2_ );
make_pt( 22.8888, 21.1051, 46.2611, &rU08.h2_ );
make_pt( 24.0799, 18.1326, 46.0700, &rU08.c3_ );
make_pt( 23.6490, 17.4370, 46.7900, &rU08.h3_ );
make_pt( 25.3329, 18.7227, 46.5109, &rU08.o3_ );
make_pt( 22.2515, 20.1624, 43.6698, &rU08.n1 );
make_pt( 22.4760, 21.0609, 42.6406, &rU08.n3 );
make_pt( 23.6229, 21.3462, 42.3061, &rU08.c2 );
make_pt( 21.3986, 21.6081, 42.0236, &rU08.c4 );
make_pt( 20.1189, 21.3012, 42.3804, &rU08.c5 );
make_pt( 19.1599, 21.8516, 41.7578, &rU08.c6 );
make_pt( 19.8919, 20.3745, 43.4387, &rU08._.U.o2 );
make_pt( 20.9790, 19.8423, 44.0440, &rU08._.U.o4 );
make_pt( 21.5235, 22.3222, 41.2097, &rU08._.U.h3 );
make_pt( 18.8732, 20.1200, 43.7312, &rU08._.U.h5 );
make_pt( 20.8545, 19.1313, 44.8608, &rU08._.U.h6 );
rU09.type = 'U';
make_tfo( -0.0317, 0.1374, 0.9900,
-0.3422, -0.9321, 0.1184,
0.9391, -0.3351, 0.0765,
-32.1929, 25.8198, -28.5088, &rU09.dgf_base_tfo );
make_tfo( 0.2765, -0.1121, -0.9545,
-0.8297, 0.4733, -0.2959,
0.4850, 0.8737, 0.0379,
-14.7774, -45.2464, 21.9088, &rU09.p_o3_275_tfo );
make_tfo( 0.1063, -0.6334, -0.7665,
-0.5932, -0.6591, 0.4624,
-0.7980, 0.4055, -0.4458,
43.7634, 4.3296, 28.4890, &rU09.p_o3_180_tfo );
make_tfo( 0.7136, -0.5032, -0.4873,
0.6803, 0.3317, 0.6536,
-0.1673, -0.7979, 0.5791,
-17.1858, 41.4390, -27.0751, &rU09.p_o3_60_tfo );
make_pt( 21.3880, 15.0780, 45.5770, &rU09.p );
make_pt( 21.9980, 14.5500, 46.8210, &rU09.o1p );
make_pt( 21.1450, 14.0270, 44.5420, &rU09.o2p );
make_pt( 22.1250, 16.3600, 44.9460, &rU09.o5_ );
make_pt( 21.5037, 16.8594, 43.7323, &rU09.c5_ );
make_pt( 20.8147, 17.6663, 43.9823, &rU09.h5_ );
make_pt( 21.1086, 16.0230, 43.1557, &rU09.h5__ );
make_pt( 22.5654, 17.4874, 42.8616, &rU09.c4_ );
make_pt( 23.0565, 18.3036, 43.3915, &rU09.h4_ );
make_pt( 23.5375, 16.5054, 42.4925, &rU09.o4_ );
make_pt( 23.6574, 16.4257, 41.0649, &rU09.c1_ );
make_pt( 24.4701, 17.0882, 40.7671, &rU09.h1_ );
make_pt( 22.3525, 16.9643, 40.5396, &rU09.c2_ );
make_pt( 21.5993, 16.1799, 40.6133, &rU09.h2__ );
make_pt( 22.4693, 17.4849, 39.2515, &rU09.o2_ );
make_pt( 23.0899, 17.0235, 38.6827, &rU09.h2_ );
make_pt( 22.0341, 18.0633, 41.5279, &rU09.c3_ );
make_pt( 20.9509, 18.1709, 41.5846, &rU09.h3_ );
make_pt( 22.7249, 19.3020, 41.2100, &rU09.o3_ );
make_pt( 23.8580, 15.0648, 40.5757, &rU09.n1 );
make_pt( 25.1556, 14.5982, 40.4523, &rU09.n3 );
make_pt( 26.1047, 15.3210, 40.7448, &rU09.c2 );
make_pt( 25.3391, 13.3315, 40.0020, &rU09.c4 );
make_pt( 24.2974, 12.5148, 39.6749, &rU09.c5 );
make_pt( 24.5450, 11.3410, 39.2610, &rU09.c6 );
make_pt( 22.9633, 12.9979, 39.8053, &rU09._.U.o2 );
make_pt( 22.8009, 14.2648, 40.2524, &rU09._.U.o4 );
make_pt( 26.3414, 12.9194, 39.8855, &rU09._.U.h3 );
make_pt( 22.1227, 12.3533, 39.5486, &rU09._.U.h5 );
make_pt( 21.7989, 14.6788, 40.3650, &rU09._.U.h6 );
rU10.type = 'U';
make_tfo( -0.9674, 0.1021, -0.2318,
-0.2514, -0.2766, 0.9275,
0.0306, 0.9555, 0.2933,
27.8571, -42.1305, -24.4563, &rU10.dgf_base_tfo );
make_tfo( 0.2765, -0.1121, -0.9545,
-0.8297, 0.4733, -0.2959,
0.4850, 0.8737, 0.0379,
-14.7774, -45.2464, 21.9088, &rU10.p_o3_275_tfo );
make_tfo( 0.1063, -0.6334, -0.7665,
-0.5932, -0.6591, 0.4624,
-0.7980, 0.4055, -0.4458,
43.7634, 4.3296, 28.4890, &rU10.p_o3_180_tfo );
make_tfo( 0.7136, -0.5032, -0.4873,
0.6803, 0.3317, 0.6536,
-0.1673, -0.7979, 0.5791,
-17.1858, 41.4390, -27.0751, &rU10.p_o3_60_tfo );
make_pt( 21.3880, 15.0780, 45.5770, &rU10.p );
make_pt( 21.9980, 14.5500, 46.8210, &rU10.o1p );
make_pt( 21.1450, 14.0270, 44.5420, &rU10.o2p );
make_pt( 22.1250, 16.3600, 44.9460, &rU10.o5_ );
make_pt( 23.5096, 16.1227, 44.5783, &rU10.c5_ );
make_pt( 23.5649, 15.8588, 43.5222, &rU10.h5_ );
make_pt( 23.9621, 15.4341, 45.2919, &rU10.h5__ );
make_pt( 24.2805, 17.4138, 44.7151, &rU10.c4_ );
make_pt( 23.8509, 18.1819, 44.0720, &rU10.h4_ );
make_pt( 24.2506, 17.8583, 46.0741, &rU10.o4_ );
make_pt( 25.5830, 18.0320, 46.5775, &rU10.c1_ );
make_pt( 25.8569, 19.0761, 46.4256, &rU10.h1_ );
make_pt( 26.4410, 17.1555, 45.7033, &rU10.c2_ );
make_pt( 26.3459, 16.1253, 46.0462, &rU10.h2__ );
make_pt( 27.7649, 17.5888, 45.6478, &rU10.o2_ );
make_pt( 28.1004, 17.9719, 46.4616, &rU10.h2_ );
make_pt( 25.7796, 17.2997, 44.3513, &rU10.c3_ );
make_pt( 25.9478, 16.3824, 43.7871, &rU10.h3_ );
make_pt( 26.2154, 18.4984, 43.6541, &rU10.o3_ );
make_pt( 25.7321, 17.6281, 47.9726, &rU10.n1 );
make_pt( 25.5136, 18.5779, 48.9560, &rU10.n3 );
make_pt( 25.2079, 19.7276, 48.6503, &rU10.c2 );
make_pt( 25.6482, 18.1987, 50.2518, &rU10.c4 );
make_pt( 25.9847, 16.9266, 50.6092, &rU10.c5 );
make_pt( 26.0918, 16.6439, 51.8416, &rU10.c6 );
make_pt( 26.2067, 15.9515, 49.5943, &rU10._.U.o2 );
make_pt( 26.0713, 16.3497, 48.3080, &rU10._.U.o4 );
make_pt( 25.4890, 18.9105, 51.0618, &rU10._.U.h3 );
make_pt( 26.4742, 14.9310, 49.8682, &rU10._.U.h5 );
make_pt( 26.2346, 15.6394, 47.4975, &rU10._.U.h6 );
rUs[0] = &rU10;
rUs[1] = &rU09;
rUs[2] = &rU08;
rUs[3] = &rU07;
rUs[4] = &rU06;
rUs[5] = &rU05;
rUs[6] = &rU04;
rUs[7] = &rU03;
rUs[8] = &rU02;
rUs[9] = &rU01;
rUs[10]= 0;
}
/*---------------------------------------------------------------------------*/
/* POINTS */
void pt_sub( p1, p2, p3 )
pt p1, p2, p3;
{
p3->x = p1->x - p2->x;
p3->y = p1->y - p2->y;
p3->z = p1->z - p2->z;
}
FLOAT pt_dist( p1, p2 )
pt p1, p2;
{
FLOAT dx = p1->x - p2->x, dy = p1->y - p2->y, dz = p1->z - p2->z;
return sqrt( dx*dx + dy*dy + dz*dz );
}
FLOAT pt_phi( p )
pt p;
{
FLOAT x = p->x, y = p->y, z = p->z;
FLOAT b = atan2( x, z );
return atan2( cos(b)*z + sin(b)*x, y );
}
FLOAT pt_theta( p )
pt p;
{
return atan2( p->x, p->z );
}
/*---------------------------------------------------------------------------*/
/* COORDINATE TRANSFORMATIONS */
struct struct_tfo tfo_id =
{
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0,
0.0, 0.0, 0.0
};
void tfo_apply( t, p1, p2 )
tfo t;
pt p1, p2;
{
FLOAT x = p1->x, y = p1->y, z = p1->z;
p2->x = x*t->m[0][0] + y*t->m[1][0] + z*t->m[2][0] + t->m[3][0];
p2->y = x*t->m[0][1] + y*t->m[1][1] + z*t->m[2][1] + t->m[3][1];
p2->z = x*t->m[0][2] + y*t->m[1][2] + z*t->m[2][2] + t->m[3][2];
}
void tfo_combine( a, b, t )
tfo a, b, t;
{
FLOAT x, y, z;
x = a->m[0][0]; y = a->m[0][1]; z = a->m[0][2];
t->m[0][0] = x*b->m[0][0] + y*b->m[1][0] + z*b->m[2][0];
t->m[0][1] = x*b->m[0][1] + y*b->m[1][1] + z*b->m[2][1];
t->m[0][2] = x*b->m[0][2] + y*b->m[1][2] + z*b->m[2][2];
x = a->m[1][0]; y = a->m[1][1]; z = a->m[1][2];
t->m[1][0] = x*b->m[0][0] + y*b->m[1][0] + z*b->m[2][0];
t->m[1][1] = x*b->m[0][1] + y*b->m[1][1] + z*b->m[2][1];
t->m[1][2] = x*b->m[0][2] + y*b->m[1][2] + z*b->m[2][2];
x = a->m[2][0]; y = a->m[2][1]; z = a->m[2][2];
t->m[2][0] = x*b->m[0][0] + y*b->m[1][0] + z*b->m[2][0];
t->m[2][1] = x*b->m[0][1] + y*b->m[1][1] + z*b->m[2][1];
t->m[2][2] = x*b->m[0][2] + y*b->m[1][2] + z*b->m[2][2];
x = a->m[3][0]; y = a->m[3][1]; z = a->m[3][2];
t->m[3][0] = x*b->m[0][0] + y*b->m[1][0] + z*b->m[2][0] + b->m[3][0];
t->m[3][1] = x*b->m[0][1] + y*b->m[1][1] + z*b->m[2][1] + b->m[3][1];
t->m[3][2] = x*b->m[0][2] + y*b->m[1][2] + z*b->m[2][2] + b->m[3][2];
}
void tfo_inv_ortho( t1, t2 )
tfo t1, t2;
{
FLOAT tx = t1->m[3][0], ty = t1->m[3][1], tz = t1->m[3][2];
t2->m[0][0] = t1->m[0][0];
t2->m[0][1] = t1->m[1][0];
t2->m[0][2] = t1->m[2][0];
t2->m[1][0] = t1->m[0][1];
t2->m[1][1] = t1->m[1][1];
t2->m[1][2] = t1->m[2][1];
t2->m[2][0] = t1->m[0][2];
t2->m[2][1] = t1->m[1][2];
t2->m[2][2] = t1->m[2][2];
t2->m[3][0] = -(tx*t1->m[0][0] + ty*t1->m[0][1] + tz*t1->m[0][2]);
t2->m[3][1] = -(tx*t1->m[1][0] + ty*t1->m[1][1] + tz*t1->m[1][2]);
t2->m[3][2] = -(tx*t1->m[2][0] + ty*t1->m[2][1] + tz*t1->m[2][2]);
}
void tfo_align( p1, p2, p3, t )
pt p1, p2, p3;
tfo t;
{
FLOAT x1 = p1->x, y1 = p1->y, z1 = p1->z;
FLOAT x3 = p3->x, y3 = p3->y, z3 = p3->z;
FLOAT x31 = x3-x1, y31 = y3-y1, z31 = z3-z1;
struct struct_pt rotpy;
pt_sub( p2, p1, &rotpy );
{
FLOAT phi = pt_phi( &rotpy ), theta = pt_theta( &rotpy );
FLOAT sinp = sin(phi), sint = sin(theta);
FLOAT cosp = cos(phi), cost = cos(theta);
FLOAT sinpsint = sinp*sint;
FLOAT sinpcost = sinp*cost;
FLOAT cospsint = cosp*sint;
FLOAT cospcost = cosp*cost;
struct struct_pt rotpz;
make_pt( cost*x31 - sint*z31,
sinpsint*x31 + cosp*y31 + sinpcost*z31,
cospsint*x31 - sinp*y31 + cospcost*z31,
&rotpz );
{
FLOAT rho = pt_theta( &rotpz );
FLOAT cosr = cos( rho ), sinr = sin( rho );
FLOAT x = -x1*cost + z1*sint;
FLOAT y = -x1*sinpsint - y1*cosp - z1*sinpcost;
FLOAT z = -x1*cospsint + y1*sinp - z1*cospcost;
t->m[0][0] = cost*cosr - cospsint*sinr;
t->m[0][1] = sinpsint;
t->m[0][2] = cost*sinr + cospsint*cosr;
t->m[1][0] = sinp*sinr;
t->m[1][1] = cosp;
t->m[1][2] = -sinp*cosr;
t->m[2][0] = -sint*cosr - cospcost*sinr;
t->m[2][1] = sinpcost;
t->m[2][2] = -sint*sinr + cospcost*cosr;
t->m[3][0] = x*cosr - z*sinr;
t->m[3][1] = y;
t->m[3][2] = x*sinr + z*cosr;
}
}
}
/*---------------------------------------------------------------------------*/
void init_nucleotides()
{
init_A();
init_C();
init_G();
init_U();
rG_.type = 'G';
make_tfo( -0.2067, -0.0264, 0.9780,
0.9770, -0.0586, 0.2049,
0.0519, 0.9979, 0.0379,
1.0331, -46.8078, -36.4742, &rG_.dgf_base_tfo );
make_tfo( -0.8644, -0.4956, -0.0851,
-0.0427, 0.2409, -0.9696,
0.5010, -0.8345, -0.2294,
4.0167, 54.5377, 12.4779, &rG_.p_o3_275_tfo );
make_tfo( 0.3706, -0.6167, 0.6945,
-0.2867, -0.7872, -0.5460,
0.8834, 0.0032, -0.4686,
-52.9020, 18.6313, -0.6709, &rG_.p_o3_180_tfo );
make_tfo( 0.4155, 0.9025, -0.1137,
0.9040, -0.4236, -0.0582,
-0.1007, -0.0786, -0.9918,
-7.6624, -25.2080, 49.5181, &rG_.p_o3_60_tfo );
make_pt( 31.3810, 0.1400, 47.5810, &rG_.p );
make_pt( 29.9860, 0.6630, 47.6290, &rG_.o1p );
make_pt( 31.7210, -0.6460, 48.8090, &rG_.o2p );
make_pt( 32.4940, 1.2540, 47.2740, &rG_.o5_ );
make_pt( 32.1610, 2.2370, 46.2560, &rG_.c5_ );
make_pt( 31.2986, 2.8190, 46.5812, &rG_.h5_ );
make_pt( 32.0980, 1.7468, 45.2845, &rG_.h5__ );
make_pt( 33.3476, 3.1959, 46.1947, &rG_.c4_ );
make_pt( 33.2668, 3.8958, 45.3630, &rG_.h4_ );
make_pt( 33.3799, 3.9183, 47.4216, &rG_.o4_ );
make_pt( 34.6515, 3.7222, 48.0398, &rG_.c1_ );
make_pt( 35.2947, 4.5412, 47.7180, &rG_.h1_ );
make_pt( 35.1756, 2.4228, 47.4827, &rG_.c2_ );
make_pt( 34.6778, 1.5937, 47.9856, &rG_.h2__ );
make_pt( 36.5631, 2.2672, 47.4798, &rG_.o2_ );
make_pt( 37.0163, 2.6579, 48.2305, &rG_.h2_ );
make_pt( 34.6953, 2.5043, 46.0448, &rG_.c3_ );
make_pt( 34.5444, 1.4917, 45.6706, &rG_.h3_ );
make_pt( 35.6679, 3.3009, 45.3487, &rG_.o3_ );
make_pt( 37.4804, 4.0914, 52.2559, &rG_.n1 );
make_pt( 36.9670, 4.1312, 49.9281, &rG_.n3 );
make_pt( 37.8045, 4.2519, 50.9550, &rG_.c2 );
make_pt( 35.7171, 3.8264, 50.3222, &rG_.c4 );
make_pt( 35.2668, 3.6420, 51.6115, &rG_.c5 );
make_pt( 36.2037, 3.7829, 52.6706, &rG_.c6 );
make_pt( 39.0869, 4.5552, 50.7092, &rG_._.G.n2 );
make_pt( 33.9075, 3.3338, 51.6102, &rG_._.G.n7 );
make_pt( 34.6126, 3.6358, 49.5108, &rG_._.G.n9 );
make_pt( 33.5805, 3.3442, 50.3425, &rG_._.G.c8 );
make_pt( 35.9958, 3.6512, 53.8724, &rG_._.G.o6 );
make_pt( 38.2106, 4.2053, 52.9295, &rG_._.G.h1 );
make_pt( 39.8218, 4.6863, 51.3896, &rG_._.G.h21 );
make_pt( 39.3420, 4.6857, 49.7407, &rG_._.G.h22 );
make_pt( 32.5194, 3.1070, 50.2664, &rG_._.G.h8 );
rU_.type = 'U';
make_tfo( -0.0109, 0.5907, 0.8068,
0.2217, -0.7853, 0.5780,
0.9751, 0.1852, -0.1224,
-1.4225, -11.0956, -2.5217, &rU_.dgf_base_tfo );
make_tfo( -0.8313, -0.4738, -0.2906,
0.0649, 0.4366, -0.8973,
0.5521, -0.7648, -0.3322,
1.6833, 6.8060, -7.0011, &rU_.p_o3_275_tfo );
make_tfo( 0.3445, -0.7630, 0.5470,
-0.4628, -0.6450, -0.6082,
0.8168, -0.0436, -0.5753,
-6.8179, -3.9778, -5.9887, &rU_.p_o3_180_tfo );
make_tfo( 0.5855, 0.7931, -0.1682,
0.8103, -0.5790, 0.0906,
-0.0255, -0.1894, -0.9816,
6.1203, -7.1051, 3.1984, &rU_.p_o3_60_tfo );
make_pt( 2.6760, -8.4960, 3.2880, &rU_.p );
make_pt( 1.4950, -7.6230, 3.4770, &rU_.o1p );
make_pt( 2.9490, -9.4640, 4.3740, &rU_.o2p );
make_pt( 3.9730, -7.5950, 3.0340, &rU_.o5_ );
make_pt( 5.2430, -8.2420, 2.8260, &rU_.c5_ );
make_pt( 5.1974, -8.8497, 1.9223, &rU_.h5_ );
make_pt( 5.5548, -8.7348, 3.7469, &rU_.h5__ );
make_pt( 6.3140, -7.2060, 2.5510, &rU_.c4_ );
make_pt( 5.8744, -6.2116, 2.4731, &rU_.h4_ );
make_pt( 7.2798, -7.2260, 3.6420, &rU_.o4_ );
make_pt( 8.5733, -6.9410, 3.1329, &rU_.c1_ );
make_pt( 8.9047, -6.0374, 3.6446, &rU_.h1_ );
make_pt( 8.4429, -6.6596, 1.6327, &rU_.c2_ );
make_pt( 9.2880, -7.1071, 1.1096, &rU_.h2__ );
make_pt( 8.2502, -5.2799, 1.4754, &rU_.o2_ );
make_pt( 8.7676, -4.7284, 2.0667, &rU_.h2_ );
make_pt( 7.1642, -7.4416, 1.3021, &rU_.c3_ );
make_pt( 7.4125, -8.5002, 1.2260, &rU_.h3_ );
make_pt( 6.5160, -6.9772, 0.1267, &rU_.o3_ );
make_pt( 9.4531, -8.1107, 3.4087, &rU_.n1 );
make_pt( 11.5931, -9.0015, 3.6357, &rU_.n3 );
make_pt( 10.8101, -7.8950, 3.3748, &rU_.c2 );
make_pt( 11.1439, -10.2744, 3.9206, &rU_.c4 );
make_pt( 9.7056, -10.4026, 3.9332, &rU_.c5 );
make_pt( 8.9192, -9.3419, 3.6833, &rU_.c6 );
make_pt( 11.3013, -6.8063, 3.1326, &rU_._.U.o2 );
make_pt( 11.9431, -11.1876, 4.1375, &rU_._.U.o4 );
make_pt( 12.5840, -8.8673, 3.6158, &rU_._.U.h3 );
make_pt( 9.2891, -11.2898, 4.1313, &rU_._.U.h5 );
make_pt( 7.9263, -9.4537, 3.6977, &rU_._.U.h6 );
}
/*---------------------------------------------------------------------------*/
/* PARTIAL INSTANTIATIONS */
struct struct_var
{
int i;
tfo t;
nuc n;
int on_stack;
};
typedef struct struct_var *var;
typedef struct struct_var *var_list;
struct struct_sol_list
{
var_list sol;
struct struct_sol_list *next;
};
typedef struct struct_sol_list *sol_list;
struct struct_var partial_inst[200];
int partial_inst_length;
#ifdef lazy
#define absolute_pos(var,pt1,pt2)\
{ if ((pt1)->relative) { tfo_apply((var)->t,pt1,pt1); (pt1)->relative = 0; }\
*(pt2) = *(pt1);\
}
void make_relative_nuc( t, n1, n2 )
tfo t;
nuc n1, n2;
{
*n2 = *n1;
n2->p.relative = 1;
n2->o1p.relative = 1;
n2->o2p.relative = 1;
n2->o5_.relative = 1;
n2->c5_.relative = 1;
n2->h5_.relative = 1;
n2->h5__.relative = 1;
n2->c4_.relative = 1;
n2->h4_.relative = 1;
n2->o4_.relative = 1;
n2->c1_.relative = 1;
n2->h1_.relative = 1;
n2->c2_.relative = 1;
n2->h2__.relative = 1;
n2->o2_.relative = 1;
n2->h2_.relative = 1;
n2->c3_.relative = 1;
n2->h3_.relative = 1;
n2->o3_.relative = 1;
n2->n1.relative = 1;
n2->n3.relative = 1;
n2->c2.relative = 1;
n2->c4.relative = 1;
n2->c5.relative = 1;
n2->c6.relative = 1;
switch (n2->type)
{
case 'A':
n2->_.A.n6.relative = 1;
n2->_.A.n7.relative = 1;
n2->_.A.n9.relative = 1;
n2->_.A.c8.relative = 1;
n2->_.A.h2.relative = 1;
n2->_.A.h61.relative = 1;
n2->_.A.h62.relative = 1;
n2->_.A.h8.relative = 1;
break;
case 'C':
n2->_.C.n4.relative = 1;
n2->_.C.o2.relative = 1;
n2->_.C.h41.relative = 1;
n2->_.C.h42.relative = 1;
n2->_.C.h5.relative = 1;
n2->_.C.h6.relative = 1;
break;
case 'G':
n2->_.G.n2.relative = 1;
n2->_.G.n7.relative = 1;
n2->_.G.n9.relative = 1;
n2->_.G.c8.relative = 1;
n2->_.G.o6.relative = 1;
n2->_.G.h1.relative = 1;
n2->_.G.h21.relative = 1;
n2->_.G.h22.relative = 1;
n2->_.G.h8.relative = 1;
break;
case 'U':
n2->_.U.o2.relative = 1;
n2->_.U.o4.relative = 1;
n2->_.U.h3.relative = 1;
n2->_.U.h5.relative = 1;
n2->_.U.h6.relative = 1;
break;
}
}
#else
#define absolute_pos(var,pt1,pt2)tfo_apply((var)->t,pt1,pt2)
#endif
#define atom_pos(atom,var,pos)\
{ pt x = &(var)->n->atom; absolute_pos(var,x,pos); }
var get_var( i )
int i;
{
var v = &partial_inst[partial_inst_length-1];
while (v->i != i) v--;
return v;
}
/*---------------------------------------------------------------------------*/
/* SEARCH */
void (*seq)();
int (*constraint)();
sol_list solutions, last_solution;
void search( problem_domains, problem_constraint )
void (*problem_domains)();
int (*problem_constraint)();
{
seq = problem_domains;
constraint = problem_constraint;
solutions = NULL;
last_solution = NULL;
partial_inst_length = 0;
(*seq)();
}
void try( i, t, n )
int i;
tfo t;
nuc n;
{
var v = &partial_inst[partial_inst_length];
#ifdef lazy
struct struct_nuc rel_n;
make_relative_nuc( t, n, &rel_n );
v->n = &rel_n;
#else
v->n = n;
#endif
v->i = i;
v->t = t;
v->on_stack = 1;
if ((*constraint)( v ))
{
partial_inst_length++;
(*seq)();
partial_inst_length--;
}
}
void found_solution()
{
int i;
sol_list sols;
var_list sol;
sol = (var_list)malloc( (partial_inst_length+1)*sizeof(struct struct_var) );
if (sol==NULL) { printf( "memory overflow\n" ); exit(1); }
for (i=0; i<partial_inst_length; i++)
{
if (partial_inst[i].on_stack)
{
tfo t;
#ifdef lazy
nuc n;
#endif
t = (tfo)malloc( sizeof(struct struct_tfo) );
if (t==NULL) { printf( "memory overflow\n" ); exit(1); }
*t = *partial_inst[i].t;
partial_inst[i].t = t;
#ifdef lazy
n = (nuc)malloc( sizeof(struct struct_nuc) );
if (n==NULL) { printf( "memory overflow\n" ); exit(1); }
*n = *partial_inst[i].n;
partial_inst[i].n = n;
#endif
partial_inst[i].on_stack = 0;
}
sol[i].i = partial_inst[i].i;
sol[i].t = partial_inst[i].t;
sol[i].n = partial_inst[i].n;
}
sol[i].i = -1;
sols = (sol_list)malloc( sizeof(struct struct_sol_list) );
if (sols==NULL) { printf( "memory overflow\n" ); exit(1); }
sols->sol = sol;
sols->next = NULL;
if (last_solution == NULL)
solutions = sols;
else
last_solution->next = sols;
last_solution = sols;
}
/*---------------------------------------------------------------------------*/
/* DOMAINS */
void dgf_base( t1, ref, n, t2 )
tfo t1;
var ref;
nuc n;
tfo t2;
{
nuc ref_n = ref->n;
struct struct_pt p1, p2, p3;
struct struct_tfo m, align;
switch (ref_n->type)
{
case 'A':
atom_pos( c1_, ref, &p1 );
atom_pos( _.A.n9, ref, &p2 );
atom_pos( c4, ref, &p3 );
break;
case 'C':
atom_pos( c1_, ref, &p1 );
atom_pos( n1, ref, &p2 );
atom_pos( c2, ref, &p3 );
break;
case 'G':
atom_pos( c1_, ref, &p1 );
atom_pos( _.G.n9, ref, &p2 );
atom_pos( c4, ref, &p3 );
break;
case 'U':
atom_pos( c1_, ref, &p1 );
atom_pos( n1, ref, &p2 );
atom_pos( c2, ref, &p3 );
break;
}
tfo_align( &p1, &p2, &p3, &m );
tfo_inv_ortho( &m, &align );
tfo_combine( t1, &align, &m );
tfo_combine( &n->dgf_base_tfo, &m, t2 );
}
void reference( n, i )
nuc n;
int i;
{
try( i, &tfo_id, n );
}
struct struct_tfo wc_tfo =
{
-1.0000, 0.0028, -0.0019,
0.0028, 0.3468, -0.9379,
-0.0019, -0.9379, -0.3468,
-0.0080, 6.0730, 8.7208
};
void wc( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &wc_tfo, get_var(j), n, &t );
try( i, &t, n );
}
struct struct_tfo wc_dumas_tfo =
{
-0.9737, -0.1834, 0.1352,
-0.1779, 0.2417, -0.9539,
0.1422, -0.9529, -0.2679,
0.4837, 6.2649, 8.0285
};
void wc_dumas( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &wc_dumas_tfo, get_var(j), n, &t );
try( i, &t, n );
}
struct struct_tfo helix5_tfo =
{
0.9886, -0.0961, 0.1156,
0.1424, 0.8452, -0.5152,
-0.0482, 0.5258, 0.8492,
-3.8737, 0.5480, 3.8024
};
void helix5( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &helix5_tfo, get_var(j), n, &t );
try( i, &t, n );
}
struct struct_tfo helix3_tfo =
{
0.9886, 0.1424, -0.0482,
-0.0961, 0.8452, 0.5258,
0.1156, -0.5152, 0.8492,
3.4426, 2.0474, -3.7042
};
void helix3( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &helix3_tfo, get_var(j), n, &t );
try( i, &t, n );
}
struct struct_tfo g37_a38_tfo =
{
0.9991, 0.0164, -0.0387,
-0.0375, 0.7616, -0.6470,
0.0189, 0.6478, 0.7615,
-3.3018, 0.9975, 2.5585
};
void G37_A38( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &g37_a38_tfo, get_var(j), n, &t );
try( i, &t, n );
}
void stacked5( n, i, j )
nuc n;
int i, j;
{
G37_A38( n, i, j );
helix5( n, i, j );
}
struct struct_tfo a38_g37_tfo =
{
0.9991, -0.0375, 0.0189,
0.0164, 0.7616, 0.6478,
-0.0387, -0.6470, 0.7615,
3.3819, 0.7718, -2.5321
};
void A38_G37( n, i, j )
nuc n;
int i, j;
{
struct struct_tfo t;
dgf_base( &a38_g37_tfo, get_var(j), n, &t );
try( i, &t, n );
}
void stacked3( n, i, j )
nuc n;
int i, j;
{
A38_G37( n, i, j );
helix3( n, i, j );
}
void P_O3( n, i, j )
nuc *n;
int i, j;
{
var ref = get_var(j);
struct struct_pt p1, p2, p3;
struct struct_tfo m, align;
atom_pos( o3_, ref, &p1 );
atom_pos( c3_, ref, &p2 );
atom_pos( c4_, ref, &p3 );
tfo_align( &p1, &p2, &p3, &m );
tfo_inv_ortho( &m, &align );
while (*n!=NULL)
{
tfo_combine( &(*n)->p_o3_60_tfo, &align, &m );
try( i, &m, *n );
tfo_combine( &(*n)->p_o3_180_tfo, &align, &m );
try( i, &m, *n );
tfo_combine( &(*n)->p_o3_275_tfo, &align, &m );
try( i, &m, *n );
n++;
}
}
/*---------------------------------------------------------------------------*/
/* PROBLEM STATEMENT */
/* Anticodon problem */
void anticodon_domains()
{
switch (partial_inst_length)
{
case 0: reference( &rC, 27 ); break;
case 1: helix5( &rC, 28, 27 ); break;
case 2: helix5( &rA, 29, 28 ); break;
case 3: helix5( &rG, 30, 29 ); break;
case 4: helix5( &rA, 31, 30 ); break;
case 5: wc( &rU, 39, 31 ); break;
case 6: helix5( &rC, 40, 39 ); break;
case 7: helix5( &rU, 41, 40 ); break;
case 8: helix5( &rG, 42, 41 ); break;
case 9: helix5( &rG, 43, 42 ); break;
case 10: stacked3( &rA, 38, 39 ); break;
case 11: stacked3( &rG, 37, 38 ); break;
case 12: stacked3( &rA, 36, 37 ); break;
case 13: stacked3( &rA, 35, 36 ); break;
case 14: stacked3( &rG, 34, 35 ); break;
case 15: P_O3( rCs, 32, 31 ); break;
case 16: P_O3( rUs, 33, 32 ); break;
case 17: found_solution();
}
}
int anticodon_constraint( v )
var v;
{
if (v->i == 33)
{
var ref;
struct struct_pt p, o3_;
ref = get_var(34);
atom_pos( p, ref, &p );
atom_pos( o3_, v, &o3_ );
return (pt_dist( &p, &o3_ ) < 3.0);
}
else
return 1;
}
void anticodon()
{
search( anticodon_domains, anticodon_constraint );
}
/* Pseudoknot problem */
void pseudoknot_domains()
{
switch (partial_inst_length)
{
case 0: reference( &rA, 23 ); break;
case 1: wc_dumas( &rU, 8, 23 ); break;
case 2: helix3( &rG, 22, 23 ); break;
case 3: wc_dumas( &rC, 9, 22 ); break;
case 4: helix3( &rG, 21, 22 ); break;
case 5: wc_dumas( &rC, 10, 21 ); break;
case 6: helix3( &rC, 20, 21 ); break;
case 7: wc_dumas( &rG, 11, 20 ); break;
case 8: helix3( &rU_,19, 20 ); break;
case 9: wc_dumas( &rA, 12, 19 ); break;
case 10: helix3( &rC, 3, 19 ); break;
case 11: wc_dumas( &rG, 13, 3 ); break;
case 12: helix3( &rC, 2, 3 ); break;
case 13: wc_dumas( &rG, 14, 2 ); break;
case 14: helix3( &rC, 1, 2 ); break;
case 15: wc_dumas( &rG_,15, 1 ); break;
case 16: P_O3( rUs, 16, 15 ); break;
case 17: P_O3( rCs, 17, 16 ); break;
case 18: P_O3( rAs, 18, 17 ); break;
case 19: helix3( &rU, 7, 8 ); break;
case 20: P_O3( rCs, 4, 3 ); break;
case 21: stacked5( &rU, 5, 4 ); break;
case 22: stacked5( &rC, 6, 5 ); break;
case 23: found_solution();
}
}
int pseudoknot_constraint( v )
var v;
{
switch (v->i)
{
case 18:
{
var ref;
struct struct_pt p, o3_;
ref = get_var(19);
atom_pos( p, ref, &p );
atom_pos( o3_, v, &o3_ );
return (pt_dist( &p, &o3_ ) <= 4.0);
}
case 6:
{
var ref;
struct struct_pt p, o3_;
ref = get_var(7);
atom_pos( p, ref, &p );
atom_pos( o3_, v, &o3_ );
return (pt_dist( &p, &o3_ ) <= 4.5);
}
default:
return 1;
}
}
void pseudoknot()
{
search( pseudoknot_domains, pseudoknot_constraint );
}
/*---------------------------------------------------------------------------*/
/* TESTING */
pt point_list[50];
pt *list_of_atoms( n )
nuc n;
{
pt *ptr;
ptr = point_list;
*ptr++ = &n->p;
*ptr++ = &n->o1p;
*ptr++ = &n->o2p;
*ptr++ = &n->o5_;
*ptr++ = &n->c5_;
*ptr++ = &n->h5_;
*ptr++ = &n->h5__;
*ptr++ = &n->c4_;
*ptr++ = &n->h4_;
*ptr++ = &n->o4_;
*ptr++ = &n->c1_;
*ptr++ = &n->h1_;
*ptr++ = &n->c2_;
*ptr++ = &n->h2__;
*ptr++ = &n->o2_;
*ptr++ = &n->h2_;
*ptr++ = &n->c3_;
*ptr++ = &n->h3_;
*ptr++ = &n->o3_;
*ptr++ = &n->n1;
*ptr++ = &n->n3;
*ptr++ = &n->c2;
*ptr++ = &n->c4;
*ptr++ = &n->c5;
*ptr++ = &n->c6;
switch (n->type)
{
case 'A':
*ptr++ = &n->_.A.n6;
*ptr++ = &n->_.A.n7;
*ptr++ = &n->_.A.n9;
*ptr++ = &n->_.A.c8;
*ptr++ = &n->_.A.h2;
*ptr++ = &n->_.A.h61;
*ptr++ = &n->_.A.h62;
*ptr++ = &n->_.A.h8;
break;
case 'C':
*ptr++ = &n->_.C.n4;
*ptr++ = &n->_.C.o2;
*ptr++ = &n->_.C.h41;
*ptr++ = &n->_.C.h42;
*ptr++ = &n->_.C.h5;
*ptr++ = &n->_.C.h6;
break;
case 'G':
*ptr++ = &n->_.G.n2;
*ptr++ = &n->_.G.n7;
*ptr++ = &n->_.G.n9;
*ptr++ = &n->_.G.c8;
*ptr++ = &n->_.G.o6;
*ptr++ = &n->_.G.h1;
*ptr++ = &n->_.G.h21;
*ptr++ = &n->_.G.h22;
*ptr++ = &n->_.G.h8;
break;
case 'U':
*ptr++ = &n->_.U.o2;
*ptr++ = &n->_.U.o4;
*ptr++ = &n->_.U.h3;
*ptr++ = &n->_.U.h5;
*ptr++ = &n->_.U.h6;
break;
}
*ptr = NULL;
return point_list;
}
FLOAT distance( p )
pt p;
{
FLOAT x = p->x, y = p->y, z = p->z;
return sqrt( x*x + y*y + z*z );
}
FLOAT m; /* current maximal distance */
void var_most_distant_atom( v )
var v;
{
pt *ptr;
ptr = list_of_atoms( v->n );
while (*ptr != NULL)
{
pt p;
struct struct_pt abs_pos;
FLOAT x;
p = *ptr++;
absolute_pos( v, p, &abs_pos );
x = distance( &abs_pos );
if (x > m) m = x;
}
}
void sol_most_distant_atom( s )
var_list s;
{
while (s->i >= 0)
{
var_most_distant_atom( s );
s++;
}
}
FLOAT most_distant_atom( sols )
sol_list sols;
{
m = 0.0; /* set current maximum to 0 */
while (sols!=NULL)
{
sol_most_distant_atom( sols->sol );
sols = sols->next;
}
return m;
}
void check()
{
int n;
pseudoknot();
n = 0;
while (solutions!=NULL)
{
n++;
solutions = solutions->next;
}
printf( "Number of solutions: %d\n", n );
}
FLOAT run()
{
init_nucleotides();
pseudoknot();
return most_distant_atom(solutions);
}
int main (int argc, char *argv[])
{
int i;
FLOAT result;
for (i=0; i<5; i++)
result = run ();
if ((result <= 33.797594890762724*0.999999) ||
(result >= 33.797594890762724*1.000001))
printf ("*** wrong result ***\n");
return 0;
}
/*---------------------------------------------------------------------------*/