Commit ef7a6f8f by maarten

Oeps, foutje in geheugen management cif categorie

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@403 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent 85aed9fb
......@@ -15,126 +15,126 @@ const float kNA = nan("1");
const AtomTypeInfo kKnownAtoms[] =
{
{ Nn, "Unknown", "Nn", 0, false, { kNA, kNA, kNA, kNA, kNA, kNA, kNA } },
{ H, "Hydrogen", "H", 1.008, false, { 53, 25, 37, 32, kNA, kNA, 120 } },
{ He, "Helium", "He", 4.0026, false, { 31, kNA, 32, 46, kNA, kNA, 140 } },
{ Li, "Lithium", "Li", 6.94, true, { 167, 145, 134, 133, 124, kNA, 182 } },
{ Be, "Beryllium", "Be", 9.0122, true, { 112, 105, 90, 102, 90, 85, kNA } },
{ B, "Boron", "B", 10.81, true, { 87, 85, 82, 85, 78, 73, kNA } },
{ C, "Carbon", "C", 12.011, false, { 67, 70, 77, 75, 67, 60, 170 } },
{ N, "Nitrogen", "N", 14.007, false, { 56, 65, 75, 71, 60, 54, 155 } },
{ O, "Oxygen", "O", 15.999, false, { 48, 60, 73, 63, 57, 53, 152 } },
{ F, "Fluorine", "F", 18.998, false, { 42, 50, 71, 64, 59, 53, 147 } },
{ Ne, "Neon", "Ne", 20.180, false, { 38, kNA, 69, 67, 96, kNA, 154 } },
{ Na, "Sodium", "Na", 22.990, true, { 190, 180, 154, 155, 160, kNA, 227 } },
{ Mg, "Magnesium", "Mg", 24.305, true, { 145, 150, 130, 139, 132, 127, 173 } },
{ Al, "Aluminium", "Al", 26.982, true, { 118, 125, 118, 126, 113, 111, kNA } },
{ Si, "Silicon", "Si", 28.085, true, { 111, 110, 111, 116, 107, 102, 210 } },
{ P, "Phosphorus", "P", 30.974, false, { 98, 100, 106, 111, 102, 94, 180 } },
{ S, "Sulfur", "S", 32.06, false, { 88, 100, 102, 103, 94, 95, 180 } },
{ Cl, "Chlorine", "Cl", 35.45, false, { 79, 100, 99, 99, 95, 93, 175 } },
{ Ar, "Argon", "Ar", 39.948, false, { 71, kNA, 97, 96, 107, 96, 188 } },
{ K, "Potassium", "K", 39.098, true, { 243, 220, 196, 196, 193, kNA, 275 } },
{ Ca, "Calcium", "Ca", 40.078, true, { 194, 180, 174, 171, 147, 133, kNA } },
{ Sc, "Scandium", "Sc", 44.956, true, { 184, 160, 144, 148, 116, 114, kNA } },
{ Ti, "Titanium", "Ti", 47.867, true, { 176, 140, 136, 136, 117, 108, kNA } },
{ V, "Vanadium", "V", 50.942, true, { 171, 135, 125, 134, 112, 106, kNA } },
{ Cr, "Chromium", "Cr", 51.996, true, { 166, 140, 127, 122, 111, 103, kNA } },
{ Mn, "Manganese", "Mn", 54.938, true, { 161, 140, 139, 119, 105, 103, kNA } },
{ Fe, "Iron", "Fe", 55.845, true, { 156, 140, 125, 116, 109, 102, kNA } },
{ Co, "Cobalt", "Co", 58.933, true, { 152, 135, 126, 111, 103, 96, kNA } },
{ Ni, "Nickel", "Ni", 58.693, true, { 149, 135, 121, 110, 101, 101, 163 } },
{ Cu, "Copper", "Cu", 63.546, true, { 145, 135, 138, 112, 115, 120, 140 } },
{ Zn, "Zinc", "Zn", 65.38, true, { 142, 135, 131, 118, 120, kNA, 139 } },
{ Ga, "Gallium", "Ga", 69.723, true, { 136, 130, 126, 124, 117, 121, 187 } },
{ Ge, "Germanium", "Ge", 72.630, true, { 125, 125, 122, 121, 111, 114, kNA } },
{ As, "Arsenic", "As", 74.922, true, { 114, 115, 119, 121, 114, 106, 185 } },
{ Se, "Selenium", "Se", 78.971, false, { 103, 115, 116, 116, 107, 107, 190 } },
{ Br, "Bromine", "Br", 79.904, false, { 94, 115, 114, 114, 109, 110, 185 } },
{ Kr, "Krypton", "Kr", 83.798, false, { 88, kNA, 110, 117, 121, 108, 202 } },
{ Rb, "Rubidium", "Rb", 85.468, true, { 265, 235, 211, 210, 202, kNA, kNA } },
{ Sr, "Strontium", "Sr", 87.62, true, { 219, 200, 192, 185, 157, 139, kNA } },
{ Y, "Yttrium", "Y", 88.906, true, { 212, 180, 162, 163, 130, 124, kNA } },
{ Zr, "Zirconium", "Zr", 91.224, true, { 206, 155, 148, 154, 127, 121, kNA } },
{ Nb, "Niobium", "Nb", 92.906, true, { 198, 145, 137, 147, 125, 116, kNA } },
{ Mo, "Molybdenum", "Mo", 95.95, true, { 190, 145, 145, 138, 121, 113, kNA } },
{ Tc, "Technetium", "Tc", 98, true, { 183, 135, 156, 128, 120, 110, kNA } },
{ Ru, "Ruthenium", "Ru", 101.07, true, { 178, 130, 126, 125, 114, 103, kNA } },
{ Rh, "Rhodium", "Rh", 102.91, true, { 173, 135, 135, 125, 110, 106, kNA } },
{ Pd, "Palladium", "Pd", 106.42, true, { 169, 140, 131, 120, 117, 112, 163 } },
{ Ag, "Silver", "Ag", 107.87, true, { 165, 160, 153, 128, 139, 137, 172 } },
{ Cd, "Cadmium", "Cd", 112.41, true, { 161, 155, 148, 136, 144, kNA, 158 } },
{ In, "Indium", "In", 114.82, true, { 156, 155, 144, 142, 136, 146, 193 } },
{ Sn, "Tin", "Sn", 118.71, true, { 145, 145, 141, 140, 130, 132, 217 } },
{ Sb, "Antimony", "Sb", 121.76, false, { 133, 145, 138, 140, 133, 127, kNA } },
{ Te, "Tellurium", "Te", 127.60, false, { 123, 140, 135, 136, 128, 121, 206 } },
{ I, "Iodine", "I", 126.90, false, { 115, 140, 133, 133, 129, 125, 198 } },
{ Xe, "Xenon", "Xe", 131.29, false, { 108, kNA, 130, 131, 135, 122, 216 } },
{ Cs, "Caesium", "Cs", 132.91, true, { 298, 260, 225, 232, 209, kNA, kNA } },
{ Ba, "Barium", "Ba", 137.33, true, { 253, 215, 198, 196, 161, 149, kNA } },
{ La, "Lanthanum", "La", 138.91, true, { kNA, 195, 169, 180, 139, 139, kNA } },
{ Ce, "Cerium", "Ce", 140.12, true, { kNA, 185, kNA, 163, 137, 131, kNA } },
{ Pr, "Praseodymium", "Pr", 140.91, true, { 247, 185, kNA, 176, 138, 128, kNA } },
{ Nd, "Neodymium", "Nd", 144.24, true, { 206, 185, kNA, 174, 137, kNA, kNA } },
{ Pm, "Promethium", "Pm", 145, true, { 205, 185, kNA, 173, 135, kNA, kNA } },
{ Sm, "Samarium", "Sm", 150.36, true, { 238, 185, kNA, 172, 134, kNA, kNA } },
{ Eu, "Europium", "Eu", 151.96, true, { 231, 185, kNA, 168, 134, kNA, kNA } },
{ Gd, "Gadolinium", "Gd", 157.25, true, { 233, 180, kNA, 169, 135, 132, kNA } },
{ Tb, "Terbium", "Tb", 158.93, true, { 225, 175, kNA, 168, 135, kNA, kNA } },
{ Dy, "Dysprosium", "Dy", 162.50, true, { 228, 175, kNA, 167, 133, kNA, kNA } },
{ Ho, "Holmium", "Ho", 164.93, true, { 226, 175, kNA, 166, 133, kNA, kNA } },
{ Er, "Erbium", "Er", 167.26, true, { 226, 175, kNA, 165, 133, kNA, kNA } },
{ Tm, "Thulium", "Tm", 168.93, true, { 222, 175, kNA, 164, 131, kNA, kNA } },
{ Yb, "Ytterbium", "Yb", 173.05, true, { 222, 175, kNA, 170, 129, kNA, kNA } },
{ Lu, "Lutetium", "Lu", 174.97, true, { 217, 175, 160, 162, 131, 131, kNA } },
{ Hf, "Hafnium", "Hf", 178.49, true, { 208, 155, 150, 152, 128, 122, kNA } },
{ Ta, "Tantalum", "Ta", 180.95, true, { 200, 145, 138, 146, 126, 119, kNA } },
{ W, "Tungsten", "W", 183.84, true, { 193, 135, 146, 137, 120, 115, kNA } },
{ Re, "Rhenium", "Re", 186.21, true, { 188, 135, 159, 131, 119, 110, kNA } },
{ Os, "Osmium", "Os", 190.23, true, { 185, 130, 128, 129, 116, 109, kNA } },
{ Ir, "Iridium", "Ir", 192.22, true, { 180, 135, 137, 122, 115, 107, kNA } },
{ Pt, "Platinum", "Pt", 195.08, true, { 177, 135, 128, 123, 112, 110, 175 } },
{ Au, "Gold", "Au", 196.97, true, { 174, 135, 144, 124, 121, 123, 166 } },
{ Hg, "Mercury", "Hg", 200.59, true, { 171, 150, 149, 133, 142, kNA, 155 } },
{ Tl, "Thallium", "Tl", 204.38, true, { 156, 190, 148, 144, 142, 150, 196 } },
{ Pb, "Lead", "Pb", 207.2, true, { 154, 180, 147, 144, 135, 137, 202 } },
{ Bi, "Bismuth", "Bi", 208.98, true, { 143, 160, 146, 151, 141, 135, kNA } },
{ Po, "Polonium", "Po", 209, true, { 135, 190, kNA, 145, 135, 129, kNA } },
{ At, "Astatine", "At", 210, false, { 127, kNA, kNA, 147, 138, 138, kNA } },
{ Rn, "Radon", "Rn", 222, false, { 120, kNA, 145, 142, 145, 133, kNA } },
{ Fr, "Francium", "Fr", 223, true, { kNA, kNA, kNA, 223, 218, kNA, kNA } },
{ Ra, "Radium", "Ra", 226, true, { kNA, 215, kNA, 201, 173, 159, kNA } },
{ Ac, "Actinium", "Ac", 227, true, { kNA, 195, kNA, 186, 153, 140, kNA } },
{ Th, "Thorium", "Th", 232.04, true, { kNA, 180, kNA, 175, 143, 136, kNA } },
{ Pa, "Protactinium", "Pa", 231.04, true, { kNA, 180, kNA, 169, 138, 129, kNA } },
{ U, "Uranium", "U", 238.03, true, { kNA, 175, kNA, 170, 134, 118, 186 } },
{ Np, "Neptunium", "Np", 237, true, { kNA, 175, kNA, 171, 136, 116, kNA } },
{ Pu, "Plutonium", "Pu", 244, true, { kNA, 175, kNA, 172, 135, kNA, kNA } },
{ Am, "Americium", "Am", 243, true, { kNA, 175, kNA, 166, 135, kNA, kNA } },
{ Cm, "Curium", "Cm", 247, true, { kNA, kNA, kNA, 166, 136, kNA, kNA } },
{ Bk, "Berkelium", "Bk", 247, true, { kNA, kNA, kNA, 168, 139, kNA, kNA } },
{ Cf, "Californium", "Cf", 251, true, { kNA, kNA, kNA, 168, 140, kNA, kNA } },
{ Es, "Einsteinium", "Es", 252, true, { kNA, kNA, kNA, 165, 140, kNA, kNA } },
{ Fm, "Fermium", "Fm", 257, true, { kNA, kNA, kNA, 167, kNA, kNA, kNA } },
{ Md, "Mendelevium", "Md", 258, true, { kNA, kNA, kNA, 173, 139, kNA, kNA } },
{ No, "Nobelium", "No", 259, true, { kNA, kNA, kNA, 176, kNA, kNA, kNA } },
{ Lr, "Lawrencium", "Lr", 266, true, { kNA, kNA, kNA, 161, 141, kNA, kNA } },
{ Rf, "Rutherfordium", "Rf", 267, true, { kNA, kNA, kNA, 157, 140, 131, kNA } },
{ Db, "Dubnium", "Db", 268, true, { kNA, kNA, kNA, 149, 136, 126, kNA } },
{ Sg, "Seaborgium", "Sg", 269, true, { kNA, kNA, kNA, 143, 128, 121, kNA } },
{ Bh, "Bohrium", "Bh", 270, true, { kNA, kNA, kNA, 141, 128, 119, kNA } },
{ Hs, "Hassium", "Hs", 277, true, { kNA, kNA, kNA, 134, 125, 118, kNA } },
{ Mt, "Meitnerium", "Mt", 278, true, { kNA, kNA, kNA, 129, 125, 113, kNA } },
{ Ds, "Darmstadtium", "Ds", 281, true, { kNA, kNA, kNA, 128, 116, 112, kNA } },
{ Rg, "Roentgenium", "Rg", 282, true, { kNA, kNA, kNA, 121, 116, 118, kNA } },
{ Cn, "Copernicium", "Cn", 285, true, { kNA, kNA, kNA, 122, 137, 130, kNA } },
{ Nh, "Nihonium", "Nh", 286, true, { kNA, kNA, kNA, 136, kNA, kNA, kNA } },
{ Fl, "Flerovium", "Fl", 289, true, { kNA, kNA, kNA, 143, kNA, kNA, kNA } },
{ Mc, "Moscovium", "Mc", 290, true, { kNA, kNA, kNA, 162, kNA, kNA, kNA } },
{ Lv, "Livermorium", "Lv", 293, true, { kNA, kNA, kNA, 175, kNA, kNA, kNA } },
{ Ts, "Tennessine", "Ts", 294, true, { kNA, kNA, kNA, 165, kNA, kNA, kNA } },
{ Og, "Oganesson", "Og", 294, true, { kNA, kNA, kNA, 157, kNA, kNA, kNA } }
};
{ Nn, "Unknown", "Nn", 0, false, { kNA, kNA, kNA, kNA, kNA, kNA, kNA } }, // 0 Nn Unknown
{ H, "Hydrogen", "H", 1.008, false, { 53, 25, 37, 32, kNA, kNA, 120 } }, // 1 H Hydro­gen
{ He, "Helium", "He", 4.0026, false, { 31, kNA, 32, 46, kNA, kNA, 140 } }, // 2 He He­lium
{ Li, "Lithium", "Li", 6.94, true, { 167, 145, 134, 133, 124, kNA, 182 } }, // 3 Li Lith­ium
{ Be, "Beryllium", "Be", 9.0122, true, { 112, 105, 90, 102, 90, 85, kNA } }, // 4 Be Beryl­lium
{ B, "Boron", "B", 10.81, true, { 87, 85, 82, 85, 78, 73, kNA } }, // 5 B Boron
{ C, "Carbon", "C", 12.011, false, { 67, 70, 77, 75, 67, 60, 170 } }, // 6 C Carbon
{ N, "Nitrogen", "N", 14.007, false, { 56, 65, 75, 71, 60, 54, 155 } }, // 7 N Nitro­gen
{ O, "Oxygen", "O", 15.999, false, { 48, 60, 73, 63, 57, 53, 152 } }, // 8 O Oxy­gen
{ F, "Fluorine", "F", 18.998, false, { 42, 50, 71, 64, 59, 53, 147 } }, // 9 F Fluor­ine
{ Ne, "Neon", "Ne", 20.180, false, { 38, kNA, 69, 67, 96, kNA, 154 } }, // 10 Ne Neon
{ Na, "Sodium", "Na", 22.990, true, { 190, 180, 154, 155, 160, kNA, 227 } }, // 11 Na So­dium
{ Mg, "Magnesium", "Mg", 24.305, true, { 145, 150, 130, 139, 132, 127, 173 } }, // 12 Mg Magne­sium
{ Al, "Aluminium", "Al", 26.982, true, { 118, 125, 118, 126, 113, 111, kNA } }, // 13 Al Alumin­ium
{ Si, "Silicon", "Si", 28.085, true, { 111, 110, 111, 116, 107, 102, 210 } }, // 14 Si Sili­con
{ P, "Phosphorus", "P", 30.974, false, { 98, 100, 106, 111, 102, 94, 180 } }, // 15 P Phos­phorus
{ S, "Sulfur", "S", 32.06, false, { 88, 100, 102, 103, 94, 95, 180 } }, // 16 S Sulfur
{ Cl, "Chlorine", "Cl", 35.45, false, { 79, 100, 99, 99, 95, 93, 175 } }, // 17 Cl Chlor­ine
{ Ar, "Argon", "Ar", 39.948, false, { 71, kNA, 97, 96, 107, 96, 188 } }, // 18 Ar Argon
{ K, "Potassium", "K", 39.098, true, { 243, 220, 196, 196, 193, kNA, 275 } }, // 19 K Potas­sium
{ Ca, "Calcium", "Ca", 40.078, true, { 194, 180, 174, 171, 147, 133, kNA } }, // 20 Ca Cal­cium
{ Sc, "Scandium", "Sc", 44.956, true, { 184, 160, 144, 148, 116, 114, kNA } }, // 21 Sc Scan­dium
{ Ti, "Titanium", "Ti", 47.867, true, { 176, 140, 136, 136, 117, 108, kNA } }, // 22 Ti Tita­nium
{ V, "Vanadium", "V", 50.942, true, { 171, 135, 125, 134, 112, 106, kNA } }, // 23 V Vana­dium
{ Cr, "Chromium", "Cr", 51.996, true, { 166, 140, 127, 122, 111, 103, kNA } }, // 24 Cr Chrom­ium
{ Mn, "Manganese", "Mn", 54.938, true, { 161, 140, 139, 119, 105, 103, kNA } }, // 25 Mn Manga­nese
{ Fe, "Iron", "Fe", 55.845, true, { 156, 140, 125, 116, 109, 102, kNA } }, // 26 Fe Iron
{ Co, "Cobalt", "Co", 58.933, true, { 152, 135, 126, 111, 103, 96, kNA } }, // 27 Co Cobalt
{ Ni, "Nickel", "Ni", 58.693, true, { 149, 135, 121, 110, 101, 101, 163 } }, // 28 Ni Nickel
{ Cu, "Copper", "Cu", 63.546, true, { 145, 135, 138, 112, 115, 120, 140 } }, // 29 Cu Copper
{ Zn, "Zinc", "Zn", 65.38, true, { 142, 135, 131, 118, 120, kNA, 139 } }, // 30 Zn Zinc
{ Ga, "Gallium", "Ga", 69.723, true, { 136, 130, 126, 124, 117, 121, 187 } }, // 31 Ga Gallium
{ Ge, "Germanium", "Ge", 72.630, true, { 125, 125, 122, 121, 111, 114, kNA } }, // 32 Ge Germa­nium
{ As, "Arsenic", "As", 74.922, true, { 114, 115, 119, 121, 114, 106, 185 } }, // 33 As Arsenic
{ Se, "Selenium", "Se", 78.971, false, { 103, 115, 116, 116, 107, 107, 190 } }, // 34 Se Sele­nium
{ Br, "Bromine", "Br", 79.904, false, { 94, 115, 114, 114, 109, 110, 185 } }, // 35 Br Bromine
{ Kr, "Krypton", "Kr", 83.798, false, { 88, kNA, 110, 117, 121, 108, 202 } }, // 36 Kr Kryp­ton
{ Rb, "Rubidium", "Rb", 85.468, true, { 265, 235, 211, 210, 202, kNA, kNA } }, // 37 Rb Rubid­ium
{ Sr, "Strontium", "Sr", 87.62, true, { 219, 200, 192, 185, 157, 139, kNA } }, // 38 Sr Stront­ium
{ Y, "Yttrium", "Y", 88.906, true, { 212, 180, 162, 163, 130, 124, kNA } }, // 39 Y Yttrium
{ Zr, "Zirconium", "Zr", 91.224, true, { 206, 155, 148, 154, 127, 121, kNA } }, // 40 Zr Zirco­nium
{ Nb, "Niobium", "Nb", 92.906, true, { 198, 145, 137, 147, 125, 116, kNA } }, // 41 Nb Nio­bium
{ Mo, "Molybdenum", "Mo", 95.95, true, { 190, 145, 145, 138, 121, 113, kNA } }, // 42 Mo Molyb­denum
{ Tc, "Technetium", "Tc", 98, true, { 183, 135, 156, 128, 120, 110, kNA } }, // 43 Tc Tech­netium
{ Ru, "Ruthenium", "Ru", 101.07, true, { 178, 130, 126, 125, 114, 103, kNA } }, // 44 Ru Ruthe­nium
{ Rh, "Rhodium", "Rh", 102.91, true, { 173, 135, 135, 125, 110, 106, kNA } }, // 45 Rh Rho­dium
{ Pd, "Palladium", "Pd", 106.42, true, { 169, 140, 131, 120, 117, 112, 163 } }, // 46 Pd Pallad­ium
{ Ag, "Silver", "Ag", 107.87, true, { 165, 160, 153, 128, 139, 137, 172 } }, // 47 Ag Silver
{ Cd, "Cadmium", "Cd", 112.41, true, { 161, 155, 148, 136, 144, kNA, 158 } }, // 48 Cd Cad­mium
{ In, "Indium", "In", 114.82, true, { 156, 155, 144, 142, 136, 146, 193 } }, // 49 In Indium
{ Sn, "Tin", "Sn", 118.71, true, { 145, 145, 141, 140, 130, 132, 217 } }, // 50 Sn Tin
{ Sb, "Antimony", "Sb", 121.76, false, { 133, 145, 138, 140, 133, 127, kNA } }, // 51 Sb Anti­mony
{ Te, "Tellurium", "Te", 127.60, false, { 123, 140, 135, 136, 128, 121, 206 } }, // 52 Te Tellurium
{ I, "Iodine", "I", 126.90, false, { 115, 140, 133, 133, 129, 125, 198 } }, // 53 I Iodine
{ Xe, "Xenon", "Xe", 131.29, false, { 108, kNA, 130, 131, 135, 122, 216 } }, // 54 Xe Xenon
{ Cs, "Caesium", "Cs", 132.91, true, { 298, 260, 225, 232, 209, kNA, kNA } }, // 55 Cs Cae­sium
{ Ba, "Barium", "Ba", 137.33, true, { 253, 215, 198, 196, 161, 149, kNA } }, // 56 Ba Ba­rium
{ La, "Lanthanum", "La", 138.91, true, { kNA, 195, 169, 180, 139, 139, kNA } }, // 57 La Lan­thanum
{ Ce, "Cerium", "Ce", 140.12, true, { kNA, 185, kNA, 163, 137, 131, kNA } }, // 58 Ce Cerium
{ Pr, "Praseodymium", "Pr", 140.91, true, { 247, 185, kNA, 176, 138, 128, kNA } }, // 59 Pr Praseo­dymium
{ Nd, "Neodymium", "Nd", 144.24, true, { 206, 185, kNA, 174, 137, kNA, kNA } }, // 60 Nd Neo­dymium
{ Pm, "Promethium", "Pm", 145, true, { 205, 185, kNA, 173, 135, kNA, kNA } }, // 61 Pm Prome­thium
{ Sm, "Samarium", "Sm", 150.36, true, { 238, 185, kNA, 172, 134, kNA, kNA } }, // 62 Sm Sama­rium
{ Eu, "Europium", "Eu", 151.96, true, { 231, 185, kNA, 168, 134, kNA, kNA } }, // 63 Eu Europ­ium
{ Gd, "Gadolinium", "Gd", 157.25, true, { 233, 180, kNA, 169, 135, 132, kNA } }, // 64 Gd Gadolin­ium
{ Tb, "Terbium", "Tb", 158.93, true, { 225, 175, kNA, 168, 135, kNA, kNA } }, // 65 Tb Ter­bium
{ Dy, "Dysprosium", "Dy", 162.50, true, { 228, 175, kNA, 167, 133, kNA, kNA } }, // 66 Dy Dyspro­sium
{ Ho, "Holmium", "Ho", 164.93, true, { 226, 175, kNA, 166, 133, kNA, kNA } }, // 67 Ho Hol­mium
{ Er, "Erbium", "Er", 167.26, true, { 226, 175, kNA, 165, 133, kNA, kNA } }, // 68 Er Erbium
{ Tm, "Thulium", "Tm", 168.93, true, { 222, 175, kNA, 164, 131, kNA, kNA } }, // 69 Tm Thulium
{ Yb, "Ytterbium", "Yb", 173.05, true, { 222, 175, kNA, 170, 129, kNA, kNA } }, // 70 Yb Ytter­bium
{ Lu, "Lutetium", "Lu", 174.97, true, { 217, 175, 160, 162, 131, 131, kNA } }, // 71 Lu Lute­tium
{ Hf, "Hafnium", "Hf", 178.49, true, { 208, 155, 150, 152, 128, 122, kNA } }, // 72 Hf Haf­nium
{ Ta, "Tantalum", "Ta", 180.95, true, { 200, 145, 138, 146, 126, 119, kNA } }, // 73 Ta Tanta­lum
{ W, "Tungsten", "W", 183.84, true, { 193, 135, 146, 137, 120, 115, kNA } }, // 74 W Tung­sten
{ Re, "Rhenium", "Re", 186.21, true, { 188, 135, 159, 131, 119, 110, kNA } }, // 75 Re Rhe­nium
{ Os, "Osmium", "Os", 190.23, true, { 185, 130, 128, 129, 116, 109, kNA } }, // 76 Os Os­mium
{ Ir, "Iridium", "Ir", 192.22, true, { 180, 135, 137, 122, 115, 107, kNA } }, // 77 Ir Iridium
{ Pt, "Platinum", "Pt", 195.08, true, { 177, 135, 128, 123, 112, 110, 175 } }, // 78 Pt Plat­inum
{ Au, "Gold", "Au", 196.97, true, { 174, 135, 144, 124, 121, 123, 166 } }, // 79 Au Gold
{ Hg, "Mercury", "Hg", 200.59, true, { 171, 150, 149, 133, 142, kNA, 155 } }, // 80 Hg Mer­cury
{ Tl, "Thallium", "Tl", 204.38, true, { 156, 190, 148, 144, 142, 150, 196 } }, // 81 Tl Thallium
{ Pb, "Lead", "Pb", 207.2, true, { 154, 180, 147, 144, 135, 137, 202 } }, // 82 Pb Lead
{ Bi, "Bismuth", "Bi", 208.98, true, { 143, 160, 146, 151, 141, 135, kNA } }, // 83 Bi Bis­muth
{ Po, "Polonium", "Po", 209, true, { 135, 190, kNA, 145, 135, 129, kNA } }, // 84 Po Polo­nium
{ At, "Astatine", "At", 210, false, { 127, kNA, kNA, 147, 138, 138, kNA } }, // 85 At Asta­tine
{ Rn, "Radon", "Rn", 222, false, { 120, kNA, 145, 142, 145, 133, kNA } }, // 86 Rn Radon
{ Fr, "Francium", "Fr", 223, true, { kNA, kNA, kNA, 223, 218, kNA, kNA } }, // 87 Fr Fran­cium
{ Ra, "Radium", "Ra", 226, true, { kNA, 215, kNA, 201, 173, 159, kNA } }, // 88 Ra Ra­dium
{ Ac, "Actinium", "Ac", 227, true, { kNA, 195, kNA, 186, 153, 140, kNA } }, // 89 Ac Actin­ium
{ Th, "Thorium", "Th", 232.04, true, { kNA, 180, kNA, 175, 143, 136, kNA } }, // 90 Th Thor­ium
{ Pa, "Protactinium", "Pa", 231.04, true, { kNA, 180, kNA, 169, 138, 129, kNA } }, // 91 Pa Protac­tinium
{ U, "Uranium", "U", 238.03, true, { kNA, 175, kNA, 170, 134, 118, 186 } }, // 92 U Ura­nium
{ Np, "Neptunium", "Np", 237, true, { kNA, 175, kNA, 171, 136, 116, kNA } }, // 93 Np Neptu­nium
{ Pu, "Plutonium", "Pu", 244, true, { kNA, 175, kNA, 172, 135, kNA, kNA } }, // 94 Pu Pluto­nium
{ Am, "Americium", "Am", 243, true, { kNA, 175, kNA, 166, 135, kNA, kNA } }, // 95 Am Ameri­cium
{ Cm, "Curium", "Cm", 247, true, { kNA, kNA, kNA, 166, 136, kNA, kNA } }, // 96 Cm Curium
{ Bk, "Berkelium", "Bk", 247, true, { kNA, kNA, kNA, 168, 139, kNA, kNA } }, // 97 Bk Berkel­ium
{ Cf, "Californium", "Cf", 251, true, { kNA, kNA, kNA, 168, 140, kNA, kNA } }, // 98 Cf Califor­nium
{ Es, "Einsteinium", "Es", 252, true, { kNA, kNA, kNA, 165, 140, kNA, kNA } }, // 99 Es Einstei­nium
{ Fm, "Fermium", "Fm", 257, true, { kNA, kNA, kNA, 167, kNA, kNA, kNA } }, // 100 Fm Fer­mium
{ Md, "Mendelevium", "Md", 258, true, { kNA, kNA, kNA, 173, 139, kNA, kNA } }, // 101 Md Mende­levium
{ No, "Nobelium", "No", 259, true, { kNA, kNA, kNA, 176, kNA, kNA, kNA } }, // 102 No Nobel­ium
{ Lr, "Lawrencium", "Lr", 266, true, { kNA, kNA, kNA, 161, 141, kNA, kNA } }, // 103 Lr Lawren­cium
{ Rf, "Rutherfordium", "Rf", 267, true, { kNA, kNA, kNA, 157, 140, 131, kNA } }, // 104 Rf Ruther­fordium
{ Db, "Dubnium", "Db", 268, true, { kNA, kNA, kNA, 149, 136, 126, kNA } }, // 105 Db Dub­nium
{ Sg, "Seaborgium", "Sg", 269, true, { kNA, kNA, kNA, 143, 128, 121, kNA } }, // 106 Sg Sea­borgium
{ Bh, "Bohrium", "Bh", 270, true, { kNA, kNA, kNA, 141, 128, 119, kNA } }, // 107 Bh Bohr­ium
{ Hs, "Hassium", "Hs", 277, true, { kNA, kNA, kNA, 134, 125, 118, kNA } }, // 108 Hs Has­sium
{ Mt, "Meitnerium", "Mt", 278, true, { kNA, kNA, kNA, 129, 125, 113, kNA } }, // 109 Mt Meit­nerium
{ Ds, "Darmstadtium", "Ds", 281, true, { kNA, kNA, kNA, 128, 116, 112, kNA } }, // 110 Ds Darm­stadtium
{ Rg, "Roentgenium", "Rg", 282, true, { kNA, kNA, kNA, 121, 116, 118, kNA } }, // 111 Rg Roent­genium
{ Cn, "Copernicium", "Cn", 285, true, { kNA, kNA, kNA, 122, 137, 130, kNA } }, // 112 Cn Coper­nicium
{ Nh, "Nihonium", "Nh", 286, true, { kNA, kNA, kNA, 136, kNA, kNA, kNA } }, // 113 Nh Nihon­ium
{ Fl, "Flerovium", "Fl", 289, true, { kNA, kNA, kNA, 143, kNA, kNA, kNA } }, // 114 Fl Flerov­ium
{ Mc, "Moscovium", "Mc", 290, true, { kNA, kNA, kNA, 162, kNA, kNA, kNA } }, // 115 Mc Moscov­ium
{ Lv, "Livermorium", "Lv", 293, true, { kNA, kNA, kNA, 175, kNA, kNA, kNA } }, // 116 Lv Liver­morium
{ Ts, "Tennessine", "Ts", 294, true, { kNA, kNA, kNA, 165, kNA, kNA, kNA } }, // 117 Ts Tenness­ine
{ Og, "Oganesson", "Og", 294, true, { kNA, kNA, kNA, 157, kNA, kNA, kNA } } // 118 Og Oga­nesson
};
uint32 kKnownAtomsCount = sizeof(kKnownAtoms) / sizeof(AtomTypeInfo);
......@@ -1227,7 +1227,7 @@ AtomTypeTraits::AtomTypeTraits(const string& symbol)
AtomTypeTraits::AtomTypeTraits(AtomType t)
{
if (t < H or t > Og)
if (t < H or t >= data::kKnownAtomsCount)
throw invalid_argument("atomType out of range");
mInfo = &data::kKnownAtoms[t];
......
......@@ -1429,8 +1429,6 @@ void Category::erase(Condition&& cond)
remove.push_back(r);
}
cerr << "Erasing " << remove.size() << " entries" << endl;
for (auto r: remove)
erase(r);
}
......@@ -1456,13 +1454,6 @@ void Category::erase(Row r)
for (auto& link: mValidator->getLinksForParent(mName))
{
cerr << "Follow links from " << endl
<< "\t" << mName << " - " << ba::join(link->mParentKeys, ", ")
<< "\t" << "to" << endl
<< "\t" << link->mChildCategory << " - " << ba::join(link->mChildKeys, ", ")
<< endl;
auto childCat = mDb.get(link->mChildCategory);
if (childCat == nullptr)
continue;
......@@ -1475,67 +1466,10 @@ cerr << "Follow links from " << endl
cond = move(cond) && (Key(link->mChildKeys[ix]) == value);
}
cerr << "about to erase: " << cond << endl;
childCat->erase(move(cond));
}
// for (auto& col: mColumns)
// {
// for (auto& l: mValidator->getLinksForParent(mName, col.mName))
// {
// assert(l.mParent == col.mValidator);
//
//cerr << __FILE__ << ':' << __LINE__ << " "
// << l.mParent->mCategory->mName << '.' << l.mParent->mTag << " linked to "
// << l.mChild->mCategory->mName << '.' << l.mChild->mTag << endl;
//
//// if (not keys.count(col.mName))
//// continue;
//
//cerr << __FILE__ << ':' << __LINE__ << endl;
//
// const char* value = r[col.mName].c_str();
//
// auto childCat = mDb.get(l.mChild->mCategory->mName);
// if (childCat == nullptr)
// continue;
//
//cerr << __FILE__ << ':' << __LINE__ << endl;
//
// auto rows = childCat->find(Key(l.mChild->mTag) == value);
// for (auto& cr: rows)
// {
//cerr << __FILE__ << ':' << __LINE__ << " erase" << endl;
// childCat->erase(cr);
// }
// }
//
//// auto iv = col.mValidator;
//// if (iv == nullptr or iv->mChildren.empty())
//// continue;
////
//// if (not keys.count(col.mName))
//// continue;
////
//// const char* value = r[col.mName].c_str();
////
//// for (auto child: iv->mChildren)
//// {
//// if (child->mCategory == nullptr)
//// continue;
////
//// auto childCat = mDb.get(child->mCategory->mName);
//// if (childCat == nullptr)
//// continue;
////
//// auto rows = childCat->find(Key(child->mTag) == value);
//// for (auto& cr: rows)
//// childCat->erase(cr);
//// }
// }
if (mHead == nullptr)
throw runtime_error("erase");
......@@ -1561,6 +1495,15 @@ cerr << "about to erase: " << cond << endl;
}
}
}
// reset mTail, if needed
if (r == mTail)
{
mTail = mHead;
if (mTail != nullptr)
while (mTail->mNext != nullptr)
mTail = mTail->mNext;
}
}
void Category::getTagOrder(vector<string>& tags) const
......@@ -2018,7 +1961,6 @@ void Row::assign(size_t column, const string& value, bool emplacing)
auto cat = mData->mCategory;
auto& col = cat->mColumns[column];
auto& db = cat->mDb;
const char* oldValue = nullptr;
for (auto iv = mData->mValues; iv != nullptr; iv = iv->mNext)
......@@ -2134,8 +2076,6 @@ void Row::swap(size_t cix, ItemRow* a, ItemRow* b)
throw logic_error("Categories not same in swap");
auto cat = a->mCategory;
auto& col = cat->mColumns[cix];
auto& db = cat->mDb;
// If the field is part of the Key for this Category, remove it from the index
// before updating
......
......@@ -546,7 +546,7 @@ bool Compound::isSugar() const
CompoundAtom Compound::getAtomById(const string& atomId) const
{
CompoundAtom result;
CompoundAtom result = {};
for (auto& a: mAtoms)
{
if (a.id == atomId)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment