 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
E. Robert Tisdale Guest
|
Posted: Sun Oct 17, 2004 2:58 am Post subject: physical constants header file |
|
|
Please find attached the physical constants header file physical.h
It defines conversion factors to mks units.
It might be used like this:
| Quote: | cat main.cc
#include |
#include"physical.h"
int
main(int argc, char* argv[]) {
using namespace physical::units;
double x = 13.0*meters;
std::cout << "x = " << x << " meters" << std::endl;
double factor = year/second;
std::cout << (365.0*days)/second
<< " = (365.0*days)/second" << std::endl;
std::cout << factor
<< " = seconds/year" << std::endl;
std::cout << (factor -pi*10000000.0)/days
<< " = (factor -pi*10000000.0)/days" << std::endl;
std::cout << (factor -pi*10000000.0)/factor
<< " = (factor -pi*10000000.0)/factor" << std::endl;
return 0;
}
| Quote: | g++ -Wall -ansi -pedantic -o main main.cc
./main
x = 13 meters |
3.1536e+07 = (365.0*days)/second
3.15569e+07 = seconds/year
1.63193 = (factor -pi*10000000.0)/days
0.00446807 = (factor -pi*10000000.0)/factor
namespace physical {
namespace unit { // conversion factor
const double radian = 1.0;
const double radians = radian;
const double rad = radian;
const double steradian = 1.0;
const double steradians = steradian;
const double sr = steradian;
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
const double dozen = 12.0;
const double doz = dozen;
const double dz = dozen;
namespace bakers {
const double dozen = 13.0;
const double doz = dozen;
const double dz = dozen;
}
const double gross = 12.0*dozen;
const double gro = gross;
const double quire = 25.0;
const double quires = quire;
const double ream = 500.0;
const double reams = ream;
const double percent = 1.0/100.0;
const double proof = percent/2.0;
const double karat = 1.0/24.0;
const double karats = karat;
const double mole = 6.0221367e+23;
const double moles = mole;
const double mol = mole;
const double pi = 3.14159265358979323846*radians;
namespace arc {
const double degree = pi/180.0;
const double degrees = degree;
const double minute = degree/60.0;
const double minutes = minute;
const double min = minute;
const double second = minute/60.0;
const double seconds = second;
const double sec = second;
const double grade = 0.9*degrees;
const double grades = grade;
namespace centesimal {
const double minute = grade/100.0;
const double minutes = minute;
const double min = minute;
const double second = grade/10000.0;
const double seconds = second;
const double sec = second;
}
}
// SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
const double Angstrom = decinanometer;
const double Angstroms = Angstrom;
const double Xunit = 1.00202e-13*meters;
const double Xunits = Xunit;
const double Fermi = meter/1000000000000000.0;
const double Fermis = Fermi;
// area
const double hectare = 10000.0*meter*meter;
const double hectares = hectare;
const double ha = hectare;
// volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double ml = milliliter;
const double cc = milliliter;
namespace displacement {
const double ton = stere;
const double tons = ton;
const double t = ton;
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kg = kilogram;
const double quintal = 100.0*kilograms;
const double quintals = quintal;
const double doppelzentner = quintal;
const double doppelzentners = doppelzentner;
const double gram = kilograms/1000.0;
const double grams = gram;
const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double t = ton;
}
// time
const double second = 1.0;
const double seconds = second;
const double sec = second;
const double s = second;
const double millisecond = second/1000.0;
const double milliseconds = millisecond;
const double ms = millisecond;
const double microsecond = second/1000000.0;
const double microseconds = microsecond;
const double us = microsecond;
const double nanosecond = second/1000000000.0;
const double nanoseconds = nanosecond;
const double picosecond = second/1000000000000.0;
const double picoseconds = picosecond;
const double minute = 60.0*seconds;
const double minutes = minute;
const double min = minute;
const double hour = 60.0*minutes;
const double hours = hour;
const double hr = hour;
const double day = 24.0*hours;
const double days = day;
const double da = day;
const double week = 7.0*days;
const double weeks = week;
const double fortnight = 2.0*weeks;
const double fortnights = fortnight;
const double year = 365.2421896698*days;
const double years = year;
const double yr = year;
const double month = year/12.0;
const double months = month;
const double mo = month;
const double decade = 10.0*years;
const double decades = decade;
const double century = 100.0*years;
const double centuries = century;
const double millenium = 1000.0*years;
const double millenia = millenium;
// temporal frequency
const double Hertz = 1.0/second;
const double Hz = Hertz;
const double kiloHertz = 1000.0*Hertz;
const double kHz = kiloHertz;
const double megaHertz = 1000000*Hertz;
const double MHz = megaHertz;
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
// speed
const double kph = kilometers/hour;
// radioactivity
const double Becquerel = 1.0/second;
const double Becquerels = Becquerel;
const double Bq = Becquerel;
const double Rutherford = 1000000.0*Becquerels;
const double Rutherfords = Rutherford;
const double Curie = 3.7e+10*Becquerels;
const double Curies = Curie;
const double Ci = Curie;
// force
const double Newton = kilogram*meter/(second*second);
const double Newtons = Newton;
const double N = Newton;
const double dyne = Newton/100000.0;
const double dynes = dyne;
const double dyn = dyne;
// pressure
const double Pascal = Newton/(meter*meter);
const double Pascals = Pascal;
const double Pa = Pascal;
const double Barie = Pascal/10.0;
const double Baries = Barie;
const double Barye = Barie;
const double Baryes = Barye;
const double pieze = 1000.0*Pascals;
const double piezes = pieze;
const double pz = pieze;
const double bar = 10000.0*Pascals;
const double bars = bar;
const double Torr = 133.3224*Pascals;
const double atmosphere = 760.0*Torr;
const double atmospheres = atmosphere;
const double atm = atmosphere;
// energy
const double Joule = Newton*meter;
const double Joules = Joule;
const double J = Joule;
const double erg = Joule/10000000.0;
const double ergs = erg;
const double kiloWatthour = 3600000.0*Joules;
const double kiloWatthours = kiloWatthour;
const double kWh = kiloWatthour;
// power
const double Watt = Joule/second;
const double Watts = Watt;
const double W = Watt;
const double kiloWatt = 1000.0*Watts;
const double kiloWatts = kiloWatt;
const double kW = kiloWatt;
const double megaWatt = 1000000.0*Watts;
const double megaWatts = megaWatt;
const double MW = megaWatt;
const double milliWatt = Watt/1000.0;
const double milliWatts = milliWatt;
const double mW = milliWatt;
namespace dose { // energy
const double Gray = Joule/kilogram;
const double Grays = Gray;
const double Gy = Gray;
const double Sievert = Gray;
const double Sieverts = Sieverts;
const double rad = Gray/100.0;
const double rads = rad;
const double rd = rad;
}
// electrical current
const double Ampere = 1.0;
const double Amperes = Ampere;
const double A = Ampere;
const double Biot = 10.0*Amperes;
const double Biots = Biot;
// electrical potential
const double Volt = Watt/Ampere;
const double Volts = Volt;
const double V = Volt;
// electrical resistance
const double Ohm = Volt/Ampere;
const double Ohms = Ohm;
// electrical conductance
const double mho = 1.0/Ohm;
const double mhos = mho;
const double Siemens = mho;
const double S = Siemens;
// elsectrical charge
const double Coulomb = Ampere*second;
const double Coulombs = Coulomb;
const double C = Coulomb;
const double Franklin = 3.33564e-10*Coulombs;
const double Franklins = Franklin;
// electrical capacity
const double Farad = Coulomb/Volt;
const double Farads = Farad;
const double F = Farad;
// magnetic flux
const double Weber = Volt*second;
const double Webers = Weber;
const double Wb = Weber;
const double Maxwell = Weber/100000000.0;
const double Maxwells = Maxwell;
const double M = Maxwell;
// magnetic field B
const double Tesla = Weber/(meter*meter);
const double Teslas = Tesla;
const double T = Tesla;
const double Gauss = Tesla/10000.0;
const double gamma = Tesla/1000000000.0;
// magnetic field H
const double Oerstedt = 79.57747*Ampere/meter;
const double Oerstedts = Oerstedt;
const double Oe = Oerstedt;
// magnetic inductivity
const double Henry = Weber/Ampere;
const double Henrys = Henry;
const double H = Henry;
const double milliHenry = Henry/1000.0;
const double milliHenrys = milliHenry;
const double mH = milliHenry;
// temperature
const double Kelvin = 1.0;
const double Kelvins = Kelvin;
const double K = Kelvin;
// luminous intensity
const double candela = 1.0;
const double candelas = candela;
const double cd = candela;
const double apostilb = candelas/meter/meter;
const double apostilbs = apostilb;
const double nit = apostilb;
const double nits = nit;
const double skot = apostilb/1000.0;
const double skots = skot;
const double stilb = 10000.0*apostilbs;
const double stilbs = stilb;
const double Blondel = apostilb/pi;
const double Blondels = Blondel;
const double Lambert = 10000.0*Blondels;
const double Lamberts = Lambert;
// light flux
const double lumen = candela*steradian;
const double lumens = lumen;
const double lm = lumen;
// light intensity
const double lux = lumens/meter/meter;
const double luxes = lux;
const double luces = lux;
const double lx = lux;
const double nox = lux/1000.0;
const double phot = lumens/centimeter/centimeter;
const double phots = phot;
namespace equivalent {
const double lux = unit::lux/pi;
const double luxes = lux;
const double luces = lux;
const double lx = lux;
const double lumen = unit::lumen/pi;
const double lumens = lumen;
const double lm = lumen;
const double phot = apostilb/pi;
const double phots = phot;
}
// acceleration
const double Galileo = centimeters/second/second;
const double Galileos = Galileo;
// standard gavitational acceleration at sea level
const double gravity = 9.80665*meters/second/second;
// mass
const double kilohyl = kilogram*gravity*second*second/meter;
const double kilohyls = kilohyl;
const double hyl = kilohyl/1000.0;
const double hyls = hyl;
// English Units
// length
const double inch = 0.0254*meters;
const double inches = inch;
const double in = inch;
const double mil = inch/1000.0;
const double mils = mil;
const double point = inch/72.27;
const double points = point;
const double pt = point;
const double bottommeasure = inch/40.0;
const double bottommeasures = bottommeasure;
const double line = inch/12.0;
const double lines = line;
const double pica = 12.0*points;
const double picas = pica;
const double barleycorn = inch/3.0;
const double barleycorns = barleycorn;
const double finger = 7.0*inches/8.0;
const double fingers = finger;
const double palm = 3.0*inches;
const double palms = palm;
const double hand = 4.0*inches;
const double hands = hand;
const double link = 7.92*inches;
const double links = link;
const double li = link;
const double span = 9.0*inches;
const double spans = span;
const double foot = 12.0*inches;
const double feet = foot;
const double ft = foot;
const double cubit = 18.0*inches;
const double cubits = cubit;
const double yard = 3.0*feet;
const double yards = yard;
const double yd = yard;
const double nail = yard/16.0;
const double nails = nail;
const double ell = 45.0*inches;
const double ells = ell;
const double pace = 5.0*feet;
const double paces = pace;
const double fathom = 6.0*feet;
const double fathoms = fathom;
const double fm = fathom;
const double rod = 198.0*inches;
const double rods = rod;
const double rd = rod;
const double pole = rod;
const double poles = pole;
const double p = pole;
const double perch = rod;
const double perches = perch;
const double rope = 20.0*feet;
const double ropes = rope;
const double bolt = 40.0*yards;
const double bolts = bolt;
const double chain = 4.0*rods;
const double chains = chain;
const double ch = chain;
namespace Gunters {
const double chain = unit::chain;
const double chains = chain;
}
namespace engineers {
const double link = foot;
const double links = link;
const double chain = 100.0*feet;
const double chains = chain;
}
const double skein = 120*yards;
const double skeins = skein;
const double furlong = 220*yards;
const double furlongs = furlong;
const double spindle = 14400*yards;
const double spindles = spindle;
namespace US {
const double cable_length = 120.0*fathoms;
const double cable_lengths = cable_length;
}
namespace British {
const double cable_length = 100.0*fathoms;
const double cable_lengths = cable_length;
}
namespace statute {
const double mile = 5280.0*feet;
const double miles = mile;
const double mi = mile;
const double league = 3.0*miles;
const double leagues = league;
}
namespace nautical {
const double mile = 1852*meters;
const double miles = mile;
const double nm = mile;
const double league = 3.0*miles;
const double leagues = league;
}
namespace marine = nautical;
namespace geodetic {
const double foot = (1200.0/3937.0)*meters;
const double feet = foot;
const double ft = foot;
}
namespace geographical {
const double mile = nautical::mile;
const double miles = mile;
const double mi = mile;
}
const double parasang = 3.5*statute::miles;
const double parasangs = parasang;
const double arpentcan = 27.52*statute::miles;
const double arpentcans = arpentcan;
const double arpentlin = 191.835*feet;
const double arpentlins = arpentlin;
const double astronomical_unit = 1.49597871e11*meters;
const double astronomical_units = astronomical_unit;
const double AU = astronomical_unit;
const double lightyear = 9.4605e15*meters;
const double lightyears = lightyear;
const double ly = lightyear;
const double parsec = AU*radians/arc::second;
const double parsecs = parsec;
const double pc = parsec;
// area
const double barn = 1.0e-28*meter*meter;
const double barns = barn;
const double b = barn;
const double circular_inch = 0.25*pi*inch*inch;
const double circular_inches = circular_inch;
const double circular_mil = 0.25*pi*mil*mil;
const double circular_mils = circular_mil;
const double sabin = foot*foot;
const double sabins = sabin;
const double square = 100.0*sabin;
const double squares = square;
const double are = 100.0*meter*meter;
const double ares = are;
const double a = are;
const double rood = 40.0*rod*rod;
const double roods = rood;
const double ro = rood;
const double acre = 4.0*roods;
const double acres = acre;
const double section = statute::mile*statute::mile;
const double sections = section;
const double homestead = section/4.0;
const double homesteads = homestead;
const double township = 36.0*sections;
const double townships = township;
// volume
const double minim = 6.161152e-8*(m*m*m);
const double minims = minim;
const double drop = 0.03*cc;
const double drops = drop;
const double teaspoon = 4.928922*cc;
const double teaspoons = teaspoon;
const double tablespoon = 3.0*teaspoons;
const double tablespoons = tablespoon;
namespace US {
namespace liquid {
const double dram = 60.0*minims;
const double drams = dram;
const double dr = dram;
const double ounce = 8.0*drams;
const double ounces = ounce;
const double oz = ounce;
const double gill = 4.0*ounces;
const double gills = gill;
const double gl = gill;
const double pint = 4.0*gills;
const double pints = pint;
const double pt = pint;
const double quart = 2.0*pints;
const double quarts = quart;
const double qt = quart;
const double magnum = 2.0*quarts;
const double magnums = magnum;
const double gallon = 4.0*quarts;
const double gallons = gallon;
const double gal = gallon;
}
namespace dry {
const double pint = 550.61047*cc;
const double pints = pint;
const double pt = pint;
const double quart = 2.0*pints;
const double quarts = quart;
const double qt = quart;
}
const double peck = 8.0*dry::quarts;
const double pecks = peck;
const double pk = peck;
const double bushel = 4.0*pecks;
const double bushels = bushel;
const double bu = bushel;
const double barrel = 31.5*liquid::gallons;
const double barrels = barrel;
const double bbl = barrel;
const double bl = barrel;
}
namespace British {
namespace fluid {
const double drachm = 60.0*minims;
const double drachms = drachm;
const double dr = drachm;
const double ounce = 8.0*drachms;
const double ounces = ounce;
const double oz = ounce;
const double gill = 5.0*ounces;
const double gills = gill;
const double gi = gill;
const double pint = 4.0*gills;
const double pints = pint;
const double pt = pint;
const double quart = 2.0*pints;
const double quarts = quart;
const double qt = quart;
const double gallon = 4.0*quarts;
const double gallons = gallon;
const double gal = gallon;
}
const double peck = 2.0*fluid::gallons;
const double pecks = peck;
const double pk = peck;
const double bushel = 4.0*pecks;
const double bushels = bushel;
const double bu = bushel;
const double barrel = 36.0*fluid::gallons;
const double barrels = barrel;
const double bbl = barrel;
const double bl = barrel;
}
const double noggin = 2.0*US::liquid::ounces;
const double noggins = noggin;
const double cup = 8.0*US::liquid::ounces;
const double cups = cup;
const double fifth = US::liquid::gallon/5.0;
const double fifths = fifth;
const double jeroboam = 4.0*fifths;
const double jeroboams = jeroboam;
const double firkin = 9.0*US::liquid::gallons;
const double firkins = firkin;
const double kilderkin = 18.0*US::liquid::gallons;
const double kilderkins = kilderkin;
const double strike = 2.0*US::bushels;
const double strikes = strike;
const double sack = 3.0*US::bushels;
const double sacks = sack;
const double coomb = 4.0*US::bushels;
const double coombs = coomb;
const double seam = 8.0*US::bushels;
const double seams = seam;
const double wey = 40.0*US::bushels;
const double weys = wey;
const double last = 80.0*US::bushels;
const double lasts = last;
const double register_ton = 100.0*(ft*ft*ft);
const double register_tons = register_ton;
const double register_tn = register_ton;
const double cord = 128.0*(ft*ft*ft);
const double cords = cord;
const double cordfoot = cord;
const double cordfeet = cordfoot;
const double boardfoot = 144.0*inch*inch*inch;
const double boardfeet = boardfoot;
const double timberfoot = foot*foot*foot;
const double timberfeet = timberfoot;
const double hogshead = 2.0*US::barrels;
const double hogsheads = hogshead;
const double pipe = 4.0*US::barrels;
const double pipes = pipe;
const double tun = 8.0*US::barrels;
const double tuns = tun;
// mass
const double grain = 0.06479891*grams;
const double grains = grain;
const double gr = grain;
const double pennyweight = 24.0*grains;
const double dwt = pennyweight;
namespace apothecary { // weight
const double scruple = 20.0*grains;
const double scruples = scruple;
const double s = scruple;
const double dram = 3.0*scruples;
const double drams = dram;
const double dr = dram;
const double ounce = 8.0*drams;
const double ounces = ounce;
const double oz = ounce;
const double pound = 12.0*ounces;
const double pounds = pound;
const double lb = pound;
}
namespace troy = apothecary;
namespace ap = apothecary;
namespace t = apothecary;
namespace avoirdupois { // weight
const double pound = 7000.0*grains;
const double pounds = pound;
const double lb = pound;
const double ounce = pound/16.0;
const double ounces = ounce;
const double oz = ounce;
const double dram = ounce/16.0;
const double drams = dram;
const double dr = dram;
}
namespace avdp = avoirdupois;
namespace av = avoirdupois;
const double stone = 14.0*avoirdupois::pounds;
const double stones = stone;
const double st = stone;
namespace US { // short
const double hundredweight = 100.0*avoirdupois::pounds;
const double cwt = hundredweight;
const double quarter = hundredweight/4.0;
const double quarters = quarter;
const double qr = quarter;
const double ton = 20.0*hundredweight;
const double tons = ton;
const double tn = ton;
const double deadweight = ton;
}
namespace British { // long
const double hundredweight = 112.0*avoirdupois::pounds;
const double cwt = hundredweight;
const double quarter = hundredweight/4.0;
const double quarters = quarter;
const double qr = quarter;
const double ton = 20.0*hundredweight;
const double tons = ton;
const double tn = ton;
}
namespace English = British;
namespace Imperial = British;
const double crith = 0.0906*grams;
const double criths = crith;
const double bag = 94.0*avoirdupois::pounds;
const double bags = bag;
const double cental = 100.0*avoirdupois::pounds;
const double centals = cental;
const double weymass = 252.0*avoirdupois::pounds;
// rate
const double mgd = 1000000.0*US::liquid::gallons/day;
const double cfs = foot*foot*foot/second;
const double minersinch = 1.5*foot*foot*foot/minute;
const double mpg = statute::miles/US::liquid::gallon;
// speed
const double mph = statute::miles/hour;
const double knot = nautical::miles/hour;
const double knots = knot;
namespace admiralty {
const double knot = 6980.0*feet/hour;
const double knots = knot;
}
// force
const double poundal = avdp::pound*foot/(second*second);
const double poundals = poundal;
const double pdl = poundal;
const double lbf = avoirdupois::pound*gravity;
// pressure
const double psi = lbf/(inch*inch);
// energy
const double calorie = 4.1868*Joules;
const double calories = calorie;
const double cal = calorie;
const double kilocalorie = 1000.0*calories;
const double kilocalories = kilocalorie;
const double kcal = kilocalorie;
const double Frigorie = kilocalorie;
const double Frigories = Frigorie;
const double Btu = 1055.06*Joules;
const double therm = 10000.0*Btu;
const double therms = therm;
const double thermie = 1000000.0*calories;
const double thermies = thermie;
// power
const double horsepower = 735.49875*Watts;
const double HP = horsepower;
// electrical current
const double Gilbert = 0.795775*Amperes;
const double Gilberts = Gilbert;
// temperature
const double Rankin = 1.8*Kelvins;
const double Rankins = Rankin;
const double R = Rankin;
// luminous intensity
const double candle = 1.02*candelas;
const double candles = candle;
namespace Hefner {
const double candle = 0.9*unit::candles;
const double candles = candle;
}
// light intensity
const double foot_candle = lumens/foot/foot;
const double foot_candles = foot_candle;
const double fc = foot_candle;
const double foot_Lambert = candelas/foot/foot/pi;
const double foot_Lamberts = foot_Lambert;
namespace equivalent {
const double foot_candle = unit::foot_candle/pi;
const double foot_candles = foot_candle;
const double fc = foot_candle;
}
}
namespace units = unit;
namespace constant {
using namespace units;
// speed of light
const double c = 2.99792458e8*meters/second;
// speed of sound
const double Mach = 331.46*meters/second;
// Planck constant
const double h = 6.6260755e-34*Joule*seconds;
const double h_bar = h/(2.0*pi);
// standard gavitational acceleration at sea level
const double g = units::gravity;
// electron charge
const double e = 1.60217733e-19*Coulombs;
// elevtron Volt
const double eV = e*V;
const double keV = 1000.0*eV;
const double MeV = 1000000.0*eV;
const double GeV = 1000000000.0*eV;
const double Rydberg = 13.6054*eV;
const double Rydbergs = Rydberg;
// electron mass
const double m_e = 9.1093897e-31*kilograms;
// proton mass
const double m_P = 1.6726231e-27*kilograms;
// deuteron mass
const double m_D = 1875.61339*MeV/(c*c);
// unified atomic mass unit
const double atomic_mass_unit = 1.6605402e-27*kilograms;
const double atomic_mass_units = atomic_mass_unit;
const double amu = atomic_mass_unit;
const double Dalton = atomic_mass_unit;
const double Daltons = Dalton;
// permittivity of free space
const double epsilon = 8.854187817e-12*Farads/meter;
// permeability of free space
const double mu = 12.566370614e-7*Newtons/(A*A);
// fine-structure constant
const double alpha = 1.0/137.0359895;
// classical electron radius
const double r_e = 2.81794092e-15*meters;
// electron Compton wavelength
const double lambda_bar = 3.86159323e-13*meters;
// Bohr radius
const double a_0 = 0.529177249e-10*meters;
// wavelength of 1 eV/c particle
const double lambda_1eV = 1.23984244e-6*meters;
// Thomson cross section
const double sigma_0 = 0.66524616*barns;
// Bohr magneton
const double mu_B = 5.78838263e-11*MeV/Tesla;
// nuclear magneton
const double mu_N = 3.15245166e-14*MeV/Tesla;
// electron cyclotron frequency/field
const double E_M_e = 1.75881962e11*C/kg*(rad/(s*T));
// proton cyclotron frequency/field
const double E_M_P = 9.5788309e7*C/kg*(rad/(s*T));
// gravitational constant
const double G = 6.67259e-11*m*m*m/(kg*s*s);
// Avogadro's constant
const double N_A = 6.0221367e23;
// Boltzmann constant
const double K_B = 1.380658e-23*Joules/Kelvin;
// molar volume, ideal gas at standard temperature and pressure
const double V_molar = 2.897756e-3*meter*Kelvins;
// Stefan-Boltzmann constant
const double sigma_SB = 5.67051e-8*W/(m*m*K*K*K*K);
//
}
namespace constants = constant;
}
|
|
| Back to top |
|
 |
David Lindauer Guest
|
Posted: Sun Oct 17, 2004 6:17 am Post subject: Re: physical constants header file |
|
|
hm... what does this do:
namespace physical {
namespace unit {
some stuff ;
} ;
namespace units = unit ; // <------ I'm curious about this line. I've never seen this
syntax before.
} ;
Thanks,
David
|
|
| Back to top |
|
 |
Jacques Labuschagne Guest
|
Posted: Sun Oct 17, 2004 8:00 am Post subject: Re: physical constants header file |
|
|
David Lindauer wrote:
| Quote: | hm... what does this do:
namespace physical {
namespace unit {
some stuff ;
} ;
namespace units = unit ; // <------ I'm curious about this line. I've never seen this
syntax before.
} ;
|
It creates an alias for namespace unit named units. You can now refer to
the stuff in the unit namespace throught either unit::stuff or
units::stuff.
Jacques.
|
|
| Back to top |
|
 |
Siemel Naran Guest
|
Posted: Sun Oct 17, 2004 11:22 pm Post subject: Re: physical constants header file |
|
|
"Jacques Labuschagne" <jacques (AT) clawshrimp (DOT) com> wrote
| Quote: | David Lindauer wrote:
hm... what does this do:
namespace physical {
namespace unit {
some stuff ;
} ;
namespace units = unit ; // <------ I'm curious about this line.
I've never seen this
syntax before.
} ;
It creates an alias for namespace unit named units. You can now refer to
the stuff in the unit namespace throught either unit::stuff or
units::stuff.
|
It's like typedef for namespaces.
|
|
| Back to top |
|
 |
rossum Guest
|
Posted: Mon Oct 18, 2004 9:44 pm Post subject: Re: physical constants header file |
|
|
On Sat, 16 Oct 2004 19:58:18 -0700, "E. Robert Tisdale"
<E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> wrote:
| Quote: | Please find attached the physical constants header file physical.h
It defines conversion factors to mks units.
|
[snip]
| Quote: | namespace physical {
namespace unit { // conversion factor
[snip]
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
I have never thought of dollar as a physical unit. Namespace currency |
perhaps.
const double pound = 1.0;
const double penny = pound / 100.0;
const double pence = penny;
const double euro = 1.0;
etc.
[snip]
I have added UK English/European spellings. meter --> metre etc.
| Quote: | // SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double metre = meter; |
const double metres = meter;
| Quote: | const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double kilometre = kilometer; |
const double kilometres = kilometer;
| Quote: | const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double decimetre = decimeter; |
const double decimetres = decimeter;
| Quote: | const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double centimetre = centimeter; |
const double centimetres = centimeter;
| Quote: | const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double millimetre = millimeter; |
const double millimetres = millimeter;
| Quote: | const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nanometre = nanometer; |
const double nanometres = nanometer;
| Quote: | const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
const double decinanometre = decinanometer; |
const double decinanometres = decinanometer;
[snip]
| Quote: | // volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double litre = stere/1000.0; |
const double litres = liter;
| Quote: | const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double millilitre = milliliter; |
const double millilitres = milliliter;
| Quote: | const double ml = milliliter;
const double cc = milliliter;
[snip]
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kilogramme = 1.0; |
const double kilogrammes = kilogram;
| Quote: | const double kg = kilogram;
[snip]
const double gram = kilograms/1000.0;
const double grams = gram;
const double gramme = kilograms/1000.0; |
const double grammes = gram;
| Quote: | const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double milligramme = kilogram/1000000.0; |
const double milligrammes = milligram;
| Quote: | const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double tonne = 1000.0*kilograms; |
const double tonnes = ton;
You have namespace metric, but these two might be useful.
const double metric_ton = ton;
const double metric_tons = ton;
| Quote: | const double t = ton;
}
[snip]
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
const double dioptre = 1.0/meter; |
const double dioptres = diopter;
[snip]
rossum
--
The ultimate truth is that there is no Ultimate Truth
|
|
| Back to top |
|
 |
rossum Guest
|
Posted: Mon Oct 18, 2004 9:47 pm Post subject: Re: physical constants header file |
|
|
On Sat, 16 Oct 2004 19:58:18 -0700, "E. Robert Tisdale"
<E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> wrote:
| Quote: | Please find attached the physical constants header file physical.h
It defines conversion factors to mks units.
|
[snip]
| Quote: | namespace physical {
namespace unit { // conversion factor
[snip]
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
I have never thought of dollar as a physical unit. Namespace currency |
perhaps.
const double pound = 1.0;
const double penny = pound / 100.0;
const double pence = penny;
const double euro = 1.0;
etc.
[snip]
I have added UK English/European spellings. meter --> metre etc.
| Quote: | // SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double metre = meter; |
const double metres = meter;
| Quote: | const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double kilometre = kilometer; |
const double kilometres = kilometer;
| Quote: | const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double decimetre = decimeter; |
const double decimetres = decimeter;
| Quote: | const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double centimetre = centimeter; |
const double centimetres = centimeter;
| Quote: | const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double millimetre = millimeter; |
const double millimetres = millimeter;
| Quote: | const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nanometre = nanometer; |
const double nanometres = nanometer;
| Quote: | const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
const double decinanometre = decinanometer; |
const double decinanometres = decinanometer;
[snip]
| Quote: | // volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double litre = stere/1000.0; |
const double litres = liter;
| Quote: | const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double millilitre = milliliter; |
const double millilitres = milliliter;
| Quote: | const double ml = milliliter;
const double cc = milliliter;
[snip]
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kilogramme = 1.0; |
const double kilogrammes = kilogram;
| Quote: | const double kg = kilogram;
[snip]
const double gram = kilograms/1000.0;
const double grams = gram;
const double gramme = kilograms/1000.0; |
const double grammes = gram;
| Quote: | const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double milligramme = kilogram/1000000.0; |
const double milligrammes = milligram;
| Quote: | const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double tonne = 1000.0*kilograms; |
const double tonnes = ton;
You have namespace metric, but these two might be useful.
const double metric_ton = ton;
const double metric_tons = ton;
| Quote: | const double t = ton;
}
[snip]
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
const double dioptre = 1.0/meter; |
const double dioptres = diopter;
[snip]
rossum
--
The ultimate truth is that there is no Ultimate Truth
|
|
| Back to top |
|
 |
rossum Guest
|
Posted: Mon Oct 18, 2004 9:50 pm Post subject: Re: physical constants header file |
|
|
On Sat, 16 Oct 2004 19:58:18 -0700, "E. Robert Tisdale"
<E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> wrote:
| Quote: | Please find attached the physical constants header file physical.h
It defines conversion factors to mks units.
|
[snip]
| Quote: | namespace physical {
namespace unit { // conversion factor
[snip]
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
I have never thought of dollar as a physical unit. Namespace currency |
perhaps.
const double pound = 1.0;
const double penny = pound / 100.0;
const double pence = penny;
const double euro = 1.0;
etc.
[snip]
I have added UK English/European spellings. meter --> metre etc.
| Quote: | // SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double metre = meter; |
const double metres = meter;
| Quote: | const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double kilometre = kilometer; |
const double kilometres = kilometer;
| Quote: | const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double decimetre = decimeter; |
const double decimetres = decimeter;
| Quote: | const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double centimetre = centimeter; |
const double centimetres = centimeter;
| Quote: | const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double millimetre = millimeter; |
const double millimetres = millimeter;
| Quote: | const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nanometre = nanometer; |
const double nanometres = nanometer;
| Quote: | const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
const double decinanometre = decinanometer; |
const double decinanometres = decinanometer;
[snip]
| Quote: | // volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double litre = stere/1000.0; |
const double litres = liter;
| Quote: | const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double millilitre = milliliter; |
const double millilitres = milliliter;
| Quote: | const double ml = milliliter;
const double cc = milliliter;
[snip]
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kilogramme = 1.0; |
const double kilogrammes = kilogram;
| Quote: | const double kg = kilogram;
[snip]
const double gram = kilograms/1000.0;
const double grams = gram;
const double gramme = kilograms/1000.0; |
const double grammes = gram;
| Quote: | const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double milligramme = kilogram/1000000.0; |
const double milligrammes = milligram;
| Quote: | const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double tonne = 1000.0*kilograms; |
const double tonnes = ton;
You have namespace metric, but these two might be useful.
const double metric_ton = ton;
const double metric_tons = ton;
| Quote: | const double t = ton;
}
[snip]
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
const double dioptre = 1.0/meter; |
const double dioptres = diopter;
[snip]
rossum
--
The ultimate truth is that there is no Ultimate Truth
|
|
| Back to top |
|
 |
rossum Guest
|
Posted: Mon Oct 18, 2004 9:51 pm Post subject: Re: physical constants header file |
|
|
On Sat, 16 Oct 2004 19:58:18 -0700, "E. Robert Tisdale"
<E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> wrote:
| Quote: | Please find attached the physical constants header file physical.h
It defines conversion factors to mks units.
|
[snip]
| Quote: | namespace physical {
namespace unit { // conversion factor
[snip]
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
I have never thought of dollar as a physical unit. Namespace currency |
perhaps.
const double pound = 1.0;
const double penny = pound / 100.0;
const double pence = penny;
const double euro = 1.0;
etc.
[snip]
I have added UK English/European spellings. meter --> metre etc.
| Quote: | // SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double metre = meter; |
const double metres = meter;
| Quote: | const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double kilometre = kilometer; |
const double kilometres = kilometer;
| Quote: | const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double decimetre = decimeter; |
const double decimetres = decimeter;
| Quote: | const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double centimetre = centimeter; |
const double centimetres = centimeter;
| Quote: | const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double millimetre = millimeter; |
const double millimetres = millimeter;
| Quote: | const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nanometre = nanometer; |
const double nanometres = nanometer;
| Quote: | const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
const double decinanometre = decinanometer; |
const double decinanometres = decinanometer;
[snip]
| Quote: | // volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double litre = stere/1000.0; |
const double litres = liter;
| Quote: | const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double millilitre = milliliter; |
const double millilitres = milliliter;
| Quote: | const double ml = milliliter;
const double cc = milliliter;
[snip]
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kilogramme = 1.0; |
const double kilogrammes = kilogram;
| Quote: | const double kg = kilogram;
[snip]
const double gram = kilograms/1000.0;
const double grams = gram;
const double gramme = kilograms/1000.0; |
const double grammes = gram;
| Quote: | const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double milligramme = kilogram/1000000.0; |
const double milligrammes = milligram;
| Quote: | const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double tonne = 1000.0*kilograms; |
const double tonnes = ton;
You have namespace metric, but these two might be useful.
const double metric_ton = ton;
const double metric_tons = ton;
| Quote: | const double t = ton;
}
[snip]
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
const double dioptre = 1.0/meter; |
const double dioptres = diopter;
[snip]
rossum
--
The ultimate truth is that there is no Ultimate Truth
|
|
| Back to top |
|
 |
E. Robert Tisdale Guest
|
Posted: Mon Oct 18, 2004 10:04 pm Post subject: Re: physical constants header file |
|
|
rossum wrote:
| Quote: | You have namespace metric, but these two might be useful.
const double metric_ton = ton;
const double metric_tons = ton;
|
What's wrong with using metric::ton or metric::tons?
|
|
| Back to top |
|
 |
rossum Guest
|
Posted: Mon Oct 18, 2004 10:08 pm Post subject: Re: physical constants header file |
|
|
On Mon, 18 Oct 2004 22:50:31 +0100, rossum <rossum48 (AT) coldmail (DOT) com>
wrote:
[snip]
apologies for the multiple post, my newsreader was telling me that it
hadn't posted the reply. Naughty newsreader, I shall send it to bed
early with no dinner.
rossum
--
The ultimate truth is that there is no Ultimate Truth
|
|
| Back to top |
|
 |
Richard Herring Guest
|
Posted: Tue Oct 19, 2004 12:22 pm Post subject: Re: physical constants header file |
|
|
In message <cksn2i$9nc$1 (AT) nntp1 (DOT) jpl.nasa.gov>, E. Robert Tisdale
<E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> writes
[molto snippo]
| Quote: | const double Hertz = 1.0/second;
const double Newton = kilogram*meter/(second*second);
const double Pascal = Newton/(meter*meter);
const double Joule = Newton*meter;
const double Watt = Joule/second;
const double Ampere = 1.0;
const double Volt = Watt/Ampere;
const double Ohm = Volt/Ampere;
const double Siemens = mho;
const double Coulomb = Ampere*second;
const double Farad = Coulomb/Volt;
const double Weber = Volt*second;
const double Tesla = Weber/(meter*meter);
const double Henry = Weber/Ampere;
const double Kelvin = 1.0;
|
Bzzzt. SI units named after people have lowercase names.
--
Richard Herring
|
|
| Back to top |
|
 |
JKop Guest
|
Posted: Tue Oct 19, 2004 12:35 pm Post subject: Re: physical constants header file |
|
|
| Quote: | const double dollar = 1.0;
const double dollars = dollar;
|
Not that it makes a difference, but I'd use a reference there:
double const dollar = 1.0
double const &dollars = dollar;
-JKop
|
|
| Back to top |
|
 |
Gene Nygaard Guest
|
Posted: Tue Oct 19, 2004 2:15 pm Post subject: Re: physical constants header file |
|
|
"E. Robert Tisdale" <E.Robert.Tisdale (AT) jpl (DOT) nasa.gov> wrote
| Quote: | namespace physical {
namespace unit { // conversion factor
const double radian = 1.0;
const double radians = radian;
const double rad = radian;
const double steradian = 1.0;
const double steradians = steradian;
const double sr = steradian;
const double dollar = 1.0;
const double dollars = dollar;
const double cent = dollar/100.0;
const double cents = cent;
const double dozen = 12.0;
const double doz = dozen;
const double dz = dozen;
namespace bakers {
const double dozen = 13.0;
const double doz = dozen;
const double dz = dozen;
}
const double gross = 12.0*dozen;
const double gro = gross;
const double quire = 25.0;
const double quires = quire;
const double ream = 500.0;
const double reams = ream;
const double percent = 1.0/100.0;
const double proof = percent/2.0;
const double karat = 1.0/24.0;
const double karats = karat;
const double mole = 6.0221367e+23;
const double moles = mole;
const double mol = mole;
const double pi = 3.14159265358979323846*radians;
namespace arc {
const double degree = pi/180.0;
const double degrees = degree;
const double minute = degree/60.0;
const double minutes = minute;
const double min = minute;
const double second = minute/60.0;
const double seconds = second;
const double sec = second;
const double grade = 0.9*degrees;
const double grades = grade;
|
That's more often called a grad than a grade (and it was misnamed a
"gradient" on some of the calculators that came with older versions of
Windows).
| Quote: | namespace centesimal {
const double minute = grade/100.0;
const double minutes = minute;
const double min = minute;
const double second = grade/10000.0;
const double seconds = second;
const double sec = second;
}
}
// SI units (mks)
// length
const double meter = 1.0;
const double meters = meter;
const double m = meter;
const double kilometer = 1000.0*meters;
const double kilometers = kilometer;
const double km = kilometer;
const double decimeter = meters/10.0;
const double decimeters = decimeter;
const double dm = decimeter;
const double centimeter = meters/100.0;
const double centimeters = centimeter;
const double cm = centimeter;
const double millimeter = meters/1000.0;
const double millimeters = millimeter;
const double mm = millimeter;
const double micron = meter/1000000.0;
const double microns = micron;
|
The micron is not an SI unit. Back in 1967-1968, the CGPM said that
this name should no longer be used for the micrometer or micrometre.
| Quote: | const double nanometer = meter/1000000000.0;
const double nanometers = nanometer;
const double nm = nanometer;
const double decinanometer = meter/10000000000.0;
const double decinanometers = decinanometer;
|
This is idiotic, something never used in the real world. Double
prefixes are a no-no in the modern metric system, the International
System of Units.
Sure, some fools like you might think that to be an acceptable
replacement for the following, but it is not.
| Quote: | const double Angstrom = decinanometer;
const double Angstroms = Angstrom;
|
That shoudl be angstrom (or ångström) with a lowercase initial letter.
const double Angstrom = nanometer/10.0
| Quote: | const double Xunit = 1.00202e-13*meters;
const double Xunits = Xunit;
const double Fermi = meter/1000000000000000.0;
const double Fermis = Fermi;
|
That's fermi--but use femtometer or femtometre instead.
| Quote: | // area
const double hectare = 10000.0*meter*meter;
const double hectares = hectare;
const double ha = hectare;
// volume
const double stere = meter*meter*meter;
const double steres = stere;
const double liter = stere/1000.0;
const double liters = liter;
const double l = liter;
const double milliliter = stere/1000000.0;
const double milliliters = milliliter;
const double ml = milliliter;
const double cc = milliliter;
namespace displacement {
const double ton = stere;
const double tons = ton;
const double t = ton;
}
// mass
const double kilogram = 1.0;
const double kilograms = kilogram;
const double kg = kilogram;
const double quintal = 100.0*kilograms;
const double quintals = quintal;
|
Long obsolete. You have no sense of what should be included and what
should not be included, of what is useful and what is trivia.
| Quote: | const double doppelzentner = quintal;
const double doppelzentners = doppelzentner;
const double gram = kilograms/1000.0;
const double grams = gram;
const double g = gram;
const double milligram = kilogram/1000000.0;
const double milligrams = milligram;
const double mg = milligram;
namespace metric { // weight
const double carat = gram/5.0;
const double carats = carat;
const double ton = 1000.0*kilograms;
const double tons = ton;
const double t = ton;
}
// time
const double second = 1.0;
const double seconds = second;
const double sec = second;
const double s = second;
const double millisecond = second/1000.0;
const double milliseconds = millisecond;
const double ms = millisecond;
const double microsecond = second/1000000.0;
const double microseconds = microsecond;
const double us = microsecond;
const double nanosecond = second/1000000000.0;
const double nanoseconds = nanosecond;
const double picosecond = second/1000000000000.0;
const double picoseconds = picosecond;
const double minute = 60.0*seconds;
const double minutes = minute;
const double min = minute;
const double hour = 60.0*minutes;
const double hours = hour;
const double hr = hour;
const double day = 24.0*hours;
const double days = day;
const double da = day;
const double week = 7.0*days;
const double weeks = week;
const double fortnight = 2.0*weeks;
const double fortnights = fortnight;
const double year = 365.2421896698*days;
const double years = year;
const double yr = year;
const double month = year/12.0;
const double months = month;
const double mo = month;
const double decade = 10.0*years;
const double decades = decade;
const double century = 100.0*years;
const double centuries = century;
const double millenium = 1000.0*years;
const double millenia = millenium;
// temporal frequency
const double Hertz = 1.0/second;
const double Hz = Hertz;
const double kiloHertz = 1000.0*Hertz;
|
That goofy middle capitalization is wrong also. It is hertz and
kilohertz and megahertz etc.
| Quote: | const double kHz = kiloHertz;
const double megaHertz = 1000000*Hertz;
const double MHz = megaHertz;
// spacial frequency
const double diopter = 1.0/meter;
const double diopters = diopter;
// speed
const double kph = kilometers/hour;
// radioactivity
const double Becquerel = 1.0/second;
const double Becquerels = Becquerel;
const double Bq = Becquerel;
const double Rutherford = 1000000.0*Becquerels;
const double Rutherfords = Rutherford;
const double Curie = 3.7e+10*Becquerels;
const double Curies = Curie;
const double Ci = Curie;
// force
const double Newton = kilogram*meter/(second*second);
const double Newtons = Newton;
|
That's newtons.
| Quote: | const double N = Newton;
const double dyne = Newton/100000.0;
const double dynes = dyne;
const double dyn = dyne;
// pressure
const double Pascal = Newton/(meter*meter);
|
const double pascal = newton/(meter*meter);
| Quote: | const double Pascals = Pascal;
const double Pa = Pascal;
const double Barie = Pascal/10.0;
const double Baries = Barie;
const double Barye = Barie;
const double Baryes = Barye;
|
I've seen this cgs unit of pressure as barye more often than barie, if
I've seen the latter at all. It's lowercase in either case--this one
isn't even named after a person, so you don't have that excuse.
| Quote: | const double pieze = 1000.0*Pascals;
const double piezes = pieze;
const double pz = pieze;
const double bar = 10000.0*Pascals;
const double bars = bar;
const double Torr = 133.3224*Pascals;
|
The spelled out word is torr, plural torrs; the symbol is Torr, same
in singular or plural.
| Quote: | const double atmosphere = 760.0*Torr;
const double atmospheres = atmosphere;
const double atm = atmosphere;
// energy
const double Joule = Newton*meter;
const double Joules = Joule;
const double J = Joule;
const double erg = Joule/10000000.0;
|
That's joules
| Quote: | const double ergs = erg;
const double kiloWatthour = 3600000.0*Joules;
const double kiloWatthours = kiloWatthour;
const double kWh = kiloWatthour;
|
No middle capital, and it would be better just to leave this as two
diferent units multiplied together, kilowatts and hours.
| Quote: | // power
const double Watt = Joule/second;
const double Watts = Watt;
const double W = Watt;
const double kiloWatt = 1000.0*Watts;
const double kiloWatts = kiloWatt;
const double kW = kiloWatt;
const double megaWatt = 1000000.0*Watts;
const double megaWatts = megaWatt;
const double MW = megaWatt;
const double milliWatt = Watt/1000.0;
const double milliWatts = milliWatt;
const double mW = milliWatt;
|
Once again, watts, kilowatts, megawatts, and milliwatts.
| Quote: | namespace dose { // energy
const double Gray = Joule/kilogram;
const double Grays = Gray;
const double Gy = Gray;
const double Sievert = Gray;
const double Sieverts = Sieverts;
const double rad = Gray/100.0;
const double rads = rad;
const double rd = rad;
|
Again, grays and sieverts.
| Quote: | }
// electrical current
const double Ampere = 1.0;
const double Amperes = Ampere;
const double A = Ampere;
const double Biot = 10.0*Amperes;
const double Biots = Biot;
// electrical potential
const double Volt = Watt/Ampere;
const double Volts = Volt;
const double V = Volt;
// electrical resistance
const double Ohm = Volt/Ampere;
const double Ohms = Ohm;
// electrical conductance
const double mho = 1.0/Ohm;
const double mhos = mho;
const double Siemens = mho;
const double S = Siemens;
|
Once again, ampere, biot, volt, ohm, siemens. Make siemens primary,
and define mho as an alternative name.
| Quote: | // elsectrical charge
const double Coulomb = Ampere*second;
const double Coulombs = Coulomb;
const double C = Coulomb;
const double Franklin = 3.33564e-10*Coulombs;
const double Franklins = Franklin;
// electrical capacity
const double Farad = Coulomb/Volt;
const double Farads = Farad;
const double F = Farad;
// magnetic flux
const double Weber = Volt*second;
const double Webers = Weber;
const double Wb = Weber;
const double Maxwell = Weber/100000000.0;
const double Maxwells = Maxwell;
const double M = Maxwell;
// magnetic field B
const double Tesla = Weber/(meter*meter);
const double Teslas = Tesla;
const double T = Tesla;
const double Gauss = Tesla/10000.0;
const double gamma = Tesla/1000000000.0;
|
That's coulomb, franklin, weber, maxwell, tesla, etc.
| Quote: | // magnetic field H
const double Oerstedt = 79.57747*Ampere/meter;
const double Oerstedts = Oerstedt;
const double Oe = Oerstedt;
|
Usually oersted with no final t.
| Quote: | // magnetic inductivity
const double Henry = Weber/Ampere;
const double Henrys = Henry;
const double H = Henry;
const double milliHenry = Henry/1000.0;
const double milliHenrys = milliHenry;
const double mH = milliHenry;
// temperature
const double Kelvin = 1.0;
const double Kelvins = Kelvin;
const double K = Kelvin;
|
That's millihenrys (sometimes millihenries) and kelvins.
| Quote: | // luminous intensity
const double candela = 1.0;
const double candelas = candela;
const double cd = candela;
const double apostilb = candelas/meter/meter;
const double apost |
| | |