source: trunk/src/core/RpUnitsStd.cc @ 77

Last change on this file since 77 was 68, checked in by dkearney, 19 years ago

fixed the python rpunits setup script so now it really finds PyRpUnits?.cc

added more conversions to RpUnitsStd?.[h,cc]

added static convert function to RpUnits.[h,cc] so now users can ask for a
conversion as without having to make an RpUnits Object. instead, the
user specifies the value to be converted (value with attached units) as well
as the units we should convert to and if they want units in the returned
string. if the units exist, the conversion is done, if not, the original
string should be returned.

also added the ability to load preset units into the dictionary.
use the static function RpUnits::addPresets(...) in c++ this is done
automatically in python (although, maybe it shouldn't be).

File size: 3.2 KB
Line 
1#ifdef __cplusplus
2extern "C" {
3#endif
4
5/****************************************
6 * METRIC CONVERSIONS
7 ****************************************/
8
9double centi2base (double centi)
10{
11   return centi*1e-2;   
12}
13
14double milli2base (double milli)
15{
16    return milli*1e-3;
17}
18
19double micro2base (double micro)
20{
21    return micro*1e-6;
22}
23
24double nano2base (double nano)
25{
26    return nano*1e-9;
27}
28
29double pico2base (double pico)
30{
31    return pico*1e-12;
32}
33
34double femto2base (double femto)
35{
36    return femto*1e-15;
37}
38
39double atto2base (double atto)
40{
41    return atto*1e-18;
42}
43
44double kilo2base (double kilo)
45{
46    return kilo*1e3;
47}
48
49double mega2base (double mega)
50{
51    return mega*1e6;
52}
53
54double giga2base (double giga)
55{
56    return giga*1e9;
57}
58
59double tera2base (double tera)
60{
61    return tera*1e12;
62}
63
64double peta2base (double peta)
65{
66    return peta*1e15;
67}
68
69double base2centi (double base)
70{
71    return base*1e2;   
72}
73
74double base2milli (double base)
75{
76    return base*1e3;
77}
78
79double base2micro (double base)
80{
81    return base*1e6;
82}
83
84double base2nano (double base)
85{
86    return base*1e9;
87}
88
89double base2pico (double base)
90{
91    return base*1e12;
92}
93
94double base2femto (double base)
95{
96    return base*1e15;
97}
98
99double base2atto (double base)
100{
101    return base*1e18;
102}
103
104double base2kilo (double base)
105{
106    return base*1e-3;
107}
108
109double base2mega (double base)
110{
111    return base*1e-6;
112}
113
114double base2giga (double base)
115{
116    return base*1e-9;
117}
118
119double base2tera (double base)
120{
121    return base*1e-12;
122}
123
124double base2peta (double base)
125{
126    return base*1e-15;
127}
128
129
130
131/****************************************
132 * METRIC TO NON-METRIC CONVERSIONS
133 * LENGTH CONVERSIONS
134 * http://www.nodc.noaa.gov/dsdt/ucg/
135 ****************************************/
136
137double angstrom2meter (double angstrom)
138{
139        return angstrom*1.0e-10;
140}
141
142double meter2angstrom (double meters)
143{
144        return meters*1.0e10;
145}
146
147double meter2inch (double m)
148{
149        return (m*39.37008);
150}
151
152double inch2meter (double in)
153{
154        return (in/39.37008);
155}
156
157double meter2feet (double m)
158{
159        return (m*3.280840);
160}
161
162double feet2meter (double ft)
163{
164        return (ft/3.280840);
165}
166
167double meter2yard (double m)
168{
169        return (m*1.093613);
170}
171
172double yard2meter (double yd)
173{
174        return (yd/1.093613);
175}
176
177/****************************************
178 * TEMPERATURE CONVERSIONS
179 ****************************************/
180
181double fahrenheit2centigrade (double F)
182{
183        return ((F-32.0)/(9.0/5.0));
184}
185
186double centigrade2fahrenheit (double C)
187{
188        return ((C*(9.0/5.0))+32.0);
189}
190
191double centigrade2kelvin (double C)
192{
193        return (C+273.15);
194}
195
196double kelvin2centigrade (double K)
197{
198        return (K-273.15);
199}
200
201double rankine2kelvin (double R)
202{
203        return ((9.0/5.0)*R);
204}
205
206double kelvin2rankine (double K)
207{
208        return ((5.0/9.0)*K);
209}
210
211double fahrenheit2kelvin (double F)
212{
213        return ((F+459.67)*(5.0/9.0));
214}
215
216double kelvin2fahrenheit (double K)
217{
218        return (((9.0/5.0)*K)-459.67);
219}
220
221/****************************************
222 * ENERGY CONVERSIONS
223 ****************************************/
224
225double electronVolt2joule (double eV)
226{
227        return (eV*1.602177e-19);
228}
229
230double joule2electronVolt (double J)
231{
232        return (J*1.602177e19);
233}
234
235#ifdef __cplusplus
236}
237#endif
Note: See TracBrowser for help on using the repository browser.