Restructure and rework the code
[whatever.git] / util.cpp
blob0d72f22343f7059df0fd70e870caed952ae3f1a8
1 #include"util.h"
2 #include<vector>
4 using namespace std;
6 // quick element add to vector
7 inline void s(string _, string a, double b, vector<element>& e)
9 element c;
10 c.name = a;
11 c.n = e.size() + 1;
12 c.symbol = _;
13 c.mass = b;
14 e.push_back(c);
17 void register_elements(vector<element>& e)
19 s("H", "Hydrogen", 1.0080, e);
20 s("He", "Helium", 4.0026, e);
21 s("Li", "Lithium" ,6.94, e);
22 s("Be", "Beryllium", 9.0122, e);
23 s("B", "Boron", 10.81, e);
24 s("C", "Carbon", 12.011, e);
25 s("N", "Nitrogen", 14.007, e);
26 s("O", "Oxygen", 15.999, e);
27 s("F", "Fluorine", 18.998, e);
28 s("Ne", "Neon", 20.180, e);
29 s("Na", "Sodium", 22.990, e);
30 s("Mg", "Magnesium", 24.305, e);
31 s("Al", "", 26.982, e);
32 s("Si", "", 28.085, e);
33 s("P", "", 30.974, e);
34 s("S", "", 32.06, e);
35 s("Cl", "", 35.45, e);
36 s("Ar", "", 39.95, e);
37 s("K", "", 39.098, e);
38 s("Ca", "", 40.078, e);
39 s("Sc", "", 44.956, e);
40 s("Ti", "", 47.867, e);
41 s("V", "", 50.942, e);
42 s("Cr", "", 51.996, e);
43 s("Mn", "", 54.938, e);
44 s("Fe", "", 55.845, e);
45 s("Co", "", 58.933, e);
46 s("Ni", "", 58.693, e);
47 s("Cu", "", 63.546, e);
48 s("Zn", "", 65.38, e);
49 s("Ga", "", 69.723, e);
50 s("Ge", "", 72.630, e);
51 s("As", "", 74.922, e);
52 s("Se", "", 78.971, e);
53 s("Br", "", 79.904, e);
54 s("Kr", "", 83.798, e);
55 s("Rb", "", 85.468, e);
56 s("Sr", "", 87.62, e);
57 s("Y", "", 88.906, e);
58 s("Zr", "", 91.224, e);
59 s("Nb", "", 92.906, e);
60 s("Mo", "", 95.95, e);
61 s("Tc", "", 97, e);
62 s("Ru", "", 101.07, e);
63 s("Rh", "", 102.91, e);
64 s("Pd", "", 106.42, e);
65 s("Ag", "", 107.87, e);
66 s("Cd", "", 112.41, e);
67 s("In", "", 114.82, e);
68 s("Sn", "", 118.71, e);
69 s("Sb", "", 121.76, e);
70 s("Te", "", 127.60, e);
71 s("I", "", 126.90, e);
72 s("Xe", "", 131.29, e);
73 s("Cs", "", 132.91, e);
74 s("Ba", "", 137.33, e);
75 s("La", "", 138.91, e);
76 s("Ce", "", 140.12, e);
77 s("Pr", "", 140.91, e);
78 s("Nd", "", 144.24, e);
79 s("Pm", "", 145, e);
80 s("Sm", "", 150.36, e);
81 s("Eu", "", 151.96, e);
82 s("Gd", "", 157.25, e);
83 s("Tb", "", 158.93, e);
84 s("Dy", "", 162.50, e);
85 s("Ho", "", 164.93, e);
86 s("Er", "", 167.26, e);
87 s("Tm", "", 168.93, e);
88 s("Yb", "", 173.05, e);
89 s("Lu", "", 174.97, e);
90 s("Hf", "", 178.49, e);
91 s("Ta", "", 180.95, e);
92 s("W", "", 183.84, e);
93 s("Re", "", 186.21, e);
94 s("Os", "", 190.23, e);
95 s("Ir", "", 192.22, e);
96 s("Pt", "", 195.08, e);
97 s("Au", "", 196.97, e);
98 s("Hg", "", 200.59, e);
99 s("Tl", "", 204.38, e);
100 s("Pb", "", 207.2, e);
101 s("Bi", "", 208.98, e);
102 s("Po", "", 209, e);
103 s("At", "", 210, e);
104 s("Rn", "", 222, e);
105 s("Fr", "", 223, e);
106 s("Ra", "", 226, e);
107 s("Ac", "", 227, e);
108 s("Th", "", 232.04, e);
109 s("Pa", "", 231.04, e);
110 s("U", "", 238.03, e);
111 s("Np", "", 237, e);
112 s("Pu", "", 244, e);
113 s("Am", "", 243, e);
114 s("Cm", "", 247, e);
115 s("Bk", "", 247, e);
116 s("Cf", "", 251, e);
117 s("Es", "", 252, e);
118 s("Fm", "", 257, e);
119 s("Md", "", 258, e);
120 s("No", "", 259, e);
121 s("Lr", "", 262, e);
122 s("Rf", "", 267, e);
123 s("Db", "", 268, e);
124 s("Sg", "", 269, e);
125 s("Bh", "", 270, e);
126 s("Hs", "", 269, e);
127 s("Mt", "", 277, e);
128 s("Ds", "", 281, e);
129 s("Rn", "", 282, e);
130 s("Cn", "", 285, e);
131 s("Nh", "", 286, e);
132 s("Fl", "", 290, e);
133 s("Mc", "", 290, e);
134 s("Lv", "", 293, e);
135 s("Ts", "", 294, e);
136 s("Og", "", 294, e);
139 int find_symbol(vector<element> e, string q)
141 for (int i = 0; i < e.size(); i++)
143 if (e[i].symbol == q)
145 return i;
148 return -1;