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

Last change on this file since 489 was 382, checked in by dkearney, 18 years ago

added angle conversions (rad,deg,grad)

File size: 4.4 KB
Line 
1/*
2 * ======================================================================
3 *  Copyright (c) 2004-2005  Purdue Research Foundation
4 *
5 *  See the file "license.terms" for information on usage and
6 *  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7 * ======================================================================
8 */
9#include <RpUnitsStd.h>
10#include <math.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/****************************************
17 * METRIC CONVERSIONS
18 ****************************************/
19
20
21double centi2base (double centi)
22{
23   return centi*1e-2;
24}
25
26double milli2base (double milli)
27{
28    return milli*1e-3;
29}
30
31double micro2base (double micro)
32{
33    return micro*1e-6;
34}
35
36double nano2base (double nano)
37{
38    return nano*1e-9;
39}
40
41double pico2base (double pico)
42{
43    return pico*1e-12;
44}
45
46double femto2base (double femto)
47{
48    return femto*1e-15;
49}
50
51double atto2base (double atto)
52{
53    return atto*1e-18;
54}
55
56double kilo2base (double kilo)
57{
58    return kilo*1e3;
59}
60
61double mega2base (double mega)
62{
63    return mega*1e6;
64}
65
66double giga2base (double giga)
67{
68    return giga*1e9;
69}
70
71double tera2base (double tera)
72{
73    return tera*1e12;
74}
75
76double peta2base (double peta)
77{
78    return peta*1e15;
79}
80
81double base2centi (double base)
82{
83    return base*1e2;
84}
85
86double base2milli (double base)
87{
88    return base*1e3;
89}
90
91double base2micro (double base)
92{
93    return base*1e6;
94}
95
96double base2nano (double base)
97{
98    return base*1e9;
99}
100
101double base2pico (double base)
102{
103    return base*1e12;
104}
105
106double base2femto (double base)
107{
108    return base*1e15;
109}
110
111double base2atto (double base)
112{
113    return base*1e18;
114}
115
116double base2kilo (double base)
117{
118    return base*1e-3;
119}
120
121double base2mega (double base)
122{
123    return base*1e-6;
124}
125
126double base2giga (double base)
127{
128    return base*1e-9;
129}
130
131double base2tera (double base)
132{
133    return base*1e-12;
134}
135
136double base2peta (double base)
137{
138    return base*1e-15;
139}
140
141/****************************************
142 * METRIC TO NON-METRIC CONVERSIONS
143 * LENGTH CONVERSIONS
144 * http://www.nodc.noaa.gov/dsdt/ucg/
145 ****************************************/
146
147double angstrom2meter (double angstrom)
148{
149    return angstrom*(1.0e-10);
150}
151
152double meter2angstrom (double meter)
153{
154    return meter*(1.0e10);
155}
156
157double meter2inch (double meter)
158{
159    return meter*(39.37008);
160}
161
162double inch2meter (double in)
163{
164    return (in/(39.37008));
165}
166
167double meter2feet (double meter)
168{
169    return (meter*(3.280840));
170}
171
172double feet2meter (double ft)
173{
174    return (ft/(3.280840));
175}
176
177double meter2yard (double meter)
178{
179    return (meter*(1.093613));
180}
181
182double yard2meter (double yd)
183{
184    return (yd/(1.093613));
185}
186
187/****************************************
188 * TEMPERATURE CONVERSIONS
189 ****************************************/
190
191double fahrenheit2centigrade (double F)
192{
193    return ((F-32.0)/(9.0/5.0));
194}
195
196double centigrade2fahrenheit (double C)
197{
198    return ((C*(9.0/5.0))+32.0);
199}
200
201double centigrade2kelvin (double C)
202{
203    return (C+273.15);
204}
205
206double kelvin2centigrade (double K)
207{
208    return (K-273.15);
209}
210
211double rankine2kelvin (double R)
212{
213    return ((9.0/5.0)*R);
214}
215
216double kelvin2rankine (double K)
217{
218    return ((5.0/9.0)*K);
219}
220
221double fahrenheit2kelvin (double F)
222{
223    return ((F+459.67)*(5.0/9.0));
224}
225
226double kelvin2fahrenheit (double K)
227{
228    return (((9.0/5.0)*K)-459.67);
229}
230
231/****************************************
232 * ENERGY CONVERSIONS
233 ****************************************/
234
235double electronVolt2joule (double eV)
236{
237    return (eV*1.602177e-19);
238}
239
240double joule2electronVolt (double J)
241{
242    return (J/1.602177e-19);
243}
244
245/****************************************
246 * MISC VOLUME CONVERSIONS
247 ****************************************/
248
249double cubicMeter2usGallon (double m3)
250{
251    return (m3*264.1721);
252}
253
254double usGallon2cubicMeter (double gal)
255{
256    return (gal/264.1721);
257}
258
259double cubicFeet2usGallon (double ft3)
260{
261    return (ft3*7.48051);
262}
263
264double usGallon2cubicFeet (double gal)
265{
266    return (gal/7.48051);
267}
268
269/****************************************
270 * ANGLE CONVERSIONS
271 * http://www.metrication.com/
272 ****************************************/
273
274double rad2deg (double rad)
275{
276    return (rad*(180.00/M_PI));
277}
278
279double deg2rad (double deg)
280{
281    return (deg*(M_PI/180.00));
282}
283
284double rad2grad (double rad)
285{
286    return (rad*(200.00/M_PI));
287}
288
289double grad2rad (double grad)
290{
291    return (grad*(M_PI/200.00));
292}
293
294double deg2grad (double deg)
295{
296    return (deg*(10.00/9.00));
297}
298
299double grad2deg (double grad)
300{
301    return (grad*(9.00/10.00));
302}
303
304#ifdef __cplusplus
305}
306#endif
Note: See TracBrowser for help on using the repository browser.