constant
Returns the value of various mathematical and physical constants.
Synopsis
#include <imsl.h>
float imsl_f_constant (char *name, char *unit)
The type double function is imsl_d_constant.
Required Arguments
char *name (Input)
Character string containing the name of the desired constant. The case of the character string name does not matter. The names “PI”, “Pi”, “pI”, and “pi” are equivalent. Spaces and underscores are allowed and ignored.
char *unit (Input)
Character string containing the units of the desired constant. If NULL, then Système International d’Unités (SI) units are assumed. The case of the character string unit does not matter. The names “METER”, “Meter” and “meter” are equivalent. unit has the form U1*U2*... *Um/V1/.../Vn, where Ui and Vi are the names of basic units or are the names of basic units raised to a power. Basic units must be separated by * or /. Powers are indicated by ^, as in “m^2” for m2. Examples are, “METER*KILOGRAM/SECOND”, “M*KG/S”, “METER”, or “M/KG^2”.
Return Value
By default, imsl_f_constant returns the desired constant. If no value can be computed, NaN is returned.
Description
The names allowed are listed in the following table. Values marked with a ‡ are exact (to machine precision). The references in the right-hand column are indicated by the code numbers: [1] for Cohen and Taylor (1986), [2] for Liepman (1964), and [3] for precomputed mathematical constants.
Name | Description | Value | Reference |
Amu | Atomic mass unit | 1.6605655 × 10-27 kg | 1 |
ATM | Standard atm pressure | 1.01325 × 105 N/m2 ‡ | 2 |
AU | Astronomical unit | 1.496 × 1011 m | |
Avogadro | Avogadro's number, N | 6.022045 × 1023 1/mole | 1 |
Boltzman | Boltzman's constant, k | 1.380662 × 10-23 J/K | 1 |
C | Speed of light, c | 2.997924580 × 108 m/s | 1 |
Catalan | Catalan's constant | 0.915965…‡ | 3 |
E | Base of natural logs, e | 2.718…‡ | 3 |
ElectronCharge | Electron charge, e | 1.6021892 × 10-19 C | 1 |
ElectronMass | Electron mass, me | 9.109534 × 10-31 kg | 1 |
ElectronVolt Euler | ElectronVolt, ev Euler's constant, γ | 1.6021892 x10 -19J 0.577…‡ | 1 3 |
Faraday | Faraday constant, F | 9.648456 × 104 C/mole | 1 |
FineStructure | Fine structure, α | 7.2973506 ×10-3 | 1 |
Gamma | Euler's constant, γ | 0.577…‡ | 3 |
Gas | Gas constant, R0 | 8.31441 J/mole/K | 1 |
Gravity | Gravitational constant, G | 6.6720 × 10-11 N m2/kg2 | 1 |
Hbar | Planck's constant/2π | 1.0545887 × 10-34 J s | 1 |
PerfectGasVolume | Std vol ideal gas | 2.241383 × 10-2 m3/mole | 1 |
Pi | Pi, π | 3.141…‡ | 3 |
Planck | Planck's constant, h | 6.626176 × 10-34 J s | 1 |
ProtonMass | Proton mass, Mp | 1.6726485 × 10-27 kg | 1 |
Rydberg | Rydberg's constant, Rμ | 1.097373177 × 107/m | 1 |
Speedlight | Speed of light, c | 2.997924580 ×108 m/s | 1 |
StandardGravity | Standard g | 9.80665 m/s2 ‡ | 2 |
StandardPressure | Standard atm pressure | 1.01325 ×105 N/m2 ‡ | 2 |
StefanBoltzman | Stefan-Boltzman, σ | 5.67032 × 10-8W/K4/m2 | 1 |
WaterTriple | Triple point of water | 2.7316× 102 K | 2 |
The units allowed are as follows:
Unit | Description |
Time | day, hour = hr, min, minute, s = sec = second, year |
Frequency | Hertz = Hz |
Mass | AMU, g = gram, lb = pound, ounce = oz, slug |
Distance | Angstrom, AU, feet = foot, in = inch, m = meter = metre, micron, mile, mill, parsec, yard |
Area | Acre |
Volume | 1 = liter=litre |
Force | dyne, N = Newton |
Energy | BTU, Erg, J = Joule |
Work | W = watt |
Pressure | ATM = atmosphere, bar |
Temperature | degC = Celsius, degF = Fahrenheit, degK = Kelvin |
Viscosity | poise, stoke |
Charge | Abcoulomb, C = Coulomb, statcoulomb |
Current | A = ampere, abampere, statampere |
Voltage | Abvolt, V = volt |
Magnetic induction | T = Telsa, Wb = Weber |
Other units | I, farad, mole, Gauss, Henry, Maxwell, Ohm |
The following metric prefixes may be used with the above units. The one or two letter prefixes may only be used with one letter unit abbreviations.
A | atto | 10-18 | d | deci | 10-1 |
F | femto | 10-15 | dk | deca | 102 |
P | pico | 10-12 | k | kilo | 103 |
N | nano | 10-9 | | myria | 104 |
U | micro | 10-6 | | mega | 106 |
M | milli | 10-3 | g | giga | 109 |
C | centi | 10-2 | t | tera | 1012 |
There is no one letter unit abbreviation for myria or mega since m means milli.
Examples
Example 1
In this example, Euler’s constant γ is obtained and printed. Euler’s constant is defined to be
#include <stdio.h>
#include <imsl.h>
int main()
{
float gamma;
/* Get gamma */
gamma = imsl_f_constant("gamma", 0);
/* Print gamma */
printf("gamma = %f\n", gamma);
}
Output
gamma = 0.577216
Example 2
In this example, the speed of light is obtained using several different units.
#include <stdio.h>
#include <imsl.h>
int main()
{
float speed_light;
/* Get speed of light in meters/second */
speed_light = imsl_f_constant("Speed Light", "meter/second");
printf("speed of light = %g meter/second\n", speed_light);
/* Get speed of light in miles/second */
speed_light = imsl_f_constant("Speed Light", "mile/second");
printf("speed of light = %g mile/second\n", speed_light);
/* Get speed of light in */
/* centimeters/nanosecond */
speed_light = imsl_f_constant("Speed Light", "cm/ns");
printf("speed of light = %g cm/ns\n", speed_light);
}
Output
speed of light = 2.99792e+08 meter/second
speed of light = 186282 mile/second
speed of light = 29.9793 cm/ns
Warning Errors
IMSL_MASS_TO_FORCE | A conversion of units of mass to units of force was required for consistency. |