47 #ifndef OME_COMMON_UNITS_POWER_H
48 #define OME_COMMON_UNITS_POWER_H
50 #include <ome/common/config.h>
51 #include <ome/common/units/types.h>
53 #include <boost/units/unit.hpp>
54 #include <boost/units/quantity.hpp>
55 #include <boost/units/systems/si.hpp>
67 typedef si::power power_unit;
69 typedef quantity<si::power> power_quantity;
72 typedef make_scaled_unit<si::power,scale<10,static_rational<-24> > >::type yoctowatt_unit;
74 typedef make_scaled_unit<si::power,scale<10,static_rational<-21> > >::type zeptowatt_unit;
76 typedef make_scaled_unit<si::power,scale<10,static_rational<-18> > >::type attowatt_unit;
78 typedef make_scaled_unit<si::power,scale<10,static_rational<-15> > >::type femtowatt_unit;
80 typedef make_scaled_unit<si::power,scale<10,static_rational<-12> > >::type picowatt_unit;
82 typedef make_scaled_unit<si::power,scale<10,static_rational< -9> > >::type nanowatt_unit;
84 typedef make_scaled_unit<si::power,scale<10,static_rational< -6> > >::type microwatt_unit;
86 typedef make_scaled_unit<si::power,scale<10,static_rational< -3> > >::type milliwatt_unit;
88 typedef make_scaled_unit<si::power,scale<10,static_rational< -2> > >::type centiwatt_unit;
90 typedef make_scaled_unit<si::power,scale<10,static_rational< -1> > >::type deciwatt_unit;
92 typedef make_scaled_unit<si::power,scale<10,static_rational< 0> > >::type watt_unit;
94 typedef make_scaled_unit<si::power,scale<10,static_rational< 1> > >::type dekawatt_unit;
96 typedef make_scaled_unit<si::power,scale<10,static_rational< 1> > >::type decawatt_unit;
98 typedef make_scaled_unit<si::power,scale<10,static_rational< 2> > >::type hectowatt_unit;
100 typedef make_scaled_unit<si::power,scale<10,static_rational< 3> > >::type kilowatt_unit;
102 typedef make_scaled_unit<si::power,scale<10,static_rational< 6> > >::type megawatt_unit;
104 typedef make_scaled_unit<si::power,scale<10,static_rational< 9> > >::type gigawatt_unit;
106 typedef make_scaled_unit<si::power,scale<10,static_rational< 12> > >::type terawatt_unit;
108 typedef make_scaled_unit<si::power,scale<10,static_rational< 15> > >::type petawatt_unit;
110 typedef make_scaled_unit<si::power,scale<10,static_rational< 18> > >::type exawatt_unit;
112 typedef make_scaled_unit<si::power,scale<10,static_rational< 21> > >::type zettawatt_unit;
114 typedef make_scaled_unit<si::power,scale<10,static_rational< 24> > >::type yottawatt_unit;
117 BOOST_UNITS_STATIC_CONSTANT(yoctowatt, yoctowatt_unit);
119 BOOST_UNITS_STATIC_CONSTANT(zeptowatt, zeptowatt_unit);
121 BOOST_UNITS_STATIC_CONSTANT(attowatt, attowatt_unit);
123 BOOST_UNITS_STATIC_CONSTANT(femtowatt, femtowatt_unit);
125 BOOST_UNITS_STATIC_CONSTANT(picowatt, picowatt_unit);
127 BOOST_UNITS_STATIC_CONSTANT(nanowatt, nanowatt_unit);
129 BOOST_UNITS_STATIC_CONSTANT(microwatt, microwatt_unit);
131 BOOST_UNITS_STATIC_CONSTANT(milliwatt, milliwatt_unit);
133 BOOST_UNITS_STATIC_CONSTANT(centiwatt, centiwatt_unit);
135 BOOST_UNITS_STATIC_CONSTANT(deciwatt, deciwatt_unit);
137 BOOST_UNITS_STATIC_CONSTANT(watt, watt_unit);
139 BOOST_UNITS_STATIC_CONSTANT(dekawatt, dekawatt_unit);
141 BOOST_UNITS_STATIC_CONSTANT(decawatt, decawatt_unit);
143 BOOST_UNITS_STATIC_CONSTANT(hectowatt, hectowatt_unit);
145 BOOST_UNITS_STATIC_CONSTANT(kilowatt, kilowatt_unit);
147 BOOST_UNITS_STATIC_CONSTANT(megawatt, megawatt_unit);
149 BOOST_UNITS_STATIC_CONSTANT(gigawatt, gigawatt_unit);
151 BOOST_UNITS_STATIC_CONSTANT(terawatt, terawatt_unit);
153 BOOST_UNITS_STATIC_CONSTANT(petawatt, petawatt_unit);
155 BOOST_UNITS_STATIC_CONSTANT(exawatt, exawatt_unit);
157 BOOST_UNITS_STATIC_CONSTANT(zettawatt, zettawatt_unit);
159 BOOST_UNITS_STATIC_CONSTANT(yottawatt, yottawatt_unit);
162 BOOST_UNITS_STATIC_CONSTANT(yoctowatts, yoctowatt_unit);
164 BOOST_UNITS_STATIC_CONSTANT(zeptowatts, zeptowatt_unit);
166 BOOST_UNITS_STATIC_CONSTANT(attowatts, attowatt_unit);
168 BOOST_UNITS_STATIC_CONSTANT(femtowatts, femtowatt_unit);
170 BOOST_UNITS_STATIC_CONSTANT(picowatts, picowatt_unit);
172 BOOST_UNITS_STATIC_CONSTANT(nanowatts, nanowatt_unit);
174 BOOST_UNITS_STATIC_CONSTANT(microwatts, microwatt_unit);
176 BOOST_UNITS_STATIC_CONSTANT(milliwatts, milliwatt_unit);
178 BOOST_UNITS_STATIC_CONSTANT(centiwatts, centiwatt_unit);
180 BOOST_UNITS_STATIC_CONSTANT(deciwatts, deciwatt_unit);
182 BOOST_UNITS_STATIC_CONSTANT(watts, watt_unit);
184 BOOST_UNITS_STATIC_CONSTANT(dekawatts, dekawatt_unit);
186 BOOST_UNITS_STATIC_CONSTANT(decawatts, decawatt_unit);
188 BOOST_UNITS_STATIC_CONSTANT(hectowatts, hectowatt_unit);
190 BOOST_UNITS_STATIC_CONSTANT(kilowatts, kilowatt_unit);
192 BOOST_UNITS_STATIC_CONSTANT(megawatts, megawatt_unit);
194 BOOST_UNITS_STATIC_CONSTANT(gigawatts, gigawatt_unit);
196 BOOST_UNITS_STATIC_CONSTANT(terawatts, terawatt_unit);
198 BOOST_UNITS_STATIC_CONSTANT(petawatts, petawatt_unit);
200 BOOST_UNITS_STATIC_CONSTANT(exawatts, exawatt_unit);
202 BOOST_UNITS_STATIC_CONSTANT(zettawatts, zettawatt_unit);
204 BOOST_UNITS_STATIC_CONSTANT(yottawatts, yottawatt_unit);
207 typedef quantity<yoctowatt_unit> yoctowatt_quantity;
209 typedef quantity<zeptowatt_unit> zeptowatt_quantity;
211 typedef quantity<attowatt_unit> attowatt_quantity;
213 typedef quantity<femtowatt_unit> femtowatt_quantity;
215 typedef quantity<picowatt_unit> picowatt_quantity;
217 typedef quantity<nanowatt_unit> nanowatt_quantity;
219 typedef quantity<microwatt_unit> microwatt_quantity;
221 typedef quantity<milliwatt_unit> milliwatt_quantity;
223 typedef quantity<centiwatt_unit> centiwatt_quantity;
225 typedef quantity<deciwatt_unit> deciwatt_quantity;
227 typedef quantity<watt_unit> watt_quantity;
229 typedef quantity<dekawatt_unit> dekawatt_quantity;
231 typedef quantity<decawatt_unit> decawatt_quantity;
233 typedef quantity<hectowatt_unit> hectowatt_quantity;
235 typedef quantity<kilowatt_unit> kilowatt_quantity;
237 typedef quantity<megawatt_unit> megawatt_quantity;
239 typedef quantity<gigawatt_unit> gigawatt_quantity;
241 typedef quantity<terawatt_unit> terawatt_quantity;
243 typedef quantity<petawatt_unit> petawatt_quantity;
245 typedef quantity<exawatt_unit> exawatt_quantity;
247 typedef quantity<zettawatt_unit> zettawatt_quantity;
249 typedef quantity<yottawatt_unit> yottawatt_quantity;
255 #endif // OME_COMMON_UNITS_POWER_H